<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->
<?eclipse version="3.2"?>
<plugin>
   <extension point = "org.eclipse.debug.core.launchConfigurationTypes">
	   <launchConfigurationType
	   	   id="org.apache.felix.sigil.eclipse.runtime.OSGi"
		   name="OSGi Application"
		   delegate="org.apache.felix.sigil.eclipse.runtime.OSGiLauncher"
		   modes= "run, debug"
		   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
	       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
		</launchConfigurationType>
	</extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            class="org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationTabGroup"
            id="org.apache.felix.sigil.eclipse.runtime.config.OSGiLaunchConfigurationTabGroup"
            type="org.apache.felix.sigil.eclipse.runtime.OSGi"/>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchShortcuts">
      <shortcut
            class="org.apache.felix.sigil.eclipse.runtime.shortcut.OSGiLaunchShortCut"
            icon="/icons/logo16x16.gif"
            id="org.apache.felix.sigil.eclipse.runtime.shortcut"
            label="OSGi Application"
            modes="run,debug">
         <contextualLaunch>
            <enablement>
               <with variable="selection">
                  <count value="1"/>
                  <iterate>
                     <or>
	                     <instanceof value="org.eclipse.jdt.core.IJavaProject"/>
                         <test
                               property="org.apache.felix.sigil.isSigilProject"
                               value="true"/>
	                 </or>
                  </iterate>
               </with>
            </enablement>
         </contextualLaunch>
      </shortcut>
   </extension>
   <extension
         point="org.eclipse.jdt.launching.classpathProviders">
      <classpathProvider
            class="org.apache.felix.sigil.eclipse.runtime.source.SigilSourcePathProvider"
            id="org.apache.felix.sigil.classpath.Provider"/>
   </extension>
   <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            configTypeID="org.apache.felix.sigil.eclipse.runtime.OSGi"
            icon="icons/logo16x16.gif"
            id="org.apache.felix.sigil.eclipse.runtime.OSGi">
      </launchConfigurationTypeImage>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.apache.felix.sigil.runtime.commands.installProject"
            name="%commandInstallProject">
      </command>
      <command
            id="org.apache.felix.sigil.runtime.commands.uninstallProject"
            name="%commandUninstallProject">
      </command>
      <command
            id="org.apache.felix.sigil.runtime.commands.reinstallProject"
            name="%commandReinstallProject">
      </command>
      <command
            id="org.apache.felix.sigil.runtime.commands.startProject"
            name="%commandStartProject">
      </command>
      <command
            id="org.apache.felix.sigil.runtime.commands.stopProject"
            name="%commandStopProject">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="org.apache.felix.sigil.runtime.commands.installProject"
            icon="etc/images/installBundle.png">
      </image>
      <image
            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
            icon="etc/images/uninstallBundle.png">
      </image>
      <image
            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
            icon="etc/images/refreshBundle.png">
      </image>
      <image
            commandId="org.apache.felix.sigil.runtime.commands.startProject"
            icon="etc/images/startBundle.png">
      </image>
      <image
            commandId="org.apache.felix.sigil.runtime.commands.stopProject"
            icon="etc/images/stopBundle.png">
      </image>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:install"
            commandId="org.apache.felix.sigil.runtime.commands.installProject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="or">
                  <and>
                     <or>
	                     <instanceof
	                           value="org.eclipse.core.resources.IFile">
	                     </instanceof>
	                     <instanceof
	                           value="org.eclipse.core.resources.IProject">
	                     </instanceof>
	                 </or>
                     <test
                           property="org.cauldron.sigil.isSigilProject"
                           value="true">
                     </test>
                  </and>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:start"
            commandId="org.apache.felix.sigil.runtime.commands.startProject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="or">
                  <and>
                     <or>
	                     <instanceof
	                           value="org.eclipse.core.resources.IFile">
	                     </instanceof>
	                     <instanceof
	                           value="org.eclipse.core.resources.IProject">
	                     </instanceof>
	                 </or>
                     <test
                           property="org.cauldron.sigil.isSigilProject"
                           value="true">
                     </test>
                  </and>
               </iterate>
            </with>
         </activeWhen>
      </handler>  
                <handler
            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:stop"
            commandId="org.apache.felix.sigil.runtime.commands.stopProject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="or">
                  <and>
                     <or>
	                     <instanceof
	                           value="org.eclipse.core.resources.IFile">
	                     </instanceof>
	                     <instanceof
	                           value="org.eclipse.core.resources.IProject">
	                     </instanceof>
	                 </or>
                     <test
                           property="org.cauldron.sigil.isSigilProject"
                           value="true">
                     </test>
                  </and>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:uninstall"
            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="or">
                  <and>
                     <or>
	                     <instanceof
	                           value="org.eclipse.core.resources.IFile">
	                     </instanceof>
	                     <instanceof
	                           value="org.eclipse.core.resources.IProject">
	                     </instanceof>
	                 </or>
                     <test
                           property="org.cauldron.sigil.isSigilProject"
                           value="true">
                     </test>
                  </and>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.SelectionProjectHandler:reinstall"
            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="or">
                  <and>
                     <or>
	                     <instanceof
	                           value="org.eclipse.core.resources.IFile">
	                     </instanceof>
	                     <instanceof
	                           value="org.eclipse.core.resources.IProject">
	                     </instanceof>
	                 </or>
                     <test
                           property="org.cauldron.sigil.isSigilProject"
                           value="true">
                     </test>
                  </and>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:install"
            commandId="org.apache.felix.sigil.runtime.commands.installProject">
         <activeWhen>
            <with
                  variable="activePartId">
               <equals
                     value="org.cauldron.sigil.editors.SigilProjectEditor">
               </equals>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:uninstall"
            commandId="org.apache.felix.sigil.runtime.commands.uninstallProject">
         <activeWhen>
            <with
                  variable="activePartId">
               <equals
                     value="org.cauldron.sigil.editors.SigilProjectEditor">
               </equals>
            </with>
         </activeWhen>
      </handler>
      <handler
            class="org.cauldron.sigil.runtime.handlers.project.EditorProjectHandler:reinstall"
            commandId="org.apache.felix.sigil.runtime.commands.reinstallProject">
         <activeWhen>
            <with
                  variable="activePartId">
               <equals
                     value="org.cauldron.sigil.editors.SigilProjectEditor">
               </equals>
            </with>
         </activeWhen>
      </handler>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any">
         <separator
               name="org.cauldron.sigil.runtime.separator"
               visible="true">
         </separator>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.installProject"
                  label="Install Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
                  label="Uninstall Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
                  label="Reinstall Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.startProject"
                  label="Start Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.stopProject"
                  label="Stop Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
      </menuContribution>
      <menuContribution
            locationURI="toolbar:org.eclipse.ui.main.toolbar">
         <toolbar
               id="org.cauldron.sigil.runtime.toolbar1">
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.installProject"
                  label="Install Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
                  <with
                        variable="activePartId">
                     <equals
                           value="org.cauldron.sigil.editors.SigilProjectEditor">
                     </equals>
                  </with>
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.uninstallProject"
                  label="Uninstall Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
                  <with
                        variable="activePartId">
                     <equals
                           value="org.cauldron.sigil.editors.SigilProjectEditor">
                     </equals>
                  </with>
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.reinstallProject"
                  label="Re Install Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
                  <with
                        variable="activePartId">
                     <equals
                           value="org.cauldron.sigil.editors.SigilProjectEditor">
                     </equals>
                  </with>
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.startProject"
                  label="Start Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
                  <with
                        variable="activePartId">
                     <equals
                           value="org.cauldron.sigil.editors.SigilProjectEditor">
                     </equals>
                  </with>
               </visibleWhen>
            </command>
            <command
                  commandId="org.apache.felix.sigil.runtime.commands.stopProject"
                  label="Stop Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
                  <with
                        variable="activePartId">
                     <equals
                           value="org.cauldron.sigil.editors.SigilProjectEditor">
                     </equals>
                  </with>
               </visibleWhen>
            </command>
         </toolbar>
      </menuContribution>
   </extension>
   <!-- extension
         point="org.eclipse.ui.contexts">
      <context
            id="org.cauldron.sigil.runtime.contexts.compositeEditor"
            name="Composite Editor"
            parentId="org.eclipse.ui.textEditorScope">
      </context>
   </extension>
   <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="org.apache.felix.sigil.runtime.commands.installComposite"
            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+I">
      </key>
      <key
            commandId="org.apache.felix.sigil.runtime.commands.uninstallComposite"
            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+U">
      </key>
      <key
            commandId="org.apache.felix.sigil.runtime.commands.reinstallComposite"
            contextId="org.cauldron.sigil.runtime.contexts.compositeEditor"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+I">
      </key>
   </extension -->
   <!-- extension
         point="org.eclipse.ui.views">
      <view
            category="org.cauldron.sigil.ui.views"
            class="org.cauldron.sigil.runtime.views.NewtonInstancesView"
            icon="etc/images/newton.png"
            id="org.cauldron.sigil.runtime.newtonInstancesView"
            name="Newton Instances"
            restorable="true">
      </view>
   </extension -->
   <!-- extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.cauldron.sigil.runtime.registry.INewtonRegistry"
            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
         <adapter
               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
         </adapter>
      </factory>
      <factory
            adaptableType="org.cauldron.sigil.runtime.registry.INewtonInstance"
            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
         <adapter
               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
         </adapter>
      </factory>
      <factory
            adaptableType="org.cauldron.sigil.runtime.model.IBundleState"
            class="org.cauldron.sigil.runtime.views.DeferredAdapterFactory">
         <adapter
               type="org.eclipse.ui.progress.IDeferredWorkbenchAdapter">
         </adapter>
      </factory>
   </extension -->
   <!-- extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="org.cauldron.sigil.ui.perspective1">
         <viewShortcut
               id="org.cauldron.sigil.runtime.newtonInstancesView">
         </viewShortcut>
      </perspectiveExtension>
   </extension -->
   <!-- extension
         point="org.eclipse.core.runtime.preferences">
      <initializer
            class="org.cauldron.sigil.runtime.prefs.PreferenceInitializer">
      </initializer>
   </extension -->
   <!-- extension
         point="org.eclipse.ui.preferencePages">
      <page
            category="org.cauldron.sigil.ui.preferences.SigilPreferencePage"
            class="org.cauldron.sigil.runtime.prefs.RuntimePreferencesPage"
            id="org.cauldron.sigil.runtime.preferences.RuntimePreferencesPage"
            name="Runtime">
      </page>
   </extension -->
   <!-- extension
         point="org.cauldron.sigil.installbuilder">
      <builder
            class="org.cauldron.sigil.runtime.install.NewtonV1_2InstallBuilder">
      </builder>
      <builder
            class="org.cauldron.sigil.runtime.install.NewtonV1_3InstallBuilder">
      </builder>
      <builder
            class="org.cauldron.sigil.runtime.install.NewtonV1_4InstallBuilder">
      </builder>
   </extension -->
   <!-- extension
         point="org.cauldron.sigil.repositoryprovider">
      <provider
            class="org.cauldron.sigil.runtime.repository.PlatformRepositoryProvider"
            defaultLevel="-2"
            dynamic="false"
            id="org.cauldron.sigil.runtime.provider"
            type="OSGi Platform Repository">
      </provider>
   </extension -->
</plugin>
