<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
  Copyright (c) 2014-2018 Eike Stepper (Loehne, Germany) and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License v2.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/legal/epl-v20.html

  Contributors:
    Eike Stepper - initial API and implementation
-->

<plugin>

   <extension point="org.eclipse.ui.newWizards">
      <!-- @generated setup not -->
      <category
            id="org.eclipse.emf.ecore.Wizard.category.ID"
            name="%_UI_Wizard_category"/>
      <category
            id="org.eclipse.oomph"
            name="%_UI_OomphWizard_category"/>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelProjectWizardID"
            name="%_UI_SetupModelWizard_label"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewProjectWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelProductWizardID"
            name="%_UI_SetupModelWizard_label2"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewProductWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description2</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelConfigurationWizardID"
            name="%_UI_SetupModelWizard_label3"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewConfigurationWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description3</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelIndexWizardID"
            name="%_UI_SetupModelWizard_label4"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewIndexWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description4</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelProductCatalogWizardID"
            name="%_UI_SetupModelWizard_label5"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewProductCatalogWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description5</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelProjectCatalogWizardID"
            name="%_UI_SetupModelWizard_label6"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewProjectCatalogWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description6</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelMacroWizardID"
            name="%_UI_SetupModelWizard_label7"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard$NewMacroWizard"
            category="org.eclipse.oomph"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description7</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
   </extension>


   <!--
   <extension point="org.eclipse.ui.newWizards">
      <category
            id="org.eclipse.emf.ecore.Wizard.category.ID"
            name="%_UI_Wizard_category"/>
      <wizard
            id="org.eclipse.oomph.setup.presentation.SetupModelWizardID"
            name="%_UI_SetupModelWizard_label"
            class="org.eclipse.oomph.setup.presentation.SetupModelWizard"
            category="org.eclipse.emf.ecore.Wizard.category.ID"
            icon="icons/full/obj16/SetupModelFile.gif">
         <description>%_UI_SetupModelWizard_description</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
   </extension>
   -->

   <extension point="org.eclipse.ui.editors">
      <!-- @generated setup not -->
      <editor
            id="org.eclipse.oomph.setup.presentation.SetupEditorID"
            name="%_UI_SetupEditor_label"
            icon="icons/full/obj16/SetupModelFile.gif"
            extensions="setup"
            class="org.eclipse.oomph.setup.presentation.SetupEditor"
            contributorClass="org.eclipse.oomph.setup.presentation.SetupActionBarContributor">
         <contentTypeBinding
               contentTypeId="org.eclipse.oomph.setup">
         </contentTypeBinding>
      </editor>
   </extension>

   <extension
         point="org.eclipse.ui.commands">
      <category
            id="org.eclipse.oomph.setup.category"
            name="%category.oomphSetup.name">
      </category>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.OpenEditorDropdownHandler"
            id="org.eclipse.oomph.setup.editor.openEditorDropdown"
            name="%command.openEditorDropdown.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.performDropdown"
            name="%command.performDropdown.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.perform"
            name="%command.perform.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.perform.startup"
            name="%command.performStartup.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.importProjects"
            name="%command.importProjects.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.synchronizePreferences"
            name="%command.synchronizePreferences.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.OpenDiscoveredTypeHandler"
            id="org.eclipse.oomph.setup.editor.openDiscoveredType"
            name="%command.openDiscoveredType.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.OpenLogHandler"
            id="org.eclipse.oomph.setup.editor.openLog"
            name="%command.openLog.name">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.RefreshCacheHandler"
            id="org.eclipse.oomph.setup.editor.refreshCache"
            name="%command.refreshCache.name">
      </command>
      <command
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.DonateHandler"
            description="%_UI_Donate_description"
            id="org.eclipse.oomph.setup.donate"
            name="%_UI_Donate_label">
      </command>
   </extension>

   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="org.eclipse.oomph.setup.donate"
            icon="icons/heart.png">
      </image>
   </extension>

   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="org.eclipse.oomph.setup.presentation.handlers.PerformDropdownHandler"
            commandId="org.eclipse.oomph.setup.editor.performDropdown">
         <enabledWhen>
             <test
                   forcePluginActivation="true"
                   property="org.eclipse.oomph.setup.ui.starting"
                   value="false">
             </test>
         </enabledWhen>
      </handler>
      <handler
            class="org.eclipse.oomph.setup.presentation.handlers.PerformHandler"
            commandId="org.eclipse.oomph.setup.editor.perform">
         <enabledWhen>
             <test
                   forcePluginActivation="true"
                   property="org.eclipse.oomph.setup.ui.starting"
                   value="false">
             </test>
         </enabledWhen>
      </handler>
      <handler
            class="org.eclipse.oomph.setup.presentation.handlers.PerformHandler$StartupPerformHandler"
            commandId="org.eclipse.oomph.setup.editor.perform.startup">
         <enabledWhen>
             <test
                   forcePluginActivation="true"
                   property="org.eclipse.oomph.setup.ui.starting"
                   value="false">
             </test>
         </enabledWhen>
      </handler>
      <handler
            class="org.eclipse.oomph.setup.presentation.handlers.ImportProjectsHandler"
            commandId="org.eclipse.oomph.setup.editor.importProjects">
         <enabledWhen>
             <test
                   forcePluginActivation="true"
                   property="org.eclipse.oomph.setup.ui.starting"
                   value="false">
             </test>
         </enabledWhen>
      </handler>
      <handler
            class="org.eclipse.oomph.setup.presentation.handlers.SynchronizePreferencesHandler"
            commandId="org.eclipse.oomph.setup.editor.synchronizePreferences">
         <enabledWhen>
            <and>
               <systemTest
                     property="oomph.setup.sync"
                     value="true">
               </systemTest>
               <test
                     forcePluginActivation="true"
                     property="org.eclipse.oomph.setup.ui.syncEnabled"
                     value="true">
               </test>
               <test
                     forcePluginActivation="true"
                     property="org.eclipse.oomph.setup.ui.starting"
                     value="false">
               </test>
            </and>
         </enabledWhen>
      </handler>
      <handler
            commandId="org.eclipse.oomph.p2.ui.SearchRequirements">
         <class
               class="org.eclipse.oomph.p2.internal.ui.SearchRequirementsHandler">
         </class>
         <activeWhen>
             <iterate
                   ifEmpty="false">
                <adapt
                      type="org.eclipse.oomph.setup.p2.P2Task">
                </adapt>
             </iterate>
         </activeWhen>
      </handler>
      <handler
            commandId="org.eclipse.oomph.p2.ui.SearchRepositories">
         <class
               class="org.eclipse.oomph.p2.internal.ui.SearchRepositoriesHandler">
         </class>
         <activeWhen>
             <iterate
                   ifEmpty="false">
                <adapt
                      type="org.eclipse.oomph.setup.p2.P2Task">
                </adapt>
             </iterate>
         </activeWhen>
      </handler>
   </extension>

   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
         <toolbar
               id="org.eclipse.oomph.setup.toolbar"
               label="%toolbarMenu.toolbar.label">
            <command
                  commandId="org.eclipse.oomph.setup.editor.performDropdown"
                  icon="icons/update.png"
                  id="org.eclipse.oomph.setup.perform.menu"
                  style="pulldown"
                  tooltip="%toolbarMenu.performDropdown.tooltip">
               <visibleWhen>
                  <test
                        forcePluginActivation="true"
                        property="org.eclipse.oomph.setup.ui.showToolBarContributions"
                        value="true">
                  </test>
               </visibleWhen>
            </command>
            <command
                  commandId="org.eclipse.oomph.setup.editor.openEditorDropdown"
                  icon="icons/prefs.gif"
                  id="org.eclipse.oomph.setup.editor.menu"
                  style="pulldown"
                  tooltip="%toolbarMenu.openEditorDropdown.tooltip">
               <visibleWhen>
                  <test
                        forcePluginActivation="true"
                        property="org.eclipse.oomph.setup.ui.showToolBarContributions"
                        value="true">
                  </test>
               </visibleWhen>
            </command>
         </toolbar>
      </menuContribution>

      <menuContribution
            locationURI="toolbar:org.eclipse.ui.trim.status">
         <toolbar
               id="org.eclipse.oomph.setup.status"
               label="%statusMenu.toolbar.label">
            <command
                  commandId="org.eclipse.oomph.setup.editor.performDropdown"
                  icon="icons/spacer.gif"
                  id="org.eclipse.oomph.setup.perform.menu"
                  style="push">
               <visibleWhen>
                  <test
                        forcePluginActivation="true"
                        property="org.eclipse.oomph.setup.ui.performing"
                        value="true">
                  </test>
               </visibleWhen>
            </command>
            <control
                  class="org.eclipse.oomph.setup.presentation.handlers.PerformStatusControl"
                  id="org.eclipse.oomph.setup.status.control">
               <visibleWhen>
                  <test
                        forcePluginActivation="true"
                        property="org.eclipse.oomph.setup.ui.performing"
                        value="true">
                  </test>
               </visibleWhen>
            </control>
            <command
                  commandId="org.eclipse.oomph.setup.editor.performDropdown"
                  icon="icons/spacer.gif"
                  id="org.eclipse.oomph.setup.perform.menu"
                  style="push">
               <visibleWhen>
                  <test
                        forcePluginActivation="true"
                        property="org.eclipse.oomph.setup.ui.performing"
                        value="true">
                  </test>
               </visibleWhen>
            </command>
         </toolbar>
      </menuContribution>

      <menuContribution
            locationURI="menu:org.eclipse.oomph.setup.editor.menu">
         <dynamic
               class="org.eclipse.oomph.setup.presentation.handlers.OpenEditorDropdownFactory"
               id="org.eclipse.oomph.setup.editor.menu.dynamic">
         </dynamic>
      </menuContribution>

      <menuContribution
            locationURI="menu:org.eclipse.oomph.setup.perform.menu">
         <command
               commandId="org.eclipse.oomph.setup.editor.perform"
               icon="icons/update.png"
               label="%performMenu.perform.label"
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.perform.startup"
               icon="icons/update.png"
               label="%performMenu.performStartup.label"
               style="push">
            <visibleWhen
                  checkEnabled="false">
               <systemTest
                     property="oomph.setup.show.perform.startup"
                     value="true">
               </systemTest>
            </visibleWhen>
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.importProjects"
               icon="icons/Project.gif"
               label="%performMenu.importProjects.label"
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.synchronizePreferences"
               icon="icons/Synchronize.gif"
               label="%performMenu.synchronizePreferences.label"
               style="push">
            <visibleWhen
                  checkEnabled="false">
               <and>
                 <systemTest
                       property="oomph.setup.sync"
                       value="true">
                 </systemTest>
                 <test
                       forcePluginActivation="true"
                       property="org.eclipse.oomph.setup.ui.syncEnabled"
                       value="true">
                 </test>
               </and>
            </visibleWhen>
         </command>
         <separator
               name="org.eclipse.oomph.setup.perform.menu.separator1"
               visible="true">
         </separator>
         <command
               commandId="org.eclipse.oomph.setup.editor.openLog"
               icon="icons/Log.gif"
               label="%performMenu.openLog.label"
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.refreshCache"
               icon="icons/RefreshCache.gif"
               label="%performMenu.refreshCache.label"
               style="push">
         </command>
      </menuContribution>

      <menuContribution
            locationURI="menu:help?before=org.eclipse.equinox.p2.ui.sdk.update">
         <command
               commandId="org.eclipse.oomph.setup.editor.perform"
               icon="icons/update_gear.png"
               label="%helpMenu.perform.label"
               style="push">
         </command>
         <separator
               name="org.eclipse.oomph.setup.editor.perform.separator"
               visible="true">
         </separator>
      </menuContribution>

      <menuContribution
            locationURI="menu:navigate?endof=open.ext2">
         <command
               commandId="org.eclipse.oomph.setup.editor.openDiscoveredType"
               icon="icons/BrowseType.gif"
               label="%navigateMenu.openDiscoveredType.label"
               style="push">
         </command>
      </menuContribution>

      <menuContribution
            locationURI="menu:navigate?after=open.ext3">
         <separator
               name="org.eclipse.oomph.setup.editor.open.separator"
               visible="true">
         </separator>
         <menu
               icon="icons/full/obj16/SetupModelFile.gif"
               label="%navigateMenu.openSetup.label">
            <dynamic
                  class="org.eclipse.oomph.setup.presentation.handlers.OpenEditorDropdownFactory"
                  id="org.eclipse.oomph.setup.editor.open.menu.dynamic">
            </dynamic>
         </menu>
         <command
               commandId="org.eclipse.oomph.setup.editor.openLog"
               icon="icons/Log.gif"
               label="%navigateMenu.openLog.label"
               style="push">
         </command>
      </menuContribution>
      <menuContribution
            allPopups="false"
            locationURI="menu:help?after=about">
         <command
               commandId="org.eclipse.oomph.setup.donate"
               style="push">
            <visibleWhen>
               <test
                     forcePluginActivation="true"
                     property="org.eclipse.oomph.setup.ui.donating">
               </test>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>

</plugin>
