<?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/2009/GenModel" copyrightText="">
  <diagram
      visualID="1000"
      editPartClassName="FlowchartEditPart"
      itemSemanticEditPolicyClassName="FlowchartItemSemanticEditPolicy"
      canonicalEditPolicyClassName="FlowchartCanonicalEditPolicy"
      iconProviderPriority="Low"
      validationProviderPriority="Low"
      validationEnabled="true"
      validationDecorators="true"
      liveValidationUIFeedback="true">
    <diagramRunTimeClass
        href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
    <elementType
        xsi:type="gmfgen:MetamodelType"
        editHelperClassName="FlowchartEditHelper"/>
    <viewmap
        xsi:type="gmfgen:FigureViewmap"
        figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
    <containsShortcutsTo>flowchart</containsShortcutsTo>
    <shortcutsProvidedFor>flowchart</shortcutsProvidedFor>
    <domainDiagramElement
        href="flowchart.genmodel#//flowchart/Flowchart"/>
    <topLevelNodes
        visualID="2001"
        editPartClassName="SubflowEditPart"
        itemSemanticEditPolicyClassName="SubflowItemSemanticEditPolicy"
        canonicalEditPolicyClassName="SubflowCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="SubflowGraphicalNodeEditPolicy"
        createCommandClassName="SubflowCreateCommand">
      <diagramRunTimeClass
          href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="SubflowEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="SubflowFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SubflowFigure extends org.eclipse.draw2d.RoundedRectangle {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSubflowLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SubflowFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)&#xA;, getMapMode().DPtoLP(8)&#xA;));&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureSubflowLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureSubflowLabelFigure.setText(&quot;Subflow&quot;);&#xA;&#xA;this.add(fFigureSubflowLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSubflowLabelFigure() {&#xA;&#x9;&#x9;return fFigureSubflowLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <behaviour
          xsi:type="gmfgen:OpenDiagramBehaviour"/>
      <modelFacet>
        <metaClass
            href="flowchart.genmodel#//flowchart/Subflow"/>
        <containmentMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
        <childMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
      </modelFacet>
      <labels
          visualID="5001"
          editPartClassName="SubflowNameEditPart"
          itemSemanticEditPolicyClassName="SubflowNameItemSemanticEditPolicy">
        <diagramRunTimeClass
            href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureSubflowLabelFigure"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="flowchart.genmodel#//flowchart/Node/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2002"
        editPartClassName="ActionEditPart"
        itemSemanticEditPolicyClassName="ActionItemSemanticEditPolicy"
        canonicalEditPolicyClassName="ActionCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="ActionGraphicalNodeEditPolicy"
        createCommandClassName="ActionCreateCommand">
      <diagramRunTimeClass
          href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="ActionEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="ActionFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ActionFigure extends org.eclipse.epsilon.eugenia.examples.flowchart.diagram.figures.SquareFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureActionLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ActionFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureActionLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureActionLabelFigure.setText(&quot;Action&quot;);&#xA;&#xA;this.add(fFigureActionLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureActionLabelFigure() {&#xA;&#x9;&#x9;return fFigureActionLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <modelFacet>
        <metaClass
            href="flowchart.genmodel#//flowchart/Action"/>
        <containmentMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
        <childMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
      </modelFacet>
      <labels
          visualID="5002"
          editPartClassName="ActionNameEditPart"
          itemSemanticEditPolicyClassName="ActionNameItemSemanticEditPolicy">
        <diagramRunTimeClass
            href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureActionLabelFigure"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="flowchart.genmodel#//flowchart/Node/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2003"
        editPartClassName="DecisionEditPart"
        itemSemanticEditPolicyClassName="DecisionItemSemanticEditPolicy"
        canonicalEditPolicyClassName="DecisionCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="DecisionGraphicalNodeEditPolicy"
        createCommandClassName="DecisionCreateCommand">
      <diagramRunTimeClass
          href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="DecisionEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="DecisionFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class DecisionFigure extends org.eclipse.epsilon.eugenia.examples.flowchart.diagram.figures.DiamondFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureDecisionLabelFigure; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public DecisionFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureDecisionLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xA;fFigureDecisionLabelFigure.setText(&quot;Decision&quot;);&#xA;&#xA;this.add(fFigureDecisionLabelFigure);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureDecisionLabelFigure() {&#xA;&#x9;&#x9;return fFigureDecisionLabelFigure;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <modelFacet>
        <metaClass
            href="flowchart.genmodel#//flowchart/Decision"/>
        <containmentMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
        <childMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/nodes"/>
      </modelFacet>
      <labels
          visualID="5003"
          editPartClassName="DecisionNameEditPart"
          itemSemanticEditPolicyClassName="DecisionNameItemSemanticEditPolicy">
        <diagramRunTimeClass
            href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureDecisionLabelFigure"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="flowchart.genmodel#//flowchart/Node/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <links
        visualID="4001"
        editPartClassName="TransitionEditPart"
        itemSemanticEditPolicyClassName="TransitionItemSemanticEditPolicy"
        createCommandClassName="TransitionCreateCommand"
        reorientCommandClassName="TransitionReorientCommand">
      <diagramRunTimeClass
          href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="TransitionEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="TransitionFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class TransitionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public TransitionFigure() {&#xA;&#x9;&#x9;&#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;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass
            href="flowchart.genmodel#//flowchart/Transition"/>
        <containmentMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/transitions"/>
        <childMetaFeature
            href="flowchart.genmodel#//flowchart/Flowchart/transitions"/>
        <sourceMetaFeature
            href="flowchart.genmodel#//flowchart/Transition/source"/>
        <targetMetaFeature
            href="flowchart.genmodel#//flowchart/Transition/target"/>
      </modelFacet>
      <labels
          visualID="6001"
          editPartClassName="TransitionNameEditPart"
          itemSemanticEditPolicyClassName="TransitionNameItemSemanticEditPolicy">
        <diagramRunTimeClass
            href="platform:/plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="TransitionLabelFigure"
            classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class TransitionLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public TransitionLabelFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;this.setText(&quot;Transition&quot;);&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="40"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="flowchart.genmodel#//flowchart/Transition/name"/>
        </modelFacet>
      </labels>
    </links>
    <palette>
      <groups
          title="Objects"
          collapse="true">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Action"
            description="Create new Action"
            genNodes="//@diagram/@topLevelNodes.1"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Decision"
            description="Create new Decision"
            genNodes="//@diagram/@topLevelNodes.2"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Subflow"
            description="Create new Subflow"
            genNodes="//@diagram/@topLevelNodes.0"/>
      </groups>
      <groups
          title="Connections"
          collapse="true">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Transition"
            description="Create new Transition"
            genLinks="//@diagram/@links.0"/>
      </groups>
    </palette>
    <preferencePages
        xsi:type="gmfgen:GenStandardPreferencePage"
        iD="eugenia.test.flowchart.diagram.general"
        name="Flowchart Diagram">
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="eugenia.test.flowchart.diagram.appearance"
          name="Appearance"
          kind="Appearance"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="eugenia.test.flowchart.diagram.connections"
          name="Connections"
          kind="Connections"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="eugenia.test.flowchart.diagram.printing"
          name="Printing"
          kind="Printing"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="eugenia.test.flowchart.diagram.rulersAndGrid"
          name="Rulers And Grid"
          kind="RulersAndGrid"/>
    </preferencePages>
  </diagram>
  <plugin
      printingEnabled="true">
    <requiredPlugins>org.eclipse.gmf.tooling.runtime</requiredPlugins>
    <requiredPlugins>org.eclipse.draw2d</requiredPlugins>
    <requiredPlugins>org.eclipse.gmf.runtime.draw2d.ui</requiredPlugins>
  </plugin>
  <editor/>
  <navigator>
    <childReferences
        child="//@diagram"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.0"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.1"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.2"/>
    <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.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        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"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
  </navigator>
  <diagramUpdater/>
  <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="flowchart.genmodel#/"/>
  <labelParsers
      extensibleViaService="true">
    <implementations
        xsi:type="gmfgen:PredefinedParser"
        uses="//@diagram/@topLevelNodes.0/@labels.0/@modelFacet //@diagram/@topLevelNodes.1/@labels.0/@modelFacet //@diagram/@topLevelNodes.2/@labels.0/@modelFacet //@diagram/@links.0/@labels.0/@modelFacet"/>
  </labelParsers>
  <contextMenus
      context="//@diagram">
    <items
        xsi:type="gmfgen:LoadResourceAction"/>
  </contextMenus>
</gmfgen:GenEditorGenerator>
