<?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.right"
         typeIds="org.apache.sling.ide.launchpadServer"
         class="org.apache.sling.ide.eclipse.ui.internal.ConnectionEditorSection">
      </section>
   </extension>   
   <extension point="org.eclipse.wst.server.ui.editorPageSections">      
      <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>
   </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.navigatorJcrContent" />
				<contentExtension pattern="org.apache.sling.ide.eclipse-ui.linkHelper"/>	
			</includes>
		</viewerContentBinding>
	</extension>
   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <navigatorContent
            appearsBefore="org.eclipse.jst.jee.ui.ejb"
            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>
         <!--org.eclipse.ui.navigator.resourceContent-->
         <!--org.eclipse.jdt.java.ui.javaContent-->
         <!--override
               policy="InvokeAlwaysRegardlessOfSuppressedExt"
               suppressedExtensionId="org.eclipse.ui.navigator.resourceContent">
         </override-->
		   <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">
<!--	         overrides="org.eclipse.ui.navigator.resources.OpenActions"> 
		         //org.eclipse.jdt.ui.navigator.actions.OpenActions -->
		   </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>
   </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.ui.popupMenus">
      <objectContribution
            objectClass="org.eclipse.core.resources.IProject"
            adaptable="true"
            id="org.apache.sling.ide.eclipse.ui.pluginProjectToolSet">

         <action
            label="Convert to Content Project..."
            class="org.apache.sling.ide.eclipse.ui.wizards.ConvertToContentPackageAction"
            menubarPath="org.eclipse.ui.projectConfigure/additions"
            enablesFor="+"
            id="org.apache.sling.ide.eclipse.ui.wizards.ConvertToContentPackageAction">
      	</action>
         <action
            label="Convert to Bundle Project..."
            class="org.apache.sling.ide.eclipse.ui.wizards.ConvertToBundleAction"
            menubarPath="org.eclipse.ui.projectConfigure/additions"
            enablesFor="+"
            id="org.apache.sling.ide.eclipse.ui.wizards.ConvertToBundleAction">
      	</action>
      </objectContribution>
         
   </extension>

   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="true"
            id="org.apache.sling.ide.eclipse.ui.pluginDomNodeToolSet"
            objectClass="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
	     <!-- explicitly adding the 'New' / common.new.menu as this does not show up for JcrNodes otherwise-->
         <menu
               id="common.new.menu"
               label="New"
               path="group.new">
            <separator
                  name="jcr">
            </separator>
         </menu>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeExportContentAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.menu.exportContentAction"
               label="Export to server..."
               menubarPath="jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeImportContentAction"
               id="org.apache.sling.ide.menu.importContentAction"
               icon="icons/obj16/sling_misc.gif"
               label="Import from server..."
               menubarPath="jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNewNodeAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.eclipse.ui.nav.NewJcrNodeAction"
               label="&amp;Node..."
               menubarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameAction"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameAction"
               definitionId="org.eclipse.ui.edit.rename"
               label="&amp;Rename..."
               menubarPath="group.edit">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteAction"
               definitionId="org.eclipse.ui.edit.delete"
               icon="icons/ovr16/delete_obj.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteAction"
               label="&amp;Delete..."
               menubarPath="group.edit">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteAction"
               definitionId="org.eclipse.ui.edit.paste"
               icon="icons/ovr16/paste_edit.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteAction"
               label="&amp;Paste..."
               menubarPath="group.edit">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyAction"
               icon="icons/ovr16/copy.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyAction"
               definitionId="org.eclipse.ui.edit.copy"
               label="&amp;Copy..."
               menubarPath="group.edit">
         </action>
         <visibility>
               <objectState
                     name="domNode"
                     value="true">
               </objectState>
         </visibility>
      </objectContribution>
   </extension>

   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="true"
            id="org.apache.sling.ide.eclipse.ui.pluginGeneralToolSet"
            objectClass="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.OpenHtmlInBrowserAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.eclipse.ui.actionsOpenHtmlInBrowserAction"
               label="&amp;Open .html (on server) in browser"
               menubarPath="jcr">
         </action>
         <visibility>
               <objectState
                     name="browseableNode"
                     value="true">
               </objectState>
         </visibility>
      </objectContribution>
   </extension>

   <extension
         id="org.apache.sling.ide.eclipse.ui.pluginNonJcrNodeToolSet"
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="true"
            id="org.apache.sling.ide.eclipse.ui.pluginNonJcrNodeToolSet"
            objectClass="org.apache.sling.ide.eclipse.ui.nav.model.JcrNode">
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNewNodeAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.eclipse.ui.nav.NewNonJcrNodeAction"
               label="Node..."
               menubarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeExportContentAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.menu.exportContentAction"
               label="Export to server..."
               menubarPath="jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeImportContentAction"
               id="org.apache.sling.ide.menu.importContentAction"
               icon="icons/obj16/sling_misc.gif"
               label="Import from server..."
               menubarPath="jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameAction"
               definitionId="org.eclipse.ui.edit.rename"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeRenameAction"
               label="&amp;Rename..."
               menubarPath="group.edit"
               toolbarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteAction"
               definitionId="org.eclipse.ui.edit.delete"
               icon="icons/ovr16/delete_obj.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeDeleteAction"
               label="&amp;Delete..."
               menubarPath="group.edit"
               toolbarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteAction"
               definitionId="org.eclipse.ui.edit.paste"
               icon="icons/ovr16/paste_edit.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodePasteAction"
               label="&amp;Paste..."
               menubarPath="group.edit"
               toolbarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyAction"
               definitionId="org.eclipse.ui.edit.copy"
               icon="icons/ovr16/copy.gif"
               id="org.apache.sling.ide.eclipse.ui.actions.JcrNodeCopyAction"
               label="&amp;Copy..."
               menubarPath="group.edit"
               toolbarPath="common.new.menu/jcr">
         </action>
         <action
               class="org.apache.sling.ide.eclipse.ui.actions.OpenHtmlInBrowserAction"
               icon="icons/obj16/sling_misc.gif"
               id="org.apache.sling.ide.eclipse.ui.actionsOpenHtmlInBrowserAction"
               label="&amp;Open .html (on server) in browser"
               toolbarPath="common.open.menu/jcr">
         </action>
         <visibility>
               <objectState
                     name="nonDomNode"
                     value="true">
               </objectState>
         </visibility>
      </objectContribution>
   </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>
      </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">
      <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>
</plugin>    
