<!--
  ~  Copyright 2000-2011 JetBrains s.r.o.
  ~  Licensed under the Apache License, Version 2.0 (the "License");
  ~  you may not use this file except in compliance with the License.
  ~  You may obtain a copy of the License at
  ~
  ~  http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing, software
  ~  distributed under the License is distributed on an "AS IS" BASIS,
  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~  See the License for the specific language governing permissions and
  ~  limitations under the License.
  ~
  -->

<idea-plugin url="http://confluence.jetbrains.com/display/IDEADEV/Gradle+integration">
  <name>Gradle</name>
  <id>org.jetbrains.plugins.gradle</id>
  <vendor>JetBrains</vendor>
  <description>Gradle integration</description>

  <depends>com.intellij.modules.lang</depends>
  <depends>org.intellij.groovy</depends>

  <extensionPoints>
    <extensionPoint name="projectResolve" interface="org.jetbrains.plugins.gradle.service.project.GradleProjectResolverExtension"/>
  </extensionPoints>

  <extensions defaultExtensionNs="com.intellij">
    <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
    <projectImportProvider implementation="org.jetbrains.plugins.gradle.service.settings.GradleProjectImportProvider"/>
    <projectImportBuilder implementation="org.jetbrains.plugins.gradle.service.settings.GradleProjectImportBuilder"/>
    <projectConfigurable id="reference.settingsdialog.project.gradle"
                         instance="org.jetbrains.plugins.gradle.service.settings.GradleConfigurable"
                         key="gradle.name" bundle="i18n.GradleBundle"/>
    <library.presentationProvider implementation="org.jetbrains.plugins.gradle.config.GradleLibraryPresentationProvider" order="last"/>
    <java.elementFinder implementation="org.jetbrains.plugins.gradle.config.GradleClassFinder"/>
    <projectOpenProcessor implementation="org.jetbrains.plugins.gradle.service.settings.GradleProjectOpenProcessor"/>
    <configurationType implementation="org.jetbrains.plugins.gradle.service.execution.GradleExternalTaskConfigurationType"/>

    <externalSystemManager implementation="org.jetbrains.plugins.gradle.GradleManager"/>

    <applicationService serviceImplementation="org.jetbrains.plugins.gradle.service.GradleInstallationManager"/>

    <projectService serviceImplementation="org.jetbrains.plugins.gradle.settings.GradleSettings"/>
    <projectService serviceImplementation="org.jetbrains.plugins.gradle.settings.GradleLocalSettings"/>

    <toolWindow id="Gradle" anchor="right" icon="GradleIcons.ToolWindowGradle"
                factoryClass="org.jetbrains.plugins.gradle.ui.GradleToolWindowFactory"
                conditionClass="org.jetbrains.plugins.gradle.ui.GradleToolWindowFactoryCondition"/>
  </extensions>

  <extensions defaultExtensionNs="org.intellij.groovy">
    <positionManagerDelegate implementation="org.jetbrains.plugins.gradle.config.GradlePositionManager"/>
    <scriptTypeDetector implementation="org.jetbrains.plugins.gradle.config.GradleScriptTypeDetector"/>
    <defaultImportContributor implementation="org.jetbrains.plugins.gradle.config.GradleDefaultImportContributor"/>
    <groovyFrameworkConfigNotification implementation="org.jetbrains.plugins.gradle.config.GradleGroovyConfigNotification"/>
  </extensions>

  <actions>

    <!-- Tool window toolbar actions -->
    <action id="Gradle.RefreshProject" class="com.intellij.openapi.externalSystem.action.RefreshAllExternalProjectsAction" icon="AllIcons.Actions.Refresh"/>
    <action id="Gradle.OpenScript" class="org.jetbrains.plugins.gradle.action.GradleOpenScriptAction" icon="GradleIcons.GradleNavigate"/>
    <action id="Gradle.Help.ToolWindow" class="org.jetbrains.plugins.gradle.action.GradleToolWindowHelpAction" icon="AllIcons.Actions.Help"/>
    <group id="Gradle.ChangeActionsToolbar">
      <reference id="Gradle.RefreshProject"/>
      <reference id="Gradle.OpenScript"/>
      <reference id="Gradle.Help.ToolWindow"/>
    </group>

    <group id="Gradle.TasksGroup">
      <reference ref="RunContextGroup"/>
    </group>
  </actions>

</idea-plugin>
