<?xml version="1.0" encoding="UTF-8"?>
<gmfgen:GenEditorGenerator xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:gmfgen="http://www.eclipse.org/gmf/2005/GenModel/2.0">
  <diagram
      visualID="79"
      editPartClassName="WorkProductDependencyDiagramEditPart"
      itemSemanticEditPolicyClassName="WorkProductDependencyDiagramItemSemanticEditPolicy"
      notationViewFactoryClassName="WorkProductDependencyDiagramViewFactory"
      canonicalEditPolicyClassName="WorkProductDependencyDiagramCanonicalEditPolicy"
      iconProviderPriority="Low"
      validationProviderPriority="Low">
    <diagramRunTimeClass
        href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
    <elementType
        xsi:type="gmfgen:MetamodelType"
        editHelperClassName="WorkProductDependencyDiagramEditHelper"/>
    <viewmap
        xsi:type="gmfgen:FigureViewmap"
        figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
    <domainDiagramElement
        href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/WorkProductDependencyDiagram"/>
    <topLevelNodes
        visualID="1001"
        editPartClassName="WorkProductNodeEditPart"
        itemSemanticEditPolicyClassName="WorkProductNodeItemSemanticEditPolicy"
        notationViewFactoryClassName="WorkProductNodeViewFactory"
        canonicalEditPolicyClassName="WorkProductNodeCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="WorkProductNodeGraphicalNodeEditPolicy"
        createCommandClassName="WorkProductNodeCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="WorkProductNodeEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="WorkProductNodeFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class WorkProductNodeFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public WorkProductNodeFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;this.setFill(true);&#xA;this.setFillXOR(false);&#xA;this.setOutline(false);&#xA;this.setOutlineXOR(false);&#xA;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_SOLID);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;&#xA;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel namedNodeNameFigure0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;namedNodeNameFigure0.setText(&quot;New Work Product Descriptor&quot;);&#xA;&#xA;this.add(namedNodeNameFigure0);&#xA;setFigureNamedNodeNameFigure(namedNodeNameFigure0);&#xA;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fNamedNodeNameFigure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureNamedNodeNameFigure() {&#xA;&#x9;&#x9;return fNamedNodeNameFigure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureNamedNodeNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fNamedNodeNameFigure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#xA;">
        <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
        <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/WorkProductNode"/>
        <containmentMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/NodeContainer/nodes"/>
        <childMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/NodeContainer/nodes"/>
      </modelFacet>
      <labels
          visualID="4001"
          editPartClassName="WorkProductNodeNameEditPart"
          itemSemanticEditPolicyClassName="WorkProductNodeNameItemSemanticEditPolicy"
          notationViewFactoryClassName="WorkProductNodeNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureNamedNodeNameFigure"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            viewPattern="{0}">
          <metaFeatures
              href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/NamedNode/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <links
        visualID="3001"
        editPartClassName="LinkEditPart"
        itemSemanticEditPolicyClassName="LinkItemSemanticEditPolicy"
        notationViewFactoryClassName="LinkViewFactory"
        createCommandClassName="LinkCreateCommand"
        reorientCommandClassName="LinkReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="LinkEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="LinkFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class LinkFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public LinkFigure() {&#xA;&#x9;&#x9;this.setFill(true);&#xA;this.setFillXOR(false);&#xA;this.setOutline(true);&#xA;this.setOutlineXOR(false);&#xA;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_SOLID);&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;df.setFill(true);&#xA;df.setFillXOR(false);&#xA;df.setOutline(true);&#xA;df.setOutlineXOR(false);&#xA;df.setLineWidth(1);&#xA;df.setLineStyle(org.eclipse.draw2d.Graphics.LINE_SOLID);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(1)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(-1)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#xA;">
        <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
        <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Link"/>
        <containmentMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Node/outgoingConnections"/>
        <childMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Node/outgoingConnections"/>
        <sourceMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Link/source"/>
        <targetMetaFeature
            href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Link/target"/>
      </modelFacet>
      <labels
          visualID="4002"
          editPartClassName="LinkNameEditPart"
          itemSemanticEditPolicyClassName="LinkNameItemSemanticEditPolicy"
          notationViewFactoryClassName="LinkNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="LinkNameFigure"
            classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class LinkNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public LinkNameFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;this.setText(&quot;&quot;);&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="40"/>
          <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
          <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            viewPattern="{0}"
            editPattern="">
          <metaFeatures
              href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/Link/name"/>
        </modelFacet>
      </labels>
    </links>
    <palette>
      <groups
          title="model">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Control Flow"
            description="Create new Control Flow"
            smallIconPath="/org.eclipse.epf.diagram.wpdd/icons/full/obj16/link_pal16.gif"
            genLinks="//@diagram/@links.0"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Work Product Descriptor"
            description="Create new work product descriptor"
            smallIconPath="/org.eclipse.epf.diagram.wpdd/icons/full/obj16/WorkProductDescriptor.gif"
            genNodes="//@diagram/@topLevelNodes.0"/>
      </groups>
    </palette>
    <preferencePages
        xsi:type="gmfgen:GenStandardPreferencePage"
        iD="org.eclipse.epf.diagram.diagram.general"
        name="Diagram Diagram">
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.epf.diagram.diagram.appearance"
          name="Appearance"
          kind="Appearance"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.epf.diagram.diagram.connections"
          name="Connections"
          kind="Connections"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.epf.diagram.diagram.printing"
          name="Printing"
          kind="Printing"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.epf.diagram.diagram.rulersAndGrid"
          name="Rulers And Grid"
          kind="RulersAndGrid"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.epf.diagram.diagram.pathmaps"
          name="Pathmaps"
          kind="Pathmaps"/>
    </preferencePages>
  </diagram>
  <plugin/>
  <editor/>
  <navigator>
    <childReferences
        child="//@diagram"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.0"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.0"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.0"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
  </navigator>
  <propertySheet>
    <tabs
        xsi:type="gmfgen:GenStandardPropertyTab"
        iD="appearance"/>
    <tabs
        xsi:type="gmfgen:GenStandardPropertyTab"
        iD="diagram"/>
    <tabs
        xsi:type="gmfgen:GenCustomPropertyTab"
        iD="domain"
        label="Core">
      <filter
          xsi:type="gmfgen:TypeTabFilter">
        <types>org.eclipse.gmf.runtime.notation.View</types>
        <types>org.eclipse.gef.EditPart</types>
        <generatedTypes>abstractNavigatorItem</generatedTypes>
      </filter>
    </tabs>
  </propertySheet>
  <domainGenModel
      href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#/"/>
</gmfgen:GenEditorGenerator>
