<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
Copyright (c) 2006, 2007 Borland Software Corporation.
 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:
     Richard Gronback (Borland) - initial API and implementation
-->
<plugin>
  <extension point="org.eclipse.team.core.fileTypes">
    <?gmfgen generated="true"?>
      <fileTypes
         type="text"
         extension="mmd">
      </fileTypes>
  </extension>
   <extension point="org.eclipse.ui.editors">
     <?gmfgen generated="true"?>
     <editor
        id="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapDiagramEditorID"
        name="%editorName"
        icon="icons/obj16/MindmapDiagramFile.gif"
        extensions="mmd"
        default="true"
        class="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapDiagramEditor"
        matchingStrategy="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapMatchingStrategy"
        contributorClass="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapDiagramActionBarContributor">
     </editor>
   </extension>
  <extension
    point="org.eclipse.core.runtime.applications"
    id="MindmapApplication">
    <?gmfgen generated="true"?>
    <application>
      <run
        class="org.eclipse.gmf.examples.mindmap.rcp.application.MindmapApplication">
      </run>
    </application>
  </extension>

   <extension
    point="org.eclipse.ui.perspectives">
     <?gmfgen generated="true"?>
    <perspective
      name="%_UI_Perspective_label"
      class="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorPerspective"
      id="org.eclipse.gmf.examples.mindmap.rcp.MindmapPerspective">
    </perspective>
  </extension>

  <extension
    point="org.eclipse.ui.commands">
     <?gmfgen generated="true"?>
    <command
      name="%_UI_Menu_OpenURI_label"
      description="%_UI_Menu_OpenURI_description"
      categoryId="org.eclipse.ui.category.file"
      id="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenURICommand" />  
    <command
      name="%_UI_Menu_Open_label"
      description="%_UI_Menu_Open_description"
      categoryId="org.eclipse.ui.category.file"
      id="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenCommand" />  
  </extension>

  <extension
    point="org.eclipse.ui.bindings">
     <?gmfgen generated="true"?>
    <key
      commandId="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenURICommand"
      sequence="M1+U"
      schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
    <key
      commandId="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenCommand"
      sequence="M1+O"
      schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
  </extension>
  <extension
    point="org.eclipse.ui.actionSets">
     <?gmfgen generated="true"?>
    <actionSet
      label="%_UI_org.eclipse.gmf.examples.mindmap.rcp.part.MindmapDiagramEditorUtil_ActionSet_label"
      visible="true"
      id="org.eclipse.gmf.examples.mindmap.lite.rcp.ActionSet">
      <action
        label="%_UI_Menu_About_label"
        class="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorActionBarAdvisor$AboutAction"
        menubarPath="help/additions"
        id="org.eclipse.gmf.examples.mindmap.lite.rcp.AboutAction">
      </action>
      <action
        label="%_UI_Menu_OpenURI_label"
        definitionId="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenURICommand"
        class="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorActionBarAdvisor$OpenURIAction"
        menubarPath="file/additions"
        id="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenURIAction">
      </action>
      <action
        label="%_UI_Menu_Open_label"
        definitionId="org.eclipse.gmf.examples.mindmap.lite.rcp.OpenCommand"
        class="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorActionBarAdvisor$OpenAction"
        menubarPath="file/additions"
        id="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorActionBarAdvisorOpenDiagramAction">
      </action>
      <action
        label="%_UI_org.eclipse.gmf.examples.mindmap.rcp.part.MindmapDiagramEditorUtilNewDiagramCommand"
        class="org.eclipse.gmf.examples.mindmap.rcp.application.DiagramEditorActionBarAdvisor$NewDiagramAction"
        menubarPath="file/new/additions"
        id="org.eclipse.gmf.examples.mindmap.lite.rcp.NewDiagramAction">
      </action>
      <action
        label="%_UI_Menu_InitDiagramFile_label"
        class="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapInitDiagramFileAction"
        menubarPath="file/additions"
        id="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapInitDiagramFileActionID">
      </action>
    </actionSet> 
  </extension>
   <extension point="org.eclipse.ui.popupMenus">
     <?gmfgen generated="true"?>
      <objectContribution
            adaptable="false"
            id="org.eclipse.gmf.examples.mindmap.lite.rcp.ui.objectContribution.MapEditPart2"
            objectClass="org.eclipse.gmf.examples.mindmap.rcp.edit.parts.MapEditPart">
         <action
               class="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapLoadResourceAction"
               enablesFor="1"
               id="org.eclipse.gmf.examples.mindmap.rcp.part.MindmapLoadResourceActionID"
               label="%loadResourceActionLabel"
               menubarPath="additions">
         </action>
      </objectContribution>  
   </extension>
   <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
      <?gmfgen generated="true"?>
      <propertyContributor contributorId="org.eclipse.gmf.examples.mindmap.lite.rcp" labelProvider="org.eclipse.gmf.examples.mindmap.rcp.sheet.MindmapSheetLabelProvider">
         <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="org.eclipse.gmf.examples.mindmap.lite.rcp">
         <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="org.eclipse.gmf.examples.mindmap.lite.rcp">
         <propertySection
            id="property.section.domain" 
            tab="property.tab.domain"
            class="org.eclipse.gmf.examples.mindmap.rcp.sheet.MindmapPropertySection">
            <input type="org.eclipse.gmf.runtime.notation.View"/>
            <input type="org.eclipse.gef.EditPart"/>
         </propertySection>
      </propertySections>
   </extension>
   <extension point="org.eclipse.emf.validation.constraintProviders">
      <?gmfgen generated="true"?>
            <category id="org.eclipse.gmf.examples.mindmap.audits" mandatory="false" name="Mindmap Audits">
         <![CDATA[Audits to detect problems in mindmap diagrams.]]>
      </category>
      <constraintProvider cache="true">
         <package namespaceUri="mindmap"/>
         <package namespaceUri="mindmap"/>
               <constraints categories="org.eclipse.gmf.examples.mindmap.audits">
                  <constraint id="cycle"
            lang="OCL"
            name="Cyclic relationship check"
            mode="Batch"
            severity="ERROR" statusCode="200">
            <![CDATA[self.relations->forAll(r1, r2 |  r1.target = r2.source and r1.type = r2.type implies r2.target <> r1.source)]]>
            <description><![CDATA[This audit detects (simple) cycles between Topic relationships]]></description>
            <message><![CDATA[A cycle was found in relationships between two Topic elements.]]></message>
            <target class="mindmap.Map"/>
         </constraint>
                  <constraint id="topic.name"
            lang="OCL"
            name="Topic name audit"
            mode="Batch"
            severity="ERROR" statusCode="200">
            <![CDATA[name.size() > 0]]>
            <description><![CDATA[A Topic must have a name provided.]]></description>
            <message><![CDATA[Topics must have a name]]></message>
            <target class="mindmap.Topic"/>
         </constraint>
                  </constraints>
      </constraintProvider>
   </extension>

   <extension point="org.eclipse.emf.validation.constraintBindings">
      <?gmfgen generated="true"?>
                  <clientContext default="false" id="org.eclipse.gmf.examples.mindmap.lite.rcp.DefaultCtx">
         <selector class="org.eclipse.gmf.examples.mindmap.rcp.providers.MindmapValidationProvider$DefaultCtx1"/>
      </clientContext>
      <binding context="org.eclipse.gmf.examples.mindmap.lite.rcp.DefaultCtx">
                  <constraint ref="org.eclipse.gmf.examples.mindmap.lite.rcp.cycle"/>
                  <constraint ref="org.eclipse.gmf.examples.mindmap.lite.rcp.topic.name"/>
               </binding>
               </extension>

</plugin>
