<?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.0"?>
<plugin>

  <!-- Define the launch configuration's tab group -->
    <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
    <launchConfigurationTabGroup
      id="org.apache.sling.ide.launchpadLaunchConfigurationTabGroup"
      type="org.apache.sling.ide.launchpadLaunchConfigurationType"
      class="org.apache.sling.ide.eclipse.ui.internal.SlingLaunchpadLaunchConfigurationTabGroup">
    </launchConfigurationTabGroup>
  </extension>
  

	<!-- Define images -->
	<extension point="org.eclipse.wst.server.ui.serverImages">
	      <image
             icon="icons/obj16/sling_server.gif"
             id="slinggif"
             typeIds="org.apache.sling.ide.launchpadServer,org.apache.sling.ide.launchpadRuntimeType"/>
	      <image
             icon="icons/obj16/sling_content.gif"
             id="slingcontentgif"
             typeIds="sling.content"/>
	      <image
             icon="icons/obj16/sling_bundle.gif"
             id="slingbundle"
             typeIds="sling.bundle"/>
	</extension>
	
	<extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
		<launchConfigurationTypeImage
			id="org.apache.sling.ide.launchpadLaunchConfigurationTypeImage"
	     	configTypeID="org.apache.sling.ide.launchpadLaunchConfigurationType"
	     	icon="icons/obj16/sling_server.gif">
		</launchConfigurationTypeImage>
	</extension>	  
	
	<!-- Define the editor section(s) we contribute to the WST UI -->
   <extension point="org.eclipse.wst.server.ui.editorPageSections">      
      <section
         id="org.apache.sling.ide.launchpadConfigurationEditorSection"
         order="10"
         insertionId="org.eclipse.wst.server.editor.overview.left"
         typeIds="org.apache.sling.ide.launchpadServer"
         class="org.apache.sling.ide.eclipse.ui.internal.ConnectionEditorSection">
      </section>
      <section
         id="org.apache.sling.ide.launchpadConfigurationEditorSection"
         order="10"
         insertionId="org.eclipse.wst.server.editor.overview.right"
         typeIds="org.apache.sling.ide.launchpadServer"
         class="org.apache.sling.ide.eclipse.ui.internal.InstallEditorSection">
      </section>
      <section
         id="org.apache.sling.ide.launchpadConfigurationEditorSection"
         order="15"
         insertionId="org.eclipse.wst.server.editor.overview.right"
         typeIds="org.apache.sling.ide.launchpadServer"
         class="org.apache.sling.ide.eclipse.ui.internal.DebugEditorSection">
      </section>
   </extension>
   
   <!-- hook in the server creation wizard -->
    <extension
          point="org.eclipse.wst.server.ui.wizardFragments">
       <fragment
             class="org.apache.sling.ide.eclipse.ui.wizards.ApplyDefaultSlingServerValuesFragment"
             id="org.apache.sling.ide.eclipse.ui.wizards.ApplyDefaultSlingServerValuesFragment"
             typeIds="org.apache.sling.ide.launchpadServer">
       </fragment>
    </extension>   
  
  <!-- Runtime images -->
    <extension point="org.eclipse.wst.common.project.facet.ui.images">
    <image
          facet="sling.bundle"
          path="icons/obj16/sling_bundle.gif"
          runtime-component-type="org.apache.sling.ide.launchpadRuntimeComponentType"/>
    <image
          facet="sling.content"
          path="icons/obj16/sling_content.gif"
          runtime-component-type="org.apache.sling.ide.launchpadRuntimeComponentType">
    </image>
  </extension>
  
  <!-- Menu contributions -->
     <extension
         point="org.eclipse.ui.popupMenus">
         <!-- All Sling contributions -->
        <objectContribution
            id="org.apache.sling.ide.menu"
            objectClass="org.eclipse.core.resources.IResource">
            <menu id="org.apache.sling.ide.menu"
              path="additions"
              label="Sling">
            	<groupMarker name="sling"/>
            </menu>
         </objectContribution>
         <!-- Import. 
         	I prefer to do this outside the import wizard section since I can restrict the destination -->
         <objectContribution id="org.apache.sling.ide.menu.import"
         	objectClass="org.eclipse.core.resources.IResource">
         	
         <action
               class="org.apache.sling.ide.eclipse.ui.internal.ImportContentAction"
               id="org.apache.sling.ide.menu.importContentAction"
               definitionId="org.apache.sling.ide.commands.importContent"
               label="Import from server..."
               menubarPath="org.apache.sling.ide.menu/sling"
               style="push">
         </action>
         <enablement>
			<or>
			    <test 
		            property="org.apache.sling.ide.eclipse.canBeImported"/>
		    </or>         
         </enablement>
		</objectContribution>
		<!-- Export -->
		<objectContribution id="org.apache.sling.ide.menu.export"
         	objectClass="org.eclipse.core.resources.IResource">
         	
         <action
               class="org.apache.sling.ide.eclipse.ui.internal.ExportContentAction"
               id="org.apache.sling.ide.menu.exportContentAction"
               definitionId="org.apache.sling.ide.commands.exportContent"
               label="Export to server..."
               menubarPath="org.apache.sling.ide.menu/sling"
               style="push">
         </action>
         <enablement>
			<or>
			    <test 
		            property="org.apache.sling.ide.eclipse.canBeExported"/>
		    </or>         
         </enablement>
		</objectContribution>		
  </extension>
   <extension
         point="org.eclipse.ui.importWizards">
      <category
            id="org.apache.sling.ide.eclipse.ui.wizards.import"
            name="Sling">
      </category>
      <wizard
            category="org.apache.sling.ide.eclipse.ui.wizards.import"
            class="org.apache.sling.ide.eclipse.ui.wizards.ImportWizard"
            icon="icons/obj16/sling_misc.gif"
            id="org.apache.sling.ide.eclipse.ui.wizards.importWizard"
            name="Import from Repository">
         <description>
            Import content from a remote Repository into the local Workspace.
         </description>
      </wizard>
   </extension>
   
   <extension
         point="org.eclipse.ui.commands">
         <command
               id="org.apache.sling.ide.commands.importContent"
               name="Import content from server"
               categoryId="org.eclipse.ui.category.window"
               defaultHandler="org.apache.sling.ide.eclipse.ui.internal.ImportContentAction">
         </command>
         <command
               id="org.apache.sling.ide.commands.exportContent"
               name="Export content to server"
               categoryId="org.eclipse.ui.category.window"
               defaultHandler="org.apache.sling.ide.eclipse.ui.internal.ExportContentAction">
         </command>
   </extension>
   
   <extension
         point="org.eclipse.ui.newWizards">
      <category
            id="org.apache.sling.ide.eclipse.ui"
            name="Sling">
      </category>
      <wizard
            category="org.apache.sling.ide.eclipse.ui"
            class="org.apache.sling.ide.eclipse.ui.wizards.NewSlingContentProjectWizard"
            icon="icons/obj16/sling_misc.gif"
            id="org.apache.sling.ide.eclipse.ui.wizards.NewSlingContentProjectWizard"
            name="Sling Content Project"
            project="true">
      </wizard>
   </extension>   

   <!-- Property page for project to select directory to sync -->
   <extension point="org.eclipse.ui.propertyPages"> 
        <page 
            id="org.apache.sling.ide.projectPropertyPage" 
            name="Sling" 
            class="org.apache.sling.ide.eclipse.ui.propertyPages.SlingProjectPropertyPage"> 
            <enabledWhen>
            <and>
             	<instanceof
                  	value="org.eclipse.core.resources.IProject">
             	</instanceof>
             	<or>
	 				<test 
			            property="org.eclipse.wst.common.project.facet.core.projectFacet" 
			            value="sling.content"/>
			    </or>
             </and>
          </enabledWhen>
        </page> 
    </extension>
	<extension
			point="org.eclipse.ui.navigator.viewer">
		<viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
			<includes>
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.javaEEFilter" />
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.navigatorJcrContent" />
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.navigatorVaultMetaInf" />
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.navigatorProvisioningModel" />
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.linkHelper"/>	
			</includes>
		</viewerContentBinding>
	</extension>
   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <commonFilter
     	   name="Sling content project Java EE filter"
     	   class="org.apache.sling.ide.eclipse.ui.nav.ContentViewerFilter"
           id="org.apache.sling.ide.eclipse-ui.javaEEFilter"
           description="Hides multiple Java EE contributions for Sling content projects."
           activeByDefault="true">
      </commonFilter>
      <navigatorContent
            appearsBefore="org.apache.sling.ide.eclipse-ui.navigatorVaultMetaInf"
            contentProvider="org.apache.sling.ide.eclipse.ui.nav.JcrContentContentProvider"
            icon="icons/obj16/sling_misc.gif"
            id="org.apache.sling.ide.eclipse-ui.navigatorJcrContent"
            labelProvider="org.apache.sling.ide.eclipse.ui.nav.JcrContentLabelProvider"
            name="Repository Content"
            priority="highest">
         <triggerPoints>
            <or>         
              <instanceof 
                    value="org.eclipse.core.resources.IWorkspaceRoot" /> 
              <instanceof
                    value="org.eclipse.core.resources.IProject" />  
              <instanceof  
                     value="org.eclipse.core.resources.IFolder" /> 
              <instanceof  
                     value="org.eclipse.core.resources.IFile" /> 
              <instanceof  
                     value="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode" /> 
           </or>
         </triggerPoints>
         <enablement>
            <or>         
              <instanceof 
                    value="org.eclipse.core.resources.IWorkspaceRoot" /> 
              <instanceof
                    value="org.eclipse.core.resources.IProject" />  
              <instanceof  
                     value="org.eclipse.core.resources.IFolder" /> 
              <instanceof  
                     value="org.eclipse.core.resources.IFile" /> 
              <instanceof  
                     value="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode" /> 
           </or>
         </enablement>
         <commonWizard
               type="new"
               wizardId="org.apache.sling.ide.eclipse.ui.wizards.NewNodeWizard">
            <enablement>
               <or>
                  <instanceof
                        value="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
                  </instanceof>
               </or></enablement>
         </commonWizard>
		   <actionProvider
		         class="org.apache.sling.ide.eclipse.ui.nav.PackageExplorerOpenActionProvider"
		         id="org.apache.sling.ide.eclipse.ui.nav.actions.OpenActions"
		         overrides="org.eclipse.jdt.ui.navigator.actions.OpenActions">
		         <enablement>
		         	<instanceof value="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode"/>
		         </enablement>
		   </actionProvider>
     <override
           policy="InvokeAlwaysRegardlessOfSuppressedExt"
           
           suppressedExtensionId="org.eclipse.ui.navigator.resourceContent">
     </override>
     <commonSorter
           class="org.apache.sling.ide.eclipse.ui.nav.Sorter">
        <parentExpression>
           <or>
              <adapt
                    type="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
              </adapt>
           </or>
        </parentExpression>
     </commonSorter>
     <dropAssistant
           class="org.apache.sling.ide.eclipse.ui.dnd.assistant.JcrDropAdapterAssistant"
           id="org.apache.sling.ide.eclipse.ui.dnd.assistant">
        <possibleDropTargets></possibleDropTargets>
     </dropAssistant>
        
      </navigatorContent>
      <!-- dedicated content provider which lists the META-INF/filevault directly below the projects -->
      <navigatorContent id="org.apache.sling.ide.eclipse-ui.navigatorVaultMetaInf" 
           name="FileVault Synchronization/Packaging Settings"
           appearsBefore="org.eclipse.jst.jee.ui.ejb"
           contentProvider="org.apache.sling.ide.eclipse.ui.nav.FileVaultMetaInfContentProvider"
           labelProvider="org.apache.sling.ide.eclipse.ui.nav.FileVaultMetaInfLabelProvider"
           icon="icons/obj16/sling_misc.gif">
          <triggerPoints>
              <and>
                  <!-- only trigger for Sling Content Projects -->
                  <adapt type="org.eclipse.core.resources.IResource">
                      <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="sling.content"/>
                  </adapt>
                  <or>
                      <!-- and either IProject or FileVaultMetaInfRootFolder -->
                      <instanceof value="org.eclipse.core.resources.IProject" />
                      <instanceof value="org.apache.sling.ide.eclipse.ui.nav.model.FileVaultMetaInfRootFolder" />
                  </or>
              </and>
          </triggerPoints>
          <possibleChildren>
              <and>
                  <!-- only trigger for Sling Content Projects -->
                  <adapt type="org.eclipse.core.resources.IResource">
                      <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="sling.content"/>
                  </adapt>         
	              <instanceof 
	                     value="org.eclipse.core.resources.IResource" /> 
             </and>
          </possibleChildren>
      </navigatorContent>
  	  <!-- content provider for provisioning model -->
      <navigatorContent id="org.apache.sling.ide.eclipse-ui.navigatorProvisioningModel" 
           name="Provisioning Model"
           appearsBefore="org.eclipse.jst.jee.ui.ejb"
           contentProvider="org.apache.sling.ide.eclipse.ui.nav.ProvisioningModelContentProvider"
           labelProvider="org.apache.sling.ide.eclipse.ui.nav.ProvisioningModelLabelProvider"
           icon="icons/obj16/sling_misc.gif">
          <triggerPoints>
              <and>
                  <!-- only trigger for Sling Launchpad Projects -->
                  <adapt type="org.eclipse.core.resources.IResource">
                      <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="sling.launchpad"/>
                  </adapt>
                  <or>
                      <!-- and either IProject or ProvisioningModelRootFolder -->
                      <instanceof value="org.eclipse.core.resources.IProject" />
                      <instanceof value="org.apache.sling.ide.eclipse.ui.nav.model.ProvisioningModelRootFolder" />
                  </or>
              </and>
          </triggerPoints>
          <possibleChildren>
              <and>
                  <!-- only trigger for Sling Launchpad Projects -->
                  <adapt type="org.eclipse.core.resources.IResource">
                      <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="sling.launchpad"/>
                  </adapt>         
	              <instanceof 
	                     value="org.eclipse.core.resources.IResource" /> 
             </and>
          </possibleChildren>
      </navigatorContent>
   </extension>   
   <extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode"
            class="org.apache.sling.ide.eclipse.ui.nav.model.JcrNodeAdapterFactory">
         <adapter
               type="org.eclipse.core.resources.IFile">
         </adapter>
         <adapter
               type="org.eclipse.core.resources.IResource">
         </adapter>
      </factory>
   </extension>
   <extension
         point="org.eclipse.ui.viewActions">
      <viewContribution
            id="org.apache.sling.ide.eclipse-ui.viewContribution1"
            targetID="org.eclipse.wst.server.ui.ServersView">
         <action
               class="org.apache.sling.ide.eclipse.ui.internal.ServersActionModeFiddlerActionDelegate"
               id="org.apache.sling.ide.eclipse-ui.action1"
               label="label"
               style="push">
         </action>
      </viewContribution>
   </extension>
   <extension
         point="org.eclipse.ui.console.consoleFactories">
         <!-- while the id raises a validation warning, it does no harm and it allows the consoleFactory
         	  to be included in the whitelabel support, so don't remove it --> 
      <consoleFactory
      		id="org.apache.sling.ide.eclipse.ui.console"
      		icon="icons/obj16/sling_misc.gif"
            class="org.apache.sling.ide.eclipse.ui.console.SlingConsoleFactory"
            label="Sling Console">
      </consoleFactory>
   </extension>

   <extension
         point="org.eclipse.core.expressions.propertyTesters">
         <propertyTester
               id="org.apache.sling.ide.eclipse.ui.internal.ContentXmlResourceTester"
               type="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode"
               namespace="org.apache.sling.ide.eclipse"
               properties="isDocViewFile"
               class="org.apache.sling.ide.eclipse.ui.internal.DocViewResourceTester">
         </propertyTester>
   </extension>

   <extension
         point="org.eclipse.core.expressions.definitions">
         <definition
               id="org.apache.sling.ide.eclipse.jcrNode">
            <iterate ifEmpty="false">
 	           <adapt type="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode"/>
 	         </iterate>
         </definition>
         <definition
            id="org.apache.sling.ide.eclipse.docViewFile">
             <iterate ifEmpty="false">
               <test property="org.apache.sling.ide.eclipse.isDocViewFile"/>
             </iterate>            
         </definition>
         <definition
               id="org.apache.sling.ide.eclipse.nonSlingProject">
     	   <not>
       	   	  <or>
              	<test
	    			property="org.eclipse.wst.common.project.facet.core.projectFacet" 
    				value="sling.content"/>
              	<test
	    			property="org.eclipse.wst.common.project.facet.core.projectFacet" 
    				value="sling.bundle"/>
              	<test
	    			property="org.eclipse.wst.common.project.facet.core.projectFacet" 
    				value="sling.launchpad"/>
    		  </or>
			</not>               
         </definition>
   </extension>
    
   <extension
   		point="org.eclipse.ui.menus">
   		<!-- Convert to ... contributions -->
   		<menuContribution
           locationURI="popup:org.eclipse.ui.projectConfigure?after=additions">
           <command
                 commandId="org.apache.sling.ide.eclipse.ui.wizards.convertToContentProjectCommand"
                 label="Convert to Content Project...">
                 <!-- 
                   don't enable for sling.content or sling.bundle projects 
                   Described in depth at http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fworkbench_cmd_expressions.htm
                 -->
                 <visibleWhen
                       checkEnabled="false">
                   	 <iterate ifEmpty="false">
                   	   <instanceof value="org.eclipse.core.resources.IProject"/>
                   	   <reference
                             definitionId="org.apache.sling.ide.eclipse.nonSlingProject"/>
                   	 </iterate>
                 </visibleWhen>
           </command>
           <command
                 commandId="org.apache.sling.ide.eclipse.ui.wizards.convertToBundleProjectCommand"
                 label="Convert to Bundle Project...">
                 <!-- 
                 	don't enable for sling.content or sling.bundle projects
                 	but require the Java nature
             	 -->
                 <visibleWhen
                       checkEnabled="false">
                   	 <iterate ifEmpty="false">
                   	   <instanceof value="org.eclipse.core.resources.IProject"/>
                   	   <test property="org.eclipse.core.resources.projectNature"
                   	   		value="org.eclipse.jdt.core.javanature"/>
                   	   <reference
                             definitionId="org.apache.sling.ide.eclipse.nonSlingProject"/>
                   	 </iterate>
                 </visibleWhen>                 
           </command>
   		</menuContribution>
   		
   		<!-- Package Explorer contributions -->
   		
   		<menuContribution
           locationURI="popup:org.eclipse.ui.popup.any?after=group.edit">
           <command
                 commandId="org.eclipse.ui.edit.copy">
                 <visibleWhen
                       checkEnabled="false">
					<reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
           </command>
           <command
                 commandId="org.eclipse.ui.edit.paste">
                 <visibleWhen
                       checkEnabled="false">
                    <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
           </command>
           <command
                 commandId="org.eclipse.ui.edit.delete">
                 <visibleWhen
                       checkEnabled="false">
                       <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
           </command>
           <command
                 commandId="org.eclipse.ui.edit.rename">
                 <visibleWhen
                       checkEnabled="false">
                       <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
           </command>
        </menuContribution>

        <!-- 'New' actions -->
        <menuContribution
              locationURI="popup:common.new.menu?after=new">
              <command
              	commandId="org.apache.sling.ide.eclipse.ui.actions.jcrNewNodeHandler"
              	icon="icons/obj16/sling_misc.gif"
              	label="&amp;Node">
                 <visibleWhen
                       checkEnabled="false">
					<reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
              </command>              
        </menuContribution>
        
        <!-- Other actions -->
        <menuContribution
              locationURI="popup:org.eclipse.ui.popup.any?after=additions">
              <command
              	commandId="org.apache.sling.ide.eclipse.ui.actions.jcrNodeImportContentHandler"
              	icon="icons/obj16/sling_misc.gif"
              	label="Import from server...">
                 <visibleWhen
                       checkEnabled="false">
					<reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
              </command>
              <command
              	commandId="org.apache.sling.ide.eclipse.ui.actions.jcrNodeExportContentHandler"
              	icon="icons/obj16/sling_misc.gif"
              	label="Export to server...">
                 <visibleWhen
                       checkEnabled="false">
					<reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
              </command>
              <command
                commandId="org.apache.sling.ide.eclipse.ui.actions.jcrFormatContentXml"
                icon="icons/obj16/sling_misc.gif"
                label="Format .content.xml file">
                 <visibleWhen
                       checkEnabled="false">
                    <reference definitionId="org.apache.sling.ide.eclipse.docViewFile"/>
                 </visibleWhen>
              </command>
              <command
              	commandId="org.apache.sling.ide.eclipse.ui.actions.openHtmlInBrowserHandler"
              	icon="icons/obj16/internal_browser.png"
              	label="&amp;Open .html (on server) in browser">
                 <visibleWhen
                       checkEnabled="false">
					<reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
                 </visibleWhen>
              </command>
        </menuContribution>
   	</extension>
   	
   	<extension
   	      point="org.eclipse.ui.commands">
   	      <!-- conversion commands -->
   	      <command
                id="org.apache.sling.ide.eclipse.ui.wizards.convertToBundleProjectCommand"
                defaultHandler="org.apache.sling.ide.eclipse.ui.wizards.ConvertToBundleProjectHandler"
                name="Convert to Bundle Project...">
   	      </command>
   	      <command
                id="org.apache.sling.ide.eclipse.ui.wizards.convertToContentProjectCommand"
                defaultHandler="org.apache.sling.ide.eclipse.ui.wizards.ConvertToContentProjectHandler"
                name="Convert to Content Project...">
   	      </command>
   	      
 		  <!-- Node commands -->
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodeDeleteHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteHandler"
   	      		name="Delete Node...">
         </command>   	      
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodeRenameHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameHandler"
   	      		name="Rename Node...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodeCopyHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyHandler"
   	      		name="Copy Node...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodePasteHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteHandler"
   	      		name="Paste Node...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.openHtmlInBrowserHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.OpenHtmlInBrowserHandler"
   	      		name="Open Node in Browser...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodeExportContentHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeExportContentHandler"
   	      		name="Export JCR content to server...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNodeImportContentHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeImportContentHandler"
   	      		name="Import JCR content from server...">
         </command>
   	      <command
   	      		id="org.apache.sling.ide.eclipse.ui.actions.jcrNewNodeHandler"
   	      		defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNewNodeHandler"
   	      		name="Import JCR content from server...">
         </command>
         
         <!-- Source commands -->
         <command
                id="org.apache.sling.ide.eclipse.ui.actions.jcrFormatContentXml"
                defaultHandler="org.apache.sling.ide.eclipse.ui.actions.JcrNodeFormatHandler"
                name="Format">
         </command>
   	</extension>
   	
   	<extension
   		point="org.eclipse.ui.handlers">
   		
   		<!-- handlers overiding standard commands: delete, rename, etc -->
   		<handler
           commandId="org.eclipse.ui.edit.delete"
           class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteHandler">
           <activeWhen>
             <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
           </activeWhen>
   		</handler>
   		<handler
           commandId="org.eclipse.ui.edit.rename"
           class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameHandler">
           <activeWhen>
             <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
           </activeWhen>
   		</handler>
   		<handler
           commandId="org.eclipse.ui.edit.copy"
           class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyHandler">
           <activeWhen>
             <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
           </activeWhen>
   		</handler>
   		<handler
           commandId="org.eclipse.ui.edit.paste"
           class="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteHandler">
           <activeWhen>
             <reference definitionId="org.apache.sling.ide.eclipse.jcrNode"/>
           </activeWhen>
   		</handler>
   	</extension>
   
   <extension
         point="org.eclipse.ui.decorators">
      <decorator
            adaptable="true"
            class="org.apache.sling.ide.eclipse.ui.internal.ServerModuleDecorator"
            id="org.apache.sling.ide.eclipse-ui.serverModuleDecorator"
            label="ServerModule Decorator"
            lightweight="true"
            location="BOTTOM_LEFT"
            state="true">
         <enablement>
           <objectClass
                 name="org.eclipse.wst.server.ui.IServerModule">
           </objectClass>
         </enablement>
      </decorator>
      <decorator
      		adaptable="true"
      		class="org.apache.sling.ide.eclipse.ui.internal.JcrNodeDecorator"
            id="org.apache.sling.ide.eclipse-ui.JcrNodeDecorator"
            label="JCR Node Decorator"
            lightweight="true"
            state="true">
            <enablement>
            	<objectClass
                   name="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
            	</objectClass>
            </enablement>
            <description>Adds the primary type of each JCR node as suffix.</description>
      </decorator>
   </extension>
   <extension
         point="org.eclipse.ui.navigator.linkHelper">
      <linkHelper
            class="org.apache.sling.ide.eclipse.ui.nav.model.LinkHelper"
            id="org.apache.sling.ide.eclipse-ui.linkHelper">
         <editorInputEnablement>
         	<or>
               <instanceof
                     value="org.eclipse.ui.IEditorInput">
               </instanceof>
            </or>
         </editorInputEnablement>
         <selectionEnablement>
               <instanceof
                     value="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
               </instanceof>
         </selectionEnablement>
      </linkHelper>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
      <editor
            class="org.apache.sling.ide.eclipse.ui.editors.WebBrowser"
            id="org.apache.sling.ide.eclipse.ui.editors.WebBrowser"
            name="WebBrowser">
      </editor>
   </extension>
   <extension
         point="org.eclipse.ui.bindings">
      <!-- Import/Export -->
      <key
            commandId="org.apache.sling.ide.commands.importContent"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+I">
      </key>
      <key
            commandId="org.apache.sling.ide.commands.exportContent"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+X">
      </key>
   </extension>

    <extension
         point="org.eclipse.ui.trace.traceComponents">
      <component
            id="org.eclipse.ui.trace.tracingPrefPage"
            label="Sling IDE Tooling">
         <bundle
               name="org.apache.sling.ide.eclipse-ui"></bundle>
      </component>
   </extension>
    <extension
          point="org.eclipse.ui.views">
       <category
             id="org.apache.sling.ide.views.sling"
             name="Sling">
       </category>
       <view
             category="org.apache.sling.ide.views.sling"
             class="org.apache.sling.ide.eclipse.ui.views.JcrPropertiesView"
             icon="icons/obj16/sling_misc.gif"
             id="org.apache.sling.ide.eclipse.ui.views.JcrPropertiesView"
             name="JCR Properties">
       </view>
    </extension>
    <extension
          point="org.eclipse.ui.perspectiveExtensions">
       <perspectiveExtension
             targetID="org.eclipse.jdt.ui.JavaPerspective">
          <view
                id="org.apache.sling.ide.eclipse.ui.views.JcrPropertiesView"
                ratio="0.5"
                relationship="right"
                relative="org.eclipse.ui.views.ProblemView">
          </view>
       </perspectiveExtension>
    </extension>
     <extension
          point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
       <propertyContributor
             contributorId="org.eclipse.ui.navigator.ProjectExplorer">
          <propertyCategory
                category="tabGroup1"></propertyCategory>
       </propertyContributor>
    </extension>
    <extension
          point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
       <propertyTabs
             contributorId="org.eclipse.ui.navigator.ProjectExplorer">
          <propertyTab
                afterTab="CommonNavigator.tab.Resource"
                category="tabGroup1"
                id="jcrProperties.tab1"
                label="JCR Properties">
          </propertyTab>
       </propertyTabs>
    </extension>
    <extension
          point="org.eclipse.ui.views.properties.tabbed.propertySections">
       <propertySections
             contributorId="org.eclipse.ui.navigator.ProjectExplorer">
          <propertySection
                class="org.apache.sling.ide.eclipse.ui.properties.JcrPropertiesSection"
                enablesFor="1"
                id="jcrProperties.section1"
                tab="jcrProperties.tab1">
             <input
                   type="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
             </input>
          </propertySection>
       </propertySections>
    </extension>
    
	<!-- JSP templates -->
    <extension point="org.eclipse.ui.editors.templates">
        <include
            file="templates/jsp-templates.xml"
            translations="templates/jsp-templates.properties"/>
    </extension>    
    
    <extension point="org.eclipse.ui.keywords">
      <keyword id="org.apache.sling.ide.eclipse" label="sling ide"/>
    </extension>
    
    <extension point="org.eclipse.ui.preferencePages">
      <page id="org.apache.sling.ide.eclipse.ui.SlingIdePreferencePage"
            class="org.apache.sling.ide.eclipse.ui.SlingIdePreferencePage"
            name="Sling IDE">
         <keywordReference id="org.apache.sling.ide.eclipse"/>
      </page>
    </extension>
</plugin>    
