<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
  Copyright (c) 2014, 2015 Eike Stepper (Berlin, Germany) and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/legal/epl-v10.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.SetupModelWizardID"
            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.SetupModelWizardID"
            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>
   </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="Oomph Setup">
      </category>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.OpenEditorDropdownHandler"
            id="org.eclipse.oomph.setup.editor.openEditorDropdown"
            name="Open Setup Editor">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.performDropdown"
            name="Perform Dropdown">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.perform"
            name="Perform Setup Tasks">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.perform.startup"
            name="Perform Setup Tasks (Startup)">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.importProjects"
            name="Import Projects">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            id="org.eclipse.oomph.setup.editor.synchronizePreferences"
            name="Synchronize Preferences">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.OpenLogHandler"
            id="org.eclipse.oomph.setup.editor.openLog"
            name="Open Setup Log">
      </command>
      <command
            categoryId="org.eclipse.oomph.setup.category"
            defaultHandler="org.eclipse.oomph.setup.presentation.handlers.RefreshCacheHandler"
            id="org.eclipse.oomph.setup.editor.refreshCache"
            name="Refresh Remote Cache">
      </command>
   </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>
   </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="Setup">
            <command
                  commandId="org.eclipse.oomph.setup.editor.performDropdown"
                  icon="icons/update.gif"
                  id="org.eclipse.oomph.setup.perform.menu"
                  style="pulldown"
                  tooltip="Perform Setup Tasks...">
               <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="Open User">
               <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="Status">
            <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.gif"
               label="Perform Setup Tasks..."
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.perform.startup"
               icon="icons/update.gif"
               label="Perform Setup Tasks (Startup)..."
               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="Import Projects..."
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.synchronizePreferences"
               icon="icons/Synchronize.gif"
               label="Synchronize Preferences..."
               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="Open Setup Log"
               style="push">
         </command>
         <command
               commandId="org.eclipse.oomph.setup.editor.refreshCache"
               icon="icons/RefreshCache.gif"
               label="Refresh Remote Cache"
               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.gif"
               label="Perform Setup Tasks..."
               style="push">
         </command>
         <separator
               name="org.eclipse.oomph.setup.editor.perform.separator"
               visible="true">
         </separator>
      </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="Open Setup">
            <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="Open Setup Log"
               style="push">
         </command>
      </menuContribution>
   </extension>

</plugin>
