<?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 id="org.apache.felix.sigil.ui.repositorywizard" name="Repository Wizard" schema="schema/org.apache.felix.sigil.ui.repositorywizard.exsd"/>
      <extension
         point="org.eclipse.ui.startup">
      <startup class="org.apache.felix.sigil.ui.eclipse.startup.SigilStartup"/>
   </extension>
   <extension
         point="org.eclipse.ui.newWizards">
      <category
            id="org.apache.felix.sigil.newWizardCategory"
            name="Sigil"/>
      <wizard
            category="org.apache.felix.sigil.newWizardCategory"
            class="org.apache.felix.sigil.ui.eclipse.ui.wizard.project.SigilProjectWizard"
            finalPerspective="org.apache.felix.sigil.ui.perspective"
            icon="icons/logo16x16.gif"
            id="org.apache.felix.sigil.editors.newProjectWizard"
            name="Sigil Project"
            project="true"/>
   </extension>
   <extension
         point="org.eclipse.ui.preferencePages">
      <page
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.SigilPreferencePage"
            id="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            name="Sigil"/>
      <!--page
            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            class="org.apache.felix.sigil.ui.preferences.LibraryPreferencePage"
            id="org.apache.felix.sigil.ui.libraryPreferences"
            name="%librariesPrefsPage" >
      </page-->
      <page
            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.repository.RepositoriesPreferencePage"
            id="org.apache.felix.sigil.ui.preferences.repositoriesPreferencePage"
            name="%repositoriesPrefPage">
      </page>
      <page
            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.ExcludedResourcesPrefsPage"
            id="org.apache.felix.sigil.ui.preferences.excludedResources"
            name="Excluded Resources">
      </page>
      <page
            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.VersionsPreferencePage"
            id="org.apache.felix.sigil.ui.preferences.VersionsPreferencePage"
            name="Version Handling">
      </page>
      <page
            category="org.apache.felix.sigil.ui.preferences.SigilPreferencePage"
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.installs.OSGiInstallsPreferencePage"
            id="org.apache.felix.sigil.ui.preferences.osgiInstalls"
            name="OSGi Installs">
      </page>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
      <editor
            class="org.apache.felix.sigil.ui.eclipse.ui.editors.project.SigilProjectEditorPart"
            default="true"
            filenames="sigil.properties"
            icon="icons/logo16x16.gif"
            id="org.apache.felix.sigil.editors.SigilProjectEditor"
            name="Sigil Project Editor"/>
   </extension>
   <extension
         point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.apache.felix.sigil.ui.eclipse.classpath.SigilClasspathContainerInitializer"
            id="org.apache.felix.sigil.classpathContainer"/>
   </extension>
   <extension
         point="org.eclipse.jdt.ui.classpathContainerPage">
      <classpathContainerPage
            class="org.apache.felix.sigil.ui.eclipse.classpath.SigilLibraryPage"        id="org.apache.felix.sigil.classpathContainer"
            name="Sigil Library"/>
   </extension>
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
            class="org.apache.felix.sigil.ui.eclipse.ui.perspective.SigilPerspectiveFactory"
            icon="icons/logo16x16.gif"
            id="org.apache.felix.sigil.ui.perspective"
            name="Sigil">
      </perspective>
   </extension>
   <extension
         point="org.eclipse.jdt.ui.quickFixProcessors">
      <quickFixProcessor
            class="org.apache.felix.sigil.ui.eclipse.ui.quickfix.ImportQuickFixProcessor"
            id="org.apache.felix.sigil.ui.importQuickFixProcessor">
      </quickFixProcessor>
   </extension>
   <extension
         point="org.eclipse.ui.views">
      <view
            allowMultiple="false"
            category="org.apache.felix.sigil.ui.views"
            class="org.apache.felix.sigil.ui.eclipse.ui.views.resolution.BundleResolverView"
            icon="icons/bundle-graph.gif"
            id="org.apache.felix.sigil.ui.bundleDependencyView"
            name="Bundle Dependency View"
            restorable="true">
      </view>
      <view
            allowMultiple="false"
            category="org.apache.felix.sigil.ui.views"
            class="org.apache.felix.sigil.ui.eclipse.ui.views.RepositoryViewPart"
            icon="icons/repository.gif"
            id="org.apache.felix.sigil.ui.repositoryBrowser"
            name="Repository Browser"
            restorable="true">
      </view>
      <category
            id="org.apache.felix.sigil.ui.views"
            name="Sigil">
      </category>
   </extension>
   <extension
         point="org.apache.felix.sigil.ui.repositorywizard">
      <wizard
            class="org.apache.felix.sigil.ui.eclipse.ui.internal.repository.FileSystemRepositoryWizard"
            repository="org.apache.felix.sigil.core.file">
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.apache.felix.sigil.ui.commands.renameComposite"
            name="Rename Composite">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.propertyPages">
      <page
            class="org.apache.felix.sigil.ui.eclipse.ui.preferences.project.ProjectPropertyPage"
            id="org.apache.felix.sigil.ui.projectpage"
            name="Repositories">
         <filter
               name="projectNature"
               value="org.apache.felix.sigil.sigilnature"/>
         <enabledWhen>
            <adapt
                  type="org.eclipse.core.resources.IProject">
            </adapt>
         </enabledWhen>
      </page>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.ui.popup.any">
         <menu
               icon="etc/images/newton.png"
               label="Sigil">
            <command
                  commandId="org.apache.felix.sigil.ui.convertproject"
                  label="Convert Project"
                  style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
         </menu>
         <separator
               name="org.apache.felix.sigil.ui.separator"
               visible="true">
         </separator>
         <command
               commandId="org.apache.felix.sigil.ui.refreshclasspath"
               icon="icons/refreshBundle.png"
               label="Refresh bundle classpath"
               style="push">
               <visibleWhen
                     checkEnabled="true">
               </visibleWhen>
            </command>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.apache.felix.sigil.ui.convertproject"
            name="%commandConvertProject">
      </command>
      <command
            id="org.apache.felix.sigil.ui.refreshclasspath"
            name="%commandRefreshClasspath">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.commandImages">
      <image
            commandId="org.apache.felix.sigil.ui.convertproject"
            icon="icons/logo16x16.gif">
      </image>
      <image
            commandId="org.apache.felix.sigil.ui.refreshclasspath"
            icon="icons/repository.gif">
      </image>
   </extension>
   
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="org.apache.felix.sigil.ui.eclipse.handlers.project.ConvertProjectHandler"
            commandId="org.apache.felix.sigil.ui.convertproject">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="and">
					<instanceof
	                           value="org.eclipse.core.resources.IProject">
	                </instanceof>
		            <test
						property="org.apache.felix.sigil.isSigilProject"
						value="false">
					</test>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
      <handler
            class="org.apache.felix.sigil.ui.eclipse.handlers.project.RefreshSigilClasspathHandler"
            commandId="org.apache.felix.sigil.ui.refreshclasspath">
         <activeWhen>
            <with
                  variable="selection">
               <iterate
                     ifEmpty="false"
                     operator="and">
					<instanceof
	                           value="org.eclipse.core.resources.IProject">
	                </instanceof>
		            <test
						property="org.apache.felix.sigil.isSigilProject"
						value="true">
					</test>
               </iterate>
            </with>
         </activeWhen>
      </handler>      
   </extension>
   <extension point="org.eclipse.ltk.core.refactoring.renameParticipants">
     <renameParticipant
        id="org.apache.felix.sigil.renamePackageParticipant"
        name="%RenamePackageParticipant.name" 
        class="org.apache.felix.sigil.ui.eclipse.refactor.RenamePackageParticipant">
       <enablement>
         <with variable="affectedNatures">
           <iterate operator="or">
             <equals value="org.apache.felix.sigil.sigilnature"/>
           </iterate>
         </with>
         <with variable="element">
           <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
         </with>
       </enablement>
     </renameParticipant>
     <renameParticipant
        id="org.apache.felix.sigil.renameActivatorParticipant"
        name="%RenameActivatorParticipant.name" 
        class="org.apache.felix.sigil.ui.eclipse.refactor.RenameActivatorParticipant">
       <enablement>
         <with variable="affectedNatures">
           <iterate operator="or">
             <equals value="org.apache.felix.sigil.sigilnature"/>
           </iterate>
         </with>
         <with variable="element">
           <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>
         </with>
       </enablement>
     </renameParticipant>
   </extension>  
   <extension point="org.eclipse.ltk.core.refactoring.moveParticipants">
     <moveParticipant
        id="org.apache.felix.sigil.movePackageParticipant"
        name="%MovePackageParticipant.name" 
        class="org.apache.felix.sigil.ui.eclipse.refactor.MovePackageParticipant">
       <enablement>
         <with variable="affectedNatures">
           <iterate operator="or">
             <equals value="org.apache.felix.sigil.sigilnature"/>
           </iterate>
         </with>
         <with variable="element">
           <instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
         </with>
       </enablement>
     </moveParticipant>
     <moveParticipant
        id="org.apache.felix.sigil.moveActivatorParticipant"
        name="%MoveActivatorParticipant.name" 
        class="org.apache.felix.sigil.ui.eclipse.refactor.MoveActivatorParticipant">
       <enablement>
         <with variable="affectedNatures">
           <iterate operator="or">
             <equals value="org.apache.felix.sigil.sigilnature"/>
           </iterate>
         </with>
         <with variable="element">
           <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>
         </with>
       </enablement>
     </moveParticipant>
   </extension>  
</plugin>
