<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>

   <extension point="org.eclipse.team.core.fileTypes" id="repo-ftype">
      <?gmfgen generated="true"?>
      <fileTypes type="text" extension="people_diagram"/>
   </extension>

   <extension point="org.eclipse.emf.ecore.extension_parser" id="resource-factory">
      <?gmfgen generated="true"?>
      <parser
         type="people_diagram"
         class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
      </parser>
   </extension>

   <extension point="org.eclipse.ui.editors" id="gmf-editor">
      <?gmfgen generated="true"?>
      <editor
         id="people.diagram.part.PeopleDiagramEditorID"
         name="%editorName"
         icon="icons/obj16/PeopleDiagramFile.gif"
         extensions="people_diagram"
         default="true"
         class="people.diagram.part.PeopleDiagramEditor"
         matchingStrategy="people.diagram.part.PeopleMatchingStrategy"
         contributorClass="people.diagram.part.PeopleDiagramActionBarContributor">
      </editor>
   </extension>
   
   <extension point="org.eclipse.ui.contexts" id="ui-context">
      <?gmfgen generated="true"?>
      <context
         description="%context.description"
         id="people.diagram.ui.diagramContext"
         name="%context.name"
         parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
      </context>
   </extension>

   <extension point="org.eclipse.ui.newWizards" id="creation-wizard">
      <?gmfgen generated="true"?>
  	  <wizard
  	     name="%newWizardName"
  	     icon="icons/obj16/PeopleDiagramFile.gif"
  	     category="org.eclipse.ui.Examples"
  	     class="people.diagram.part.PeopleCreationWizard"
  	     id="people.diagram.part.PeopleCreationWizardID">
  	  	 <description>%newWizardDesc</description>  
      </wizard>
   </extension>

   <extension point="org.eclipse.ui.popupMenus" id="init-diagram-action">
      <?gmfgen generated="true"?>
      <objectContribution
            id="ESEExampleTree.diagram.InitDiagram"
            nameFilter="*.people"
            objectClass="org.eclipse.core.resources.IFile">
         <action
               label="%initDiagramActionLabel"
               class="people.diagram.part.PeopleInitDiagramFileAction"
               menubarPath="additions"
               enablesFor="1"
               id="ESEExampleTree.diagram.InitDiagramAction">
         </action>
      </objectContribution>
   </extension>
	
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders" id="global-actions">
      <?gmfgen generated="true"?>
      <GlobalActionHandlerProvider
         class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
         id="PeoplePresentation">
         <Priority name="Lowest"/>
         <ViewId id="people.diagram.part.PeopleDiagramEditorID">
            <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
               <GlobalActionId actionId="delete"/>
            </ElementType>
            <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart">
               <GlobalActionId actionId="save"/>
            </ElementType>
         </ViewId>
      </GlobalActionHandlerProvider>
      <GlobalActionHandlerProvider
         class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider"
         id="PeoplePresentationIDE">
         <Priority name="Lowest"/>
         <ViewId id="people.diagram.part.PeopleDiagramEditorID">
            <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
               <GlobalActionId actionId="bookmark"/>
            </ElementType>
         </ViewId>
      </GlobalActionHandlerProvider>
      <GlobalActionHandlerProvider
            class="org.eclipse.gmf.runtime.diagram.ui.render.providers.DiagramUIRenderGlobalActionHandlerProvider"
            id="PeopleRender">
         <Priority name="Lowest"/>
         <ViewId id="people.diagram.part.PeopleDiagramEditorID">
            <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
               <GlobalActionId actionId="cut"/>
               <GlobalActionId actionId="copy"/>
               <GlobalActionId actionId="paste"/>
            </ElementType>
         </ViewId>
      </GlobalActionHandlerProvider>
   </extension>


   <extension point="org.eclipse.core.runtime.preferences" id="prefs">
      <?gmfgen generated="true"?>
      <initializer class="people.diagram.preferences.DiagramPreferenceInitializer"/>
   </extension>

   <extension point="org.eclipse.ui.preferencePages" id="prefpages">
      <?gmfgen generated="true"?>
      <page
            id="ESEExampleTree.diagram.general"
            name="%prefpage.ESEExampleTree.diagram.general"
            class="people.diagram.preferences.DiagramGeneralPreferencePage">
      </page>
      <page
            id="ESEExampleTree.diagram.appearance"
            name="%prefpage.ESEExampleTree.diagram.appearance"
            category="ESEExampleTree.diagram.general"
            class="people.diagram.preferences.DiagramAppearancePreferencePage">
      </page>
      <page
            id="ESEExampleTree.diagram.connections"
            name="%prefpage.ESEExampleTree.diagram.connections"
            category="ESEExampleTree.diagram.general"
            class="people.diagram.preferences.DiagramConnectionsPreferencePage">
      </page>
      <page
            id="ESEExampleTree.diagram.printing"
            name="%prefpage.ESEExampleTree.diagram.printing"
            category="ESEExampleTree.diagram.general"
            class="people.diagram.preferences.DiagramPrintingPreferencePage">
      </page>
      <page
            id="ESEExampleTree.diagram.rulersAndGrid"
            name="%prefpage.ESEExampleTree.diagram.rulersAndGrid"
            category="ESEExampleTree.diagram.general"
            class="people.diagram.preferences.DiagramRulersAndGridPreferencePage">
      </page>
   </extension>

   <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor" id="prop-contrib">
      <?gmfgen generated="true"?>
      <propertyContributor
            contributorId="ESEExampleTree.diagram"
            labelProvider="people.diagram.sheet.PeopleSheetLabelProvider">
         <propertyCategory category="domain"/>
         <propertyCategory category="visual"/>
         <propertyCategory category="extra"/>
      </propertyContributor>
   </extension>

   <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs" id="proptabs">
      <?gmfgen generated="true"?>   
      <propertyTabs contributorId="ESEExampleTree.diagram">
         <propertyTab
             category="visual"
             id="property.tab.AppearancePropertySection"
             label="%tab.appearance"/>
          <propertyTab
             category="visual"
             id="property.tab.DiagramPropertySection"
             label="%tab.diagram"/>
          <propertyTab
             category="domain"
             id="property.tab.domain"
             label="%tab.domain"/>
      </propertyTabs>
   </extension>

   <extension point="org.eclipse.ui.views.properties.tabbed.propertySections" id="propsections">
      <?gmfgen generated="true"?>   
      <propertySections contributorId="ESEExampleTree.diagram">
         <propertySection id="property.section.ConnectorAppearancePropertySection" 
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter" 
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection" 
            tab="property.tab.AppearancePropertySection">
         </propertySection>
         <propertySection id="property.section.ShapeColorAndFontPropertySection" 
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter" 
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection" 
            tab="property.tab.AppearancePropertySection">
         </propertySection> 
         <propertySection id="property.section.DiagramColorsAndFontsPropertySection" 
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" 
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection" 
            tab="property.tab.AppearancePropertySection">
         </propertySection>     
         <propertySection id="property.section.RulerGridPropertySection" 
            filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter" 
            class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection" 
            tab="property.tab.DiagramPropertySection">
         </propertySection>     
         <propertySection
            id="property.section.domain" 
            tab="property.tab.domain"
            class="people.diagram.sheet.PeoplePropertySection">
            <input type="org.eclipse.gmf.runtime.notation.View"/>
            <input type="org.eclipse.gef.EditPart"/>
            <input type="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
         </propertySection>
      </propertySections>
   </extension>

   <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders" id="view-provider">
      <?gmfgen generated="true"?>
      <viewProvider class="people.diagram.providers.PeopleViewProvider">
         <Priority name="Lowest"/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="People"/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints="2001"/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4002"/>
      </viewProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders" id="ep-provider">
      <?gmfgen generated="true"?>
      <editpartProvider class="people.diagram.providers.PeopleEditPartProvider">
         <Priority name="Lowest"/>
         <object class="org.eclipse.gmf.runtime.notation.Diagram" id="generated-diagram">
            <method name="getType()" value="People"/>
         </object>
         <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-nodes">
            <method name="getType()" value="2001"/>
         </object>
         <object class="org.eclipse.gmf.runtime.notation.Edge" id="generated-links">
            <method name="getType()" value="4002"/>
         </object>
         <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-labels">
            <method name="getType()" value="5001"/>
         </object>
         <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-compartments">
            <method name="getType()" value=""/>
         </object>
         <context views="generated-diagram,generated-nodes,generated-links,generated-labels,generated-compartments"/>
      </editpartProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider">
      <?gmfgen generated="true"?>
      <modelingAssistantProvider class="people.diagram.providers.PeopleModelingAssistantProvider">
         <Priority name="Lowest"/>
         <object class="people.diagram.edit.parts.UniverseEditPart" id="Universe_1000"/>
         <object class="people.diagram.edit.parts.PersonEditPart" id="Person_2001"/>
         <context elements="Universe_1000,Person_2001"/>
      </modelingAssistantProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders" id="icon-provider">
      <?gmfgen generated="true"?>
      <IconProvider class="people.diagram.providers.PeopleIconProvider">
         <Priority name="Low"/>
      </IconProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders" id="parser-provider">
      <?gmfgen generated="true"?>
      <ParserProvider class="people.diagram.providers.PeopleParserProvider">
         <Priority name="Lowest"/>
      </ParserProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types">
      <?gmfgen generated="true"?>
      <metamodel nsURI="http://www.eclipse.org/examples/tree">
         <metamodelType
               id="ESEExampleTree.diagram.Universe_1000"
               name="%metatype.name.Universe_1000"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
               eclass="Universe"
               edithelper="people.diagram.edit.helpers.UniverseEditHelper">
            <param name="semanticHint" value="1000"/>
         </metamodelType>
      </metamodel>
      <metamodel nsURI="http://www.eclipse.org/examples/tree">
         <metamodelType
               id="ESEExampleTree.diagram.Person_2001"
               name="%metatype.name.Person_2001"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
               eclass="Person"
               edithelper="people.diagram.edit.helpers.PersonEditHelper">
            <param name="semanticHint" value="2001"/>
         </metamodelType>
      </metamodel>
      <metamodel nsURI="http://www.eclipse.org/examples/tree">
         <specializationType
               id="ESEExampleTree.diagram.PersonChildren_4002"
               name="%metatype.name.PersonChildren_4002"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
            <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
            <param name="semanticHint" value="4002"/>
         </specializationType>
      </metamodel>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings" id="element-types-bindings">
      <?gmfgen generated="true"?>
      <clientContext id="ESEExampleTree.diagram.TypeContext">
         <enablement>
            <test
               property="org.eclipse.gmf.runtime.emf.core.editingDomain"
               value="ESEExampleTree.diagram.EditingDomain"/>
         </enablement>
      </clientContext> 
      <binding context="ESEExampleTree.diagram.TypeContext">
         <elementType ref="ESEExampleTree.diagram.Universe_1000"/>
         <elementType ref="ESEExampleTree.diagram.Person_2001"/>
         <elementType ref="ESEExampleTree.diagram.PersonChildren_4002"/>
         <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
      </binding>
   </extension>
	   <extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isURIEditorInput">
      <?gmfgen generated="true"?>
       <propertyTester
           id="ESEExampleTree.diagram.URIEditorInputPropertyTester"
           type="org.eclipse.emf.common.ui.URIEditorInput"
           namespace="ESEExampleTree.diagram"
           properties="isURIEditorInput"
           class="people.diagram.part.PeopleUriEditorInputTester">
       </propertyTester>
   </extension>

	   <extension point="org.eclipse.ui.navigator.viewer" id="navigator-viewbinding">
      <?gmfgen generated="true"?>
      <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
         <includes>
            <contentExtension pattern="ESEExampleTree.diagram.resourceContent"/>
			<contentExtension pattern="ESEExampleTree.diagram.domainResourceContent"/>
            <contentExtension pattern="ESEExampleTree.diagram.navigatorLinkHelper"/>
         </includes>
      </viewerContentBinding>
      <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
         <includes>
            <actionExtension pattern="ESEExampleTree.diagram.navigatorActionProvider"/>
         </includes>
      </viewerActionBinding>
   </extension>

   <extension point="org.eclipse.ui.navigator.navigatorContent" id="navigator-content">
      <?gmfgen generated="true"?>
      <navigatorContent
            id="ESEExampleTree.diagram.resourceContent" 
            name="%navigatorContentName" 
            priority="normal" 
            contentProvider="people.diagram.navigator.PeopleNavigatorContentProvider" 
            labelProvider="people.diagram.navigator.PeopleNavigatorLabelProvider"
            icon="icons/obj16/PeopleDiagramFile.gif"
            activeByDefault="true">
         <triggerPoints>
            <or>
	           <and>
    	          <instanceof value="org.eclipse.core.resources.IFile"/>
        	      <test property="org.eclipse.core.resources.extension" value="people_diagram"/>
               </and>
               <instanceof value="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
            </or>
         </triggerPoints>
         <possibleChildren>
            <or>
         	   <instanceof value="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
            </or>
         </possibleChildren>
         <commonSorter 
               id="ESEExampleTree.diagram.navigatorSorter" 
               class="people.diagram.navigator.PeopleNavigatorSorter">
            <parentExpression>
               <or>
	              <and>
    	             <instanceof value="org.eclipse.core.resources.IFile"/>
        	         <test property="org.eclipse.core.resources.extension" value="people_diagram"/>
                  </and>
                  <instanceof value="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
               </or>
            </parentExpression>
         </commonSorter>
      </navigatorContent>
      <navigatorContent
            id="ESEExampleTree.diagram.domainResourceContent" 
            name="%domainNavigatorContentName" 
            priority="normal" 
            contentProvider="people.diagram.navigator.PeopleDomainNavigatorContentProvider" 
            labelProvider="people.diagram.navigator.PeopleDomainNavigatorLabelProvider"
            icon="icons/obj16/PeopleDiagramFile.gif"
            activeByDefault="true">
         <triggerPoints>
            <or>
	           <and>
    	          <instanceof value="org.eclipse.core.resources.IFile"/>
        	      <test property="org.eclipse.core.resources.extension" value="people"/>
               </and>
               <instanceof value="people.diagram.navigator.PeopleDomainNavigatorItem"/>
            </or>
         </triggerPoints>
         <possibleChildren>
            <instanceof value="people.diagram.navigator.PeopleDomainNavigatorItem"/>
         </possibleChildren>
      </navigatorContent>
      <actionProvider
            id="ESEExampleTree.diagram.navigatorActionProvider"
            class="people.diagram.navigator.PeopleNavigatorActionProvider">
         <enablement>
            <or>
               <instanceof value="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
            </or>
         </enablement>
      </actionProvider>
   </extension>
   
	   <extension point="org.eclipse.ui.navigator.linkHelper" id="navigator-linkhelper">
      <?gmfgen generated="true"?>
      <linkHelper
            id="ESEExampleTree.diagram.navigatorLinkHelper"
            class="people.diagram.navigator.PeopleNavigatorLinkHelper">
         <editorInputEnablement>
            <and>
               <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/>
               <test property="ESEExampleTree.diagram.isURIEditorInput"/>
            </and>
         </editorInputEnablement>
         <selectionEnablement>
            <instanceof value="people.diagram.navigator.PeopleAbstractNavigatorItem"/>
         </selectionEnablement>
      </linkHelper>
   </extension>
   <extension point="org.eclipse.ui.commands" id="update-cmd">
      <?gmfgen generated="true"?>
      <command
         categoryId="org.eclipse.ui.category.edit"
         defaultHandler="people.diagram.part.PeopleDiagramUpdateCommand"
         description="%update.diagram.description"
         id="people.diagram.updateDiagram"
         name="%update.diagram.name"/>
   </extension>
   
   <extension point="org.eclipse.ui.bindings" id="update-cmd-binding">
      <?gmfgen generated="true"?>
      <key 
         commandId="people.diagram.updateDiagram"
         contextId="people.diagram.ui.diagramContext"
         schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
         sequence="F5"/>
   </extension>

   <extension point="org.eclipse.ui.menus" id="context-menus">
      <?gmfgen generated="true"?>
      <!-- menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=">
      </menuContribution>
      <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=">
      </menuContribution -->
      <menuContribution locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
         <command commandId="ESEExampleTree.diagram.LoadResourceAction">
            <visibleWhen>
               <and>
                  <with variable="activePartId"><equals value="people.diagram.part.PeopleDiagramEditorID"/></with>
                  <with variable="selection"><iterate ifEmpty="false"> 
                     <instanceof value="people.diagram.edit.parts.UniverseEditPart"/>
                  </iterate></with>
               </and>
            </visibleWhen>
         </command>
      </menuContribution>
   </extension>

   <extension point="org.eclipse.ui.commands" id="menu-commands">
      <?gmfgen generated="true"?>
      <category id="people.diagram.part.PeopleDiagramEditorID" name="%cmdcategory.name" description="%cmdcategory.desc"/>
      <command id="ESEExampleTree.diagram.LoadResourceAction"
         name="Load Resource"
         categoryId="people.diagram.part.PeopleDiagramEditorID"
         defaultHandler="people.diagram.part.LoadResourceAction"/>
   </extension>

   <extension point="org.eclipse.ui.handlers" id="menu-handlers">
      <?gmfgen generated="true"?>
   </extension>

   <!-- optionally, specify keybindings -->
</plugin>
