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

   <extension point="org.eclipse.team.core.fileTypes">
      <?gmfgen generated="true"?>
      <fileTypes
         type="text"
         extension="bundles_diagram">
      </fileTypes>
   </extension>

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

   <extension point="org.eclipse.ui.editors">
      <?gmfgen generated="true"?>
      <editor
         id="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramEditorID"
         name="%editorName"
         icon="icons/obj16/BundlesDiagramFile.gif"
         extensions="bundles_diagram"
         default="true"
         class="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramEditor"
         matchingStrategy="org.coderthoughts.osgi.bundles.diagram.part.BundlesMatchingStrategy"
         contributorClass="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramActionBarContributor">
      </editor>
   </extension>
   
   <extension point="org.eclipse.ui.contexts">
      <?gmfgen generated="true"?>
      <context
         description="%context.description"
         id="org.coderthoughts.osgi.bundles.diagram.ui.diagramContext"
         name="%context.name"
         parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
      </context>
   </extension>

   <extension point="org.eclipse.ui.newWizards">
      <?gmfgen generated="true"?>
  	  <wizard
  	     name="%newWizardName"
  	     icon="icons/obj16/BundlesDiagramFile.gif"
  	     category="org.eclipse.ui.Examples"
  	     class="org.coderthoughts.osgi.bundles.diagram.part.BundlesCreationWizard"
  	     id="org.coderthoughts.osgi.bundles.diagram.part.BundlesCreationWizardID">
  	  	 <description>%newWizardDesc</description>  
      </wizard>
   </extension>

   <extension point="org.eclipse.ui.popupMenus">
      <?gmfgen generated="true"?>
      <objectContribution
            adaptable="false"
            id="osgi_bundles.model.diagram.LoadResource"
            objectClass="org.coderthoughts.osgi.bundles.diagram.edit.parts.FrameworkEditPart">
         <action
               class="org.coderthoughts.osgi.bundles.diagram.part.BundlesLoadResourceAction"
               enablesFor="1"
               id="osgi_bundles.model.diagram.LoadResourceAction"
               label="%loadResourceActionLabel"
               menubarPath="additions">
         </action>
      </objectContribution>           
   </extension>

   <extension point="org.eclipse.ui.popupMenus">
      <?gmfgen generated="true"?>
      <objectContribution
            id="osgi_bundles.model.diagram.InitDiagram"
            nameFilter="*.bundles"
            objectClass="org.eclipse.core.resources.IFile">
         <action
               label="%initDiagramActionLabel"
               class="org.coderthoughts.osgi.bundles.diagram.part.BundlesInitDiagramFileAction"
               menubarPath="additions"
               enablesFor="1"
               id="osgi_bundles.model.diagram.InitDiagramAction">
         </action>
      </objectContribution>
   </extension>
	
   <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders">
      <?gmfgen generated="true"?>
      <GlobalActionHandlerProvider
         class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
         id="BundlesPresentation">
         <Priority name="Lowest"/>
         <ViewId id="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramEditorID">
            <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="BundlesPresentationIDE">
         <Priority name="Lowest"/>
         <ViewId id="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramEditorID">
            <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="BundlesRender">
         <Priority name="Lowest"/>
         <ViewId id="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramEditorID">
            <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.gmf.runtime.common.ui.services.action.contributionItemProviders">
      <?gmfgen generated="true"?>
      <contributionItemProvider
            class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContributionItemProvider"
            checkPluginLoaded="false">
         <Priority name="Low"/>
         <popupContribution class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider">
            <popupStructuredContributionCriteria objectClass="org.coderthoughts.osgi.bundles.diagram.edit.parts.BundleImports_fromEditPart"/>
            <popupAction path="/editGroup" id="deleteFromModelAction"/>
            <popupPredefinedItem id="deleteFromDiagramAction" remove="true"/>
         </popupContribution>
      </contributionItemProvider>
   </extension>

   <extension point="org.eclipse.core.runtime.preferences">
      <?gmfgen generated="true"?>
      <initializer class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramPreferenceInitializer"/>
   </extension>

   <extension point="org.eclipse.ui.preferencePages">
      <?gmfgen generated="true"?>
      <page
            id="osgi_bundles.model.diagram.general"
            name="%preference.page.title.osgi_bundles.model.diagram.general"
            class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramGeneralPreferencePage">
      </page>
      <page
            id="osgi_bundles.model.diagram.appearance"
            name="%preference.page.title.osgi_bundles.model.diagram.appearance"
            category="osgi_bundles.model.diagram.general"
            class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramAppearancePreferencePage">
      </page>
      <page
            id="osgi_bundles.model.diagram.connections"
            name="%preference.page.title.osgi_bundles.model.diagram.connections"
            category="osgi_bundles.model.diagram.general"
            class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramConnectionsPreferencePage">
      </page>
      <page
            id="osgi_bundles.model.diagram.printing"
            name="%preference.page.title.osgi_bundles.model.diagram.printing"
            category="osgi_bundles.model.diagram.general"
            class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramPrintingPreferencePage">
      </page>
      <page
            id="osgi_bundles.model.diagram.rulersAndGrid"
            name="%preference.page.title.osgi_bundles.model.diagram.rulersAndGrid"
            category="osgi_bundles.model.diagram.general"
            class="org.coderthoughts.osgi.bundles.diagram.preferences.DiagramRulersAndGridPreferencePage">
      </page>
      <page
            id="osgi_bundles.model.diagram.pathmaps"
            name="%preference.page.title.osgi_bundles.model.diagram.pathmaps"
            category="osgi_bundles.model.diagram.general"
            class="org.eclipse.gmf.runtime.emf.ui.preferences.PathmapsPreferencePage">
      </page>
   </extension>

   <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
      <?gmfgen generated="true"?>
      <propertyContributor
            contributorId="osgi_bundles.model.diagram"
            labelProvider="org.coderthoughts.osgi.bundles.diagram.sheet.BundlesSheetLabelProvider">
         <propertyCategory category="domain"/>
         <propertyCategory category="visual"/>
         <propertyCategory category="extra"/>
      </propertyContributor>
   </extension>

   <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
      <?gmfgen generated="true"?>   
      <propertyTabs contributorId="osgi_bundles.model.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">
      <?gmfgen generated="true"?>   
      <propertySections contributorId="osgi_bundles.model.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="org.coderthoughts.osgi.bundles.diagram.sheet.BundlesPropertySection">
            <input type="org.eclipse.gmf.runtime.notation.View"/>
            <input type="org.eclipse.gef.EditPart"/>
            <input type="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
         </propertySection>
      </propertySections>
   </extension>

   <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders">
      <?gmfgen generated="true"?>
      <viewProvider class="org.coderthoughts.osgi.bundles.diagram.providers.BundlesViewProvider">
         <Priority name="Lowest"/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="Bundles"/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints=""/>
         <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints=""/>
      </viewProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders">
      <?gmfgen generated="true"?>
      <editpartProvider class="org.coderthoughts.osgi.bundles.diagram.providers.BundlesEditPartProvider">
         <Priority name="Lowest"/>
      </editpartProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders">
      <?gmfgen generated="true"?>
      <modelingAssistantProvider class="org.coderthoughts.osgi.bundles.diagram.providers.BundlesModelingAssistantProvider">
         <Priority name="Lowest"/>
      </modelingAssistantProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders">
      <?gmfgen generated="true"?>
      <IconProvider class="org.coderthoughts.osgi.bundles.diagram.providers.BundlesIconProvider">
         <Priority name="Low"/>
      </IconProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders">
      <?gmfgen generated="true"?>
      <ParserProvider class="org.coderthoughts.osgi.bundles.diagram.providers.BundlesParserProvider">
         <Priority name="Lowest"/>
      </ParserProvider>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
      <?gmfgen generated="true"?>
      <metamodel nsURI="http://coderthoughts.blogspot.com/osgi.bundles">
         <metamodelType
               id="osgi_bundles.model.diagram.Framework_79"
               name="%metatype.name.Framework_79"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
               eclass="Framework"
               edithelper="org.coderthoughts.osgi.bundles.diagram.edit.helpers.FrameworkEditHelper">
            <param name="semanticHint" value="79"/>
         </metamodelType>
      </metamodel>
      <metamodel nsURI="http://coderthoughts.blogspot.com/osgi.bundles">
         <metamodelType
               id="osgi_bundles.model.diagram.Bundle_1001"
               name="%metatype.name.Bundle_1001"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
               eclass="Bundle"
               edithelper="org.coderthoughts.osgi.bundles.diagram.edit.helpers.BundleEditHelper">
            <param name="semanticHint" value="1001"/>
         </metamodelType>
      </metamodel>
      <metamodel nsURI="http://coderthoughts.blogspot.com/osgi.bundles">
         <specializationType
               id="osgi_bundles.model.diagram.BundleImports_from_3001"
               name="%metatype.name.BundleImports_from_3001"
               kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
            <specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
            <param name="semanticHint" value="3001"/>
         </specializationType>
      </metamodel>
   </extension>

   <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
      <?gmfgen generated="true"?>
      <clientContext id="BundlesClientContext">
         <enablement>
            <test
               property="org.eclipse.gmf.runtime.emf.core.editingDomain"
               value="osgi_bundles.model.diagram.EditingDomain"/>
         </enablement>
      </clientContext> 
      <binding context="BundlesClientContext">
         <elementType ref="osgi_bundles.model.diagram.Framework_79"/>
         <elementType ref="osgi_bundles.model.diagram.Bundle_1001"/>
         <elementType ref="osgi_bundles.model.diagram.BundleImports_from_3001"/>
         <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
      </binding>
   </extension>
	   <extension point="org.eclipse.core.expressions.propertyTesters">
      <?gmfgen generated="true"?>
       <propertyTester
           id="osgi_bundles.model.diagram.URIEditorInputPropertyTester"
           type="org.eclipse.emf.common.ui.URIEditorInput"
           namespace="osgi_bundles.model.diagram"
           properties="isURIEditorInput"
           class="org.coderthoughts.osgi.bundles.diagram.part.BundlesUriEditorInputTester">
       </propertyTester>
   </extension>

	   <extension point="org.eclipse.core.expressions.propertyTesters">
      <?gmfgen generated="true"?>
       <propertyTester
           id="osgi_bundles.model.diagram.DomainModelElementPropertyTester"
           type="org.eclipse.emf.ecore.EObject"
           namespace="osgi_bundles.model.diagram"
           properties="isDomainModelElement"
           class="org.coderthoughts.osgi.bundles.diagram.part.BundlesDomainModelElementTester">
       </propertyTester>
   </extension>

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

   <extension point="org.eclipse.ui.navigator.navigatorContent">
      <?gmfgen generated="true"?>
      <navigatorContent
            id="osgi_bundles.model.diagram.resourceContent" 
            name="%navigatorContentName" 
            priority="normal" 
            contentProvider="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesNavigatorContentProvider" 
            labelProvider="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesNavigatorLabelProvider"
            icon="icons/obj16/BundlesDiagramFile.gif"
            activeByDefault="true">
         <triggerPoints>
            <or>
	           <and>
    	          <instanceof value="org.eclipse.core.resources.IFile"/>
        	      <test property="org.eclipse.core.resources.extension" value="bundles_diagram"/>
               </and>
               <instanceof value="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
            </or>
         </triggerPoints>
         <possibleChildren>
            <or>
         	   <instanceof value="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
            </or>
         </possibleChildren>
         <commonSorter 
               id="osgi_bundles.model.diagram.navigatorSorter" 
               class="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesNavigatorSorter">
            <parentExpression>
               <or>
	              <and>
    	             <instanceof value="org.eclipse.core.resources.IFile"/>
        	         <test property="org.eclipse.core.resources.extension" value="bundles_diagram"/>
                  </and>
                  <instanceof value="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
               </or>
            </parentExpression>
         </commonSorter>
      </navigatorContent>
      <navigatorContent
            id="osgi_bundles.model.diagram.domainResourceContent" 
            name="%domainNavigatorContentName" 
            priority="normal" 
            contentProvider="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesDomainNavigatorContentProvider" 
            labelProvider="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesDomainNavigatorLabelProvider"
            icon="icons/obj16/BundlesDiagramFile.gif"
            activeByDefault="true">
         <triggerPoints>
            <or>
	           <and>
    	          <instanceof value="org.eclipse.core.resources.IFile"/>
        	      <test property="org.eclipse.core.resources.extension" value="bundles"/>
               </and>
               <and>
                  <instanceof value="org.eclipse.emf.ecore.EObject"/>
                  <test property="osgi_bundles.model.diagram.isDomainModelElement"/>
               </and>
            </or>
         </triggerPoints>
         <possibleChildren>
            <and>
       	       <instanceof value="org.eclipse.emf.ecore.EObject"/>
       	       <test property="osgi_bundles.model.diagram.isDomainModelElement"/>
       	    </and>
         </possibleChildren>
      </navigatorContent>
      <actionProvider
            id="osgi_bundles.model.diagram.navigatorActionProvider"
            class="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesNavigatorActionProvider">
         <enablement>
            <or>
               <instanceof value="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
            </or>
         </enablement>
      </actionProvider>
   </extension>
   
	   <extension point="org.eclipse.ui.navigator.linkHelper">
      <?gmfgen generated="true"?>
      <linkHelper
            id="osgi_bundles.model.diagram.navigatorLinkHelper"
            class="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesNavigatorLinkHelper">
         <editorInputEnablement>
            <and>
               <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/>
               <test property="osgi_bundles.model.diagram.isURIEditorInput"/>
            </and>
         </editorInputEnablement>
         <selectionEnablement>
            <instanceof value="org.coderthoughts.osgi.bundles.diagram.navigator.BundlesAbstractNavigatorItem"/>
         </selectionEnablement>
      </linkHelper>
   </extension>
   <extension point="org.eclipse.ui.commands">
      <?gmfgen generated="true"?>
      <command
         categoryId="org.eclipse.ui.category.edit"
         defaultHandler="org.coderthoughts.osgi.bundles.diagram.part.BundlesDiagramUpdateCommand"
         description="%update.diagram.description"
         id="org.coderthoughts.osgi.bundles.diagram.updateDiagram"
         name="%update.diagram.name"/>
   </extension>
   
   <extension point="org.eclipse.ui.bindings">
      <?gmfgen generated="true"?>
      <key 
         commandId="org.coderthoughts.osgi.bundles.diagram.updateDiagram"
         contextId="org.coderthoughts.osgi.bundles.diagram.ui.diagramContext"
         schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
         sequence="F5"/>
   </extension>
</plugin>

