<?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.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.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.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>
   	</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>    
