<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
    <copyright>
   
    Copyright (c) 2005, 2010 SAP AG.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
   
    Contributors:
       SAP AG - initial API, implementation and documentation
       mwenz - Bug 341898 - Support for AdvancedPropertySheet
   
    </copyright>
   
 -->

<plugin>

   <extension
         point="org.eclipse.graphiti.ui.diagramTypes">
      <diagramType
            description="This is the diagram type for the Graphiti tutorial"
            id="org.eclipse.graphiti.examples.tutorial.diagram.TutorialDiagramType"
            name="Graphiti Tutorial Diagram Type"
            type="tutorial">
      </diagramType>
   </extension>
   
   <extension
         point="org.eclipse.graphiti.ui.diagramTypeProviders">
      <diagramTypeProvider
            class="org.eclipse.graphiti.examples.tutorial.diagram.TutorialDiagramTypeProvider"
            description="This is the editor for the Graphiti tutorial"
            id="org.eclipse.graphiti.examples.tutorial.diagram.TutorialDiagramTypeProvider"
            name="Graphiti Tutorial Editor">
         <diagramType
               id="org.eclipse.graphiti.examples.tutorial.diagram.TutorialDiagramType">
         </diagramType>
         <imageProvider
               id="org.eclipse.graphiti.examples.tutorial.TutorialImageProvider">
         </imageProvider>
         <imageProvider
               id="org.eclipse.graphiti.examples.common.ExampleImageProvider">
         </imageProvider>
      </diagramTypeProvider>
   </extension>
   
   <extension
         point="org.eclipse.graphiti.ui.imageProviders">
      <imageProvider
            class="org.eclipse.graphiti.examples.tutorial.TutorialImageProvider"
            id="org.eclipse.graphiti.examples.tutorial.TutorialImageProvider">
      </imageProvider>
   </extension>
 
	<extension
	    point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
	    <propertyContributor contributorId="tutorial.PropertyContributor">
	        <propertyCategory category="Graphiti">
	        </propertyCategory>
	    </propertyContributor>
	</extension>
	 
	<extension
	    point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
	    <propertyTabs contributorId="tutorial.PropertyContributor">
	        <propertyTab label="Main" category="Graphiti" 
	            id="graphiti.main.tab">
	        </propertyTab>
	        
	        <!--
	        Defines a property sheet tab for the Eclipse tabbed property sheet for EReferences.
	        -->
			<propertyTab
				category="Graphiti"
				id="graphiti.table.tab"
				label="Table">
			</propertyTab>
	    </propertyTabs>
	</extension>
	 
	<extension
	    point="org.eclipse.ui.views.properties.tabbed.propertySections">
	    <propertySections contributorId="tutorial.PropertyContributor">
	        <propertySection tab="graphiti.main.tab"            
	         class="org.eclipse.graphiti.examples.tutorial.property.TutorialEClassSection"
	         filter="org.eclipse.graphiti.examples.tutorial.property.TutorialEClassFilter"
	         id="graphiti.main.tab.emfclass">
	        </propertySection>
	        
	        <!--
	        Defines a standard (table format) property sheet section using the table property sheet
	        integration into the Eclipse tabbed property sheet for EReferences.
	        -->
			<propertySection
				class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
				filter="org.eclipse.graphiti.examples.tutorial.property.TutorialEReferenceFilter"
				id="graphiti.main.tab.emfreference.table"
				tab="graphiti.table.tab">
			</propertySection>
	    </propertySections>
	</extension>
 
	<extension point="org.eclipse.ui.commands">
		<command id="org.eclipse.graphiti.examples.tutorial.commands.createDiagramWithAllClasses" name="Create Diagram with all Classes" /> 
	</extension>

	<extension point="org.eclipse.ui.handlers">
		<handler commandId="org.eclipse.graphiti.examples.tutorial.commands.createDiagramWithAllClasses" class="org.eclipse.graphiti.examples.tutorial.handlers.CreateDiagramWithAllClassesHandler">
			<enabledWhen>
				<reference definitionId="org.eclipse.graphiti.examples.tutorial.definitions.OneEClassesNodeSelected" /> 
			</enabledWhen>
			<activeWhen>
				<reference definitionId="org.eclipse.graphiti.examples.tutorial.definitions.OneEClassesNodeSelected" /> 
			</activeWhen>
		</handler>
	</extension>

	<extension point="org.eclipse.ui.menus">
		<menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
			<command commandId="org.eclipse.graphiti.examples.tutorial.commands.createDiagramWithAllClasses">
				<visibleWhen>
					<reference definitionId="org.eclipse.graphiti.examples.tutorial.definitions.OneEClassesNodeSelected" /> 
				</visibleWhen>
			</command>
		</menuContribution>
	</extension>

	<extension point="org.eclipse.core.expressions.definitions">
		<definition id="org.eclipse.graphiti.examples.tutorial.definitions.OneEClassesNodeSelected">
			<and>
				<count value="1" /> 
				<iterate ifEmpty="false" operator="and">
					<instanceof value="org.eclipse.graphiti.examples.common.navigator.nodes.EClassesNode" /> 
				</iterate>
			</and>
		</definition>
	</extension>

	<!--
	Registers an Eclipse adapter factory to provide IPropertySource objects for the GraphitiConnectionEditPart
	that gets selected in the DiagramEditor to provide a standard (table format) property sheet for EReference
	objects.
	-->
	<extension
       point="org.eclipse.core.runtime.adapters">
		<factory
			adaptableType="org.eclipse.graphiti.ui.platform.GraphitiConnectionEditPart"
			class="org.eclipse.graphiti.examples.tutorial.property.GraphitiEditPartToIPropertySourceAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySource">
			</adapter>
		</factory>
	</extension>
</plugin>
 
