<?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" packageNamePrefix="org.eclipse.epf.diagram.wpdd"
    modelID="WPDD"
    sameFileForDiagramAndModel="true"
    diagramFileExtension="wpdd">
  <diagram
      visualID="79"
      editPartClassName="WorkProductDependencyDiagramEditPart"
      itemSemanticEditPolicyClassName="WorkProductDependencyDiagramItemSemanticEditPolicy"
      notationViewFactoryClassName="WorkProductDependencyDiagramViewFactory"
      iconProviderPriority="Low"
      canonicalEditPolicyClassName="WorkProductDependencyDiagramCanonicalEditPolicy">
    <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">
      <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="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class WorkProductNodeFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public WorkProductNodeFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;this.setOutline(false);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xD;&#xA;fig_0.setText(&quot;New Work Product Descriptor&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setFigureNamedNodeNameFigure(fig_0);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;Object layData0 = null;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fNamedNodeNameFigure; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureNamedNodeNameFigure() {&#xD;&#xA;&#x9;&#x9;return fNamedNodeNameFigure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void setFigureNamedNodeNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xD;&#xA;&#x9;&#x9;fNamedNodeNameFigure = fig;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected boolean useLocalCoordinates() {&#xD;&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xD;&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#x9;&#xD;&#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="">
          <metaFeature
              href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#//model/NamedNode/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <links
        visualID="3001"
        editPartClassName="LinkEditPart"
        itemSemanticEditPolicyClassName="LinkItemSemanticEditPolicy"
        notationViewFactoryClassName="LinkViewFactory">
      <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="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class LinkFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public LinkFigure() {&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() {&#xD;&#xA;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;// dispatchNext?&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xD;&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xD;&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xD;&#xA;&#x9;&#x9;df.setTemplate(pl);&#xD;&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#x9;&#xD;&#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="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class LinkNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public LinkNameFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&quot;);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected boolean useLocalCoordinates() {&#xD;&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xD;&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#x9;&#xD;&#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=""
            editPattern="">
          <metaFeature
              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>
  </diagram>
  <plugin
      iD="org.eclipse.epf.diagram.wpdd"
      name="Work Product Dependency Diagram Plugin"
      provider="EPF"
      printingEnabled="true"
      activatorClassName="WPDDiagramEditorPlugin"/>
  <editor
      className="WorkProductDependencyDiagramEditor"/>
  <domainGenModel
      href="../../org.eclipse.epf.diagram.model/model/diagram.genmodel#/"/>
</gmfgen:GenEditorGenerator>
