<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ctx="http://www.eclipse.org/gmf/2008/Context"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
    xmlns:gmfgen="http://www.eclipse.org/gmf/2009/GenModel"
    xmlns:propsheet="http://www.eclipse.org/gmf/2008/GmfGraph/PropSheet"
    xmlns:wysiwyg="http://www.eclipse.org/gmf/2008/GmfGraph/wysiwyg"
    xsi:schemaLocation="http://www.eclipse.org/gmf/2008/Context ../../org.eclipse.gmf.formtk/model/context.ecore http://www.eclipse.org/gmf/2008/GmfGraph/PropSheet propsheet.ecore http://www.eclipse.org/gmf/2008/GmfGraph/wysiwyg wysiwyg.ecore">
  <gmfgen:GenEditorGenerator
      packageNamePrefix="org.eclipse.gmf.graphdef.editor"
      modelID="GMFGraph"
      dynamicTemplates="true"
      templateDirectory="/org.eclipse.gmf.graphdef.editor/templates/"
      copyrightText=" Copyright (c) 2006, 2009 Borland Software Corporation and others.&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA;     Borland Software Corporation - initial API and implementation">
    <diagram
        visualID="1000"
        editPartClassName="CanvasEditPart"
        itemSemanticEditPolicyClassName="CanvasItemSemanticEditPolicy"
        canonicalEditPolicyClassName="CanvasCanonicalEditPolicy"
        iconProviderPriority="Low"
        creationWizardCategoryID="org.eclipse.ui.Examples/org.eclipse.gmf.examples"
        validationProviderPriority="Low">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="CanvasEditHelper"/>
      <viewmap
          xsi:type="gmfgen:FigureViewmap"
          figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
      <containsShortcutsTo>gmfgen</containsShortcutsTo>
      <shortcutsProvidedFor>GMFGraph</shortcutsProvidedFor>
      <domainDiagramElement
          href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas"/>
      <childNodes
          visualID="3009"
          editPartClassName="FigureDescriptorEditPart"
          itemSemanticEditPolicyClassName="FigureDescriptorItemSemanticEditPolicy"
          notationViewFactoryClassName="FigureDescriptorViewFactory"
          canonicalEditPolicyClassName="FigureDescriptorCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.13"
          graphicalNodeEditPolicyClassName="FigureDescriptorGraphicalNodeEditPolicy"
          createCommandClassName="FigureDescriptorCreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="FigureDescriptorEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="FigureDescriptorFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class FigureDescriptorFigure extends org.eclipse.draw2d.RoundedRectangle {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureFigureDescriptorFigure_NameLabel; &#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureFigureDescriptorFigure_ChildContainer; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public FigureDescriptorFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)&#xD;&#xA;, getMapMode().DPtoLP(8)&#xD;&#xA;));&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureFigureDescriptorFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureFigureDescriptorFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureFigureDescriptorFigure_NameLabel, org.eclipse.draw2d.BorderLayout.TOP);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureFigureDescriptorFigure_ChildContainer = new org.eclipse.draw2d.RectangleFigure();&#xD;&#xA;fFigureFigureDescriptorFigure_ChildContainer.setFill(false);&#xD;&#xA;fFigureFigureDescriptorFigure_ChildContainer.setOutline(false);&#xD;&#xA;fFigureFigureDescriptorFigure_ChildContainer.setLineWidth(1);&#xD;&#xA;&#xD;&#xA;this.add(fFigureFigureDescriptorFigure_ChildContainer, org.eclipse.draw2d.BorderLayout.CENTER);&#xD;&#xA;fFigureFigureDescriptorFigure_ChildContainer.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureFigureDescriptorFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureFigureDescriptorFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureFigureDescriptorFigure_ChildContainer() {&#xD;&#xA;&#x9;&#x9;return fFigureFigureDescriptorFigure_ChildContainer;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/descriptors"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/descriptors"/>
        </modelFacet>
        <labels
            visualID="5008"
            editPartClassName="FigureDescriptorNameEditPart"
            itemSemanticEditPolicyClassName="FigureDescriptorNameItemSemanticEditPolicy"
            notationViewFactoryClassName="FigureDescriptorNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureFigureDescriptorFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </childNodes>
      <childNodes
          visualID="3010"
          editPartClassName="RectangleEditPart"
          itemSemanticEditPolicyClassName="RectangleItemSemanticEditPolicy"
          notationViewFactoryClassName="RectangleViewFactory"
          canonicalEditPolicyClassName="RectangleCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="RectangleGraphicalNodeEditPolicy"
          createCommandClassName="RectangleCreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="RectangleEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RectangleFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Rectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3011"
          editPartClassName="Rectangle2EditPart"
          itemSemanticEditPolicyClassName="Rectangle2ItemSemanticEditPolicy"
          notationViewFactoryClassName="Rectangle2ViewFactory"
          canonicalEditPolicyClassName="Rectangle2CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="Rectangle2GraphicalNodeEditPolicy"
          createCommandClassName="Rectangle2CreateCommand"
          containers="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.1/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RectangleFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Rectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3012"
          editPartClassName="EllipseEditPart"
          itemSemanticEditPolicyClassName="EllipseItemSemanticEditPolicy"
          notationViewFactoryClassName="EllipseViewFactory"
          canonicalEditPolicyClassName="EllipseCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="EllipseGraphicalNodeEditPolicy"
          createCommandClassName="EllipseCreateCommand"
          containers="/0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="EllipseEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="EllipseFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class EllipseFigure extends org.eclipse.draw2d.Ellipse {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public EllipseFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Ellipse"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3013"
          editPartClassName="RoundedRectangleEditPart"
          itemSemanticEditPolicyClassName="RoundedRectangleItemSemanticEditPolicy"
          notationViewFactoryClassName="RoundedRectangleViewFactory"
          canonicalEditPolicyClassName="RoundedRectangleCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="RoundedRectangleGraphicalNodeEditPolicy"
          createCommandClassName="RoundedRectangleCreateCommand"
          containers="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="RoundedRectangleEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RoundedRectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RoundedRectangleFigure extends org.eclipse.draw2d.RoundedRectangle {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RoundedRectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)&#xD;&#xA;, getMapMode().DPtoLP(8)&#xD;&#xA;));&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RoundedRectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3014"
          editPartClassName="PolylineEditPart"
          itemSemanticEditPolicyClassName="PolylineItemSemanticEditPolicy"
          notationViewFactoryClassName="PolylineViewFactory"
          canonicalEditPolicyClassName="PolylineCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="PolylineGraphicalNodeEditPolicy"
          createCommandClassName="PolylineCreateCommand"
          containers="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="PolylineEditHelper"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polyline">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet
            modelElementSelector="/0/@expressionProviders/@providers.0/@expressions.1">
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <modelElementInitializer
              xsi:type="gmfgen:GenFeatureSeqInitializer">
            <initializers
                xsi:type="gmfgen:GenReferenceNewElementSpec">
              <feature
                  href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline/template"/>
              <newElementInitializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.2">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/x"/>
                </initializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.3">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/y"/>
                </initializers>
              </newElementInitializers>
              <newElementInitializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.4">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/x"/>
                </initializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.5">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/y"/>
                </initializers>
              </newElementInitializers>
            </initializers>
          </modelElementInitializer>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3022"
          editPartClassName="PointEditPart"
          itemSemanticEditPolicyClassName="PointItemSemanticEditPolicy"
          notationViewFactoryClassName="PointViewFactory"
          canonicalEditPolicyClassName="PointCanonicalEditPolicy"
          graphicalNodeEditPolicyClassName="PointGraphicalNodeEditPolicy"
          createCommandClassName="PointCreateCommand"
          containers="/0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.18">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="PointEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="PolylinePointFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class PolylinePointFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public PolylinePointFigure() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;this.setFill(false);&#xD;&#xA;this.setOutline(false);&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;org.eclipse.draw2d.Polygon polyline0 = new org.eclipse.draw2d.Polygon();&#xD;&#xA;polyline0.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;));&#xD;&#xA;polyline0.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(6)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;));&#xD;&#xA;polyline0.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(3)&#xD;&#xA;, getMapMode().DPtoLP(6)&#xD;&#xA;));&#xD;&#xA;polyline0.setFill(true);&#xD;&#xA;polyline0.setLineWidth(1);&#xD;&#xA;&#x9;polyline0.setForegroundColor(org.eclipse.draw2d.ColorConstants.blue);&#xD;&#xA;&#x9;polyline0.setBackgroundColor(org.eclipse.draw2d.ColorConstants.blue);&#xD;&#xA;&#xD;&#xA;this.add(polyline0);&#xD;&#xA;&#xD;&#xA;&#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 = true;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:ResizeConstraints"/>
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="7"
              height="7"/>
        </viewmap>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline/template"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline/template"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3023"
          editPartClassName="PolygonEditPart"
          itemSemanticEditPolicyClassName="PolygonItemSemanticEditPolicy"
          notationViewFactoryClassName="PolygonViewFactory"
          canonicalEditPolicyClassName="PolygonCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="PolygonGraphicalNodeEditPolicy"
          createCommandClassName="PolygonCreateCommand"
          containers="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="PolygonEditHelper"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polygon">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polygon"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <modelElementInitializer
              xsi:type="gmfgen:GenFeatureSeqInitializer">
            <initializers
                xsi:type="gmfgen:GenReferenceNewElementSpec">
              <feature
                  href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline/template"/>
              <newElementInitializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.6">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/x"/>
                </initializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.7">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/y"/>
                </initializers>
              </newElementInitializers>
              <newElementInitializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.8">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/x"/>
                </initializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.9">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/y"/>
                </initializers>
              </newElementInitializers>
              <newElementInitializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.10">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/x"/>
                </initializers>
                <initializers
                    xsi:type="gmfgen:GenFeatureValueSpec"
                    value="/0/@expressionProviders/@providers.0/@expressions.11">
                  <feature
                      href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Point/y"/>
                </initializers>
              </newElementInitializers>
            </initializers>
          </modelElementInitializer>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3026"
          editPartClassName="LabelEditPart"
          itemSemanticEditPolicyClassName="LabelItemSemanticEditPolicy"
          notationViewFactoryClassName="LabelViewFactory"
          canonicalEditPolicyClassName="LabelCanonicalEditPolicy"
          graphicalNodeEditPolicyClassName="LabelGraphicalNodeEditPolicy"
          createCommandClassName="LabelCreateCommand"
          containers="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.1 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="LabelEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="LabelFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class LabelFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureLabelFigure_TextLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public LabelFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xD;&#xA;&#x9;&#x9;this.setFill(false);&#xD;&#xA;this.setOutline(false);&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureLabelFigure_TextLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureLabelFigure_TextLabel.setText(&quot;&lt;&lt;Label>>&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureLabelFigure_TextLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureLabelFigure_TextLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureLabelFigure_TextLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:ResizeConstraints"/>
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RealFigure/children"/>
        </modelFacet>
        <labels
            visualID="5010"
            editPartClassName="LabelTextEditPart"
            itemSemanticEditPolicyClassName="LabelTextItemSemanticEditPolicy"
            notationViewFactoryClassName="LabelTextViewFactory">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureLabelFigure_TextLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0"
              viewPattern=""
              editorPattern=""
              editPattern="">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label/text"/>
          </modelFacet>
        </labels>
      </childNodes>
      <childNodes
          visualID="3015"
          editPartClassName="Ellipse2EditPart"
          itemSemanticEditPolicyClassName="Ellipse2ItemSemanticEditPolicy"
          notationViewFactoryClassName="Ellipse2ViewFactory"
          canonicalEditPolicyClassName="Ellipse2CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="Ellipse2GraphicalNodeEditPolicy"
          createCommandClassName="Ellipse2CreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.3/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="EllipseFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class EllipseFigure extends org.eclipse.draw2d.Ellipse {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public EllipseFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Ellipse"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3016"
          editPartClassName="RoundedRectangle2EditPart"
          itemSemanticEditPolicyClassName="RoundedRectangle2ItemSemanticEditPolicy"
          notationViewFactoryClassName="RoundedRectangle2ViewFactory"
          canonicalEditPolicyClassName="RoundedRectangle2CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="RoundedRectangle2GraphicalNodeEditPolicy"
          createCommandClassName="RoundedRectangle2CreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.4/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RoundedRectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RoundedRectangleFigure extends org.eclipse.draw2d.RoundedRectangle {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RoundedRectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)&#xD;&#xA;, getMapMode().DPtoLP(8)&#xD;&#xA;));&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RoundedRectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3017"
          editPartClassName="Polyline2EditPart"
          itemSemanticEditPolicyClassName="Polyline2ItemSemanticEditPolicy"
          notationViewFactoryClassName="Polyline2ViewFactory"
          canonicalEditPolicyClassName="Polyline2CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="Polyline2GraphicalNodeEditPolicy"
          createCommandClassName="Polyline2CreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.5/@elementType"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polyline">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet
            modelElementSelector="/0/@expressionProviders/@providers.0/@expressions.12">
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3024"
          editPartClassName="Polygon2EditPart"
          itemSemanticEditPolicyClassName="Polygon2ItemSemanticEditPolicy"
          notationViewFactoryClassName="Polygon2ViewFactory"
          canonicalEditPolicyClassName="Polygon2CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="Polygon2GraphicalNodeEditPolicy"
          createCommandClassName="Polygon2CreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.7/@elementType"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polygon">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polygon"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3027"
          editPartClassName="Label2EditPart"
          itemSemanticEditPolicyClassName="Label2ItemSemanticEditPolicy"
          notationViewFactoryClassName="Label2ViewFactory"
          canonicalEditPolicyClassName="Label2CanonicalEditPolicy"
          graphicalNodeEditPolicyClassName="Label2GraphicalNodeEditPolicy"
          createCommandClassName="Label2CreateCommand"
          containers="/0/@diagram/@childNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.8/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="BorderedLabelFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class BorderedLabelFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureBorderedLabelFigure_TextLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public BorderedLabelFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xD;&#xA;&#x9;&#x9;this.setFill(false);&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureBorderedLabelFigure_TextLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureBorderedLabelFigure_TextLabel.setText(&quot;&lt;&lt;Label>>&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureBorderedLabelFigure_TextLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureBorderedLabelFigure_TextLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureBorderedLabelFigure_TextLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:ResizeConstraints"/>
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/actualFigure"/>
        </modelFacet>
        <labels
            visualID="5011"
            editPartClassName="LabelText2EditPart"
            itemSemanticEditPolicyClassName="LabelText2ItemSemanticEditPolicy"
            notationViewFactoryClassName="LabelText2ViewFactory">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureBorderedLabelFigure_TextLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0"
              viewPattern=""
              editorPattern=""
              editPattern="">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label/text"/>
          </modelFacet>
        </labels>
      </childNodes>
      <childNodes
          visualID="3018"
          editPartClassName="Rectangle3EditPart"
          itemSemanticEditPolicyClassName="Rectangle3ItemSemanticEditPolicy"
          notationViewFactoryClassName="Rectangle3ViewFactory"
          canonicalEditPolicyClassName="Rectangle3CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="Rectangle3GraphicalNodeEditPolicy"
          createCommandClassName="Rectangle3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.1/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RectangleFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Rectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3019"
          editPartClassName="Ellipse3EditPart"
          itemSemanticEditPolicyClassName="Ellipse3ItemSemanticEditPolicy"
          notationViewFactoryClassName="Ellipse3ViewFactory"
          canonicalEditPolicyClassName="Ellipse3CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="Ellipse3GraphicalNodeEditPolicy"
          createCommandClassName="Ellipse3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.3/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="EllipseFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class EllipseFigure extends org.eclipse.draw2d.Ellipse {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public EllipseFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Ellipse"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3020"
          editPartClassName="RoundedRectangle3EditPart"
          itemSemanticEditPolicyClassName="RoundedRectangle3ItemSemanticEditPolicy"
          notationViewFactoryClassName="RoundedRectangle3ViewFactory"
          canonicalEditPolicyClassName="RoundedRectangle3CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8"
          graphicalNodeEditPolicyClassName="RoundedRectangle3GraphicalNodeEditPolicy"
          createCommandClassName="RoundedRectangle3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.4/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="XY_LAYOUT"
            className="RoundedRectangleFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class RoundedRectangleFigure extends org.eclipse.draw2d.RoundedRectangle {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public RoundedRectangleFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.XYLayout());&#xD;&#xA;&#x9;&#x9;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)&#xD;&#xA;, getMapMode().DPtoLP(8)&#xD;&#xA;));&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;}&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/RoundedRectangle"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3021"
          editPartClassName="Polyline3EditPart"
          itemSemanticEditPolicyClassName="Polyline3ItemSemanticEditPolicy"
          notationViewFactoryClassName="Polyline3ViewFactory"
          canonicalEditPolicyClassName="Polyline3CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="Polyline3GraphicalNodeEditPolicy"
          createCommandClassName="Polyline3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.5/@elementType"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polyline">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet
            modelElementSelector="/0/@expressionProviders/@providers.0/@expressions.12">
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polyline"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3025"
          editPartClassName="Polygon3EditPart"
          itemSemanticEditPolicyClassName="Polygon3ItemSemanticEditPolicy"
          notationViewFactoryClassName="Polygon3ViewFactory"
          canonicalEditPolicyClassName="Polygon3CanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.6"
          graphicalNodeEditPolicyClassName="Polygon3GraphicalNodeEditPolicy"
          createCommandClassName="Polygon3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.7/@elementType"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Polygon">
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gmf.graphdef.editor.edit.policies.KeyHandlerEditPolicy.KEY_HANDLER_ROLE"
            editPolicyQualifiedClassName="org.eclipse.gmf.graphdef.editor.edit.policies.ChildFigureSelectionEditPolicy"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Polygon"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
      </childNodes>
      <childNodes
          visualID="3028"
          editPartClassName="Label3EditPart"
          itemSemanticEditPolicyClassName="Label3ItemSemanticEditPolicy"
          notationViewFactoryClassName="Label3ViewFactory"
          canonicalEditPolicyClassName="Label3CanonicalEditPolicy"
          graphicalNodeEditPolicyClassName="Label3GraphicalNodeEditPolicy"
          createCommandClassName="Label3CreateCommand"
          containers="/0/@diagram/@compartments.3">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"
            metamodelType="/0/@diagram/@childNodes.8/@elementType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="BorderedLabelFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class BorderedLabelFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureBorderedLabelFigure_TextLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public BorderedLabelFigure() {&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xD;&#xA;&#x9;&#x9;this.setFill(false);&#xD;&#xA;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureBorderedLabelFigure_TextLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureBorderedLabelFigure_TextLabel.setText(&quot;&lt;&lt;Label>>&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureBorderedLabelFigure_TextLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureBorderedLabelFigure_TextLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureBorderedLabelFigure_TextLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;">
          <attributes
              xsi:type="gmfgen:ResizeConstraints"/>
          <attributes
              xsi:type="gmfgen:DefaultSizeAttributes"
              width="0"
              height="0"/>
        </viewmap>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery/figures"/>
        </modelFacet>
        <labels
            visualID="5012"
            editPartClassName="LabelText3EditPart"
            itemSemanticEditPolicyClassName="LabelText3ItemSemanticEditPolicy"
            notationViewFactoryClassName="LabelText3ViewFactory">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureBorderedLabelFigure_TextLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0"
              viewPattern=""
              editorPattern=""
              editPattern="">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Label/text"/>
          </modelFacet>
        </labels>
      </childNodes>
      <topLevelNodes
          visualID="2005"
          editPartClassName="CompartmentEditPart"
          itemSemanticEditPolicyClassName="CompartmentItemSemanticEditPolicy"
          notationViewFactoryClassName="CompartmentViewFactory"
          canonicalEditPolicyClassName="CompartmentCanonicalEditPolicy"
          compartments="/0/@diagram/@compartments.0"
          graphicalNodeEditPolicyClassName="CompartmentGraphicalNodeEditPolicy"
          createCommandClassName="CompartmentCreateCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="CompartmentEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="TOOLBAR_LAYOUT"
            className="DiagramElementFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureDiagramElementFigure_NameLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DiagramElementFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xD;&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xD;&#xA;);&#xD;&#xA;&#xD;&#xA;&#x9;layoutThis.setSpacing(0);&#xD;&#xA;&#x9;layoutThis.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureDiagramElementFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureDiagramElementFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureDiagramElementFigure_NameLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureDiagramElementFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureDiagramElementFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Compartment"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/compartments"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/compartments"/>
        </modelFacet>
        <labels
            visualID="5005"
            editPartClassName="CompartmentNameEditPart"
            itemSemanticEditPolicyClassName="CompartmentNameItemSemanticEditPolicy"
            notationViewFactoryClassName="CompartmentNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureDiagramElementFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </topLevelNodes>
      <topLevelNodes
          visualID="2006"
          editPartClassName="NodeEditPart"
          itemSemanticEditPolicyClassName="NodeItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeViewFactory"
          canonicalEditPolicyClassName="NodeCanonicalEditPolicy"
          compartments="/0/@diagram/@compartments.1"
          graphicalNodeEditPolicyClassName="NodeGraphicalNodeEditPolicy"
          createCommandClassName="NodeCreateCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="NodeEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="TOOLBAR_LAYOUT"
            className="DiagramElementFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureDiagramElementFigure_NameLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DiagramElementFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xD;&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xD;&#xA;);&#xD;&#xA;&#xD;&#xA;&#x9;layoutThis.setSpacing(0);&#xD;&#xA;&#x9;layoutThis.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureDiagramElementFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureDiagramElementFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureDiagramElementFigure_NameLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureDiagramElementFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureDiagramElementFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            modelElementSelector="/0/@expressionProviders/@providers.0/@expressions.0">
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Node"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/nodes"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/nodes"/>
        </modelFacet>
        <labels
            visualID="5006"
            editPartClassName="NodeNameEditPart"
            itemSemanticEditPolicyClassName="NodeNameItemSemanticEditPolicy"
            notationViewFactoryClassName="NodeNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureDiagramElementFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </topLevelNodes>
      <topLevelNodes
          visualID="2007"
          editPartClassName="ConnectionEditPart"
          itemSemanticEditPolicyClassName="ConnectionItemSemanticEditPolicy"
          notationViewFactoryClassName="ConnectionViewFactory"
          canonicalEditPolicyClassName="ConnectionCanonicalEditPolicy"
          compartments="/0/@diagram/@compartments.2"
          graphicalNodeEditPolicyClassName="ConnectionGraphicalNodeEditPolicy"
          createCommandClassName="ConnectionCreateCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="ConnectionEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="TOOLBAR_LAYOUT"
            className="DiagramElementFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureDiagramElementFigure_NameLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DiagramElementFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xD;&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xD;&#xA;);&#xD;&#xA;&#xD;&#xA;&#x9;layoutThis.setSpacing(0);&#xD;&#xA;&#x9;layoutThis.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureDiagramElementFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureDiagramElementFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureDiagramElementFigure_NameLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureDiagramElementFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureDiagramElementFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Connection"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/connections"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/connections"/>
        </modelFacet>
        <labels
            visualID="5007"
            editPartClassName="ConnectionNameEditPart"
            itemSemanticEditPolicyClassName="ConnectionNameItemSemanticEditPolicy"
            notationViewFactoryClassName="ConnectionNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureDiagramElementFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </topLevelNodes>
      <topLevelNodes
          visualID="2008"
          editPartClassName="FigureGalleryEditPart"
          itemSemanticEditPolicyClassName="FigureGalleryItemSemanticEditPolicy"
          notationViewFactoryClassName="FigureGalleryViewFactory"
          canonicalEditPolicyClassName="FigureGalleryCanonicalEditPolicy"
          compartments="/0/@diagram/@compartments.3"
          graphicalNodeEditPolicyClassName="FigureGalleryGraphicalNodeEditPolicy"
          createCommandClassName="FigureGalleryCreateCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="FigureGalleryEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="FigureGalleryFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class FigureGalleryFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureFigureGalleryFigure_NameLabel; &#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureFigureGalleryFigure_ChildContainer; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public FigureGalleryFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureFigureGalleryFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureFigureGalleryFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureFigureGalleryFigure_NameLabel, org.eclipse.draw2d.BorderLayout.TOP);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureFigureGalleryFigure_ChildContainer = new org.eclipse.draw2d.RectangleFigure();&#xD;&#xA;fFigureFigureGalleryFigure_ChildContainer.setFill(false);&#xD;&#xA;fFigureFigureGalleryFigure_ChildContainer.setOutline(false);&#xD;&#xA;fFigureFigureGalleryFigure_ChildContainer.setLineWidth(1);&#xD;&#xA;&#xD;&#xA;this.add(fFigureFigureGalleryFigure_ChildContainer, org.eclipse.draw2d.BorderLayout.CENTER);&#xD;&#xA;fFigureFigureGalleryFigure_ChildContainer.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureFigureGalleryFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureFigureGalleryFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureFigureGalleryFigure_ChildContainer() {&#xD;&#xA;&#x9;&#x9;return fFigureFigureGalleryFigure_ChildContainer;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureGallery"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/figures"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/figures"/>
        </modelFacet>
        <labels
            visualID="5009"
            editPartClassName="FigureGalleryNameEditPart"
            itemSemanticEditPolicyClassName="FigureGalleryNameItemSemanticEditPolicy"
            notationViewFactoryClassName="FigureGalleryNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureFigureGalleryFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </topLevelNodes>
      <topLevelNodes
          visualID="2009"
          editPartClassName="DiagramLabelEditPart"
          itemSemanticEditPolicyClassName="DiagramLabelItemSemanticEditPolicy"
          notationViewFactoryClassName="DiagramLabelViewFactory"
          canonicalEditPolicyClassName="DiagramLabelCanonicalEditPolicy"
          compartments="/0/@diagram/@compartments.4"
          graphicalNodeEditPolicyClassName="DiagramLabelGraphicalNodeEditPolicy"
          createCommandClassName="DiagramLabelCreateCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="DiagramLabelEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            layoutType="TOOLBAR_LAYOUT"
            className="DiagramElementFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DiagramElementFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureDiagramElementFigure_NameLabel; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DiagramElementFigure() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xD;&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xD;&#xA;);&#xD;&#xA;&#xD;&#xA;&#x9;layoutThis.setSpacing(0);&#xD;&#xA;&#x9;layoutThis.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;&#x9;&#x9;createContents();&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private void createContents(){&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;fFigureDiagramElementFigure_NameLabel = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();&#xD;&#xA;fFigureDiagramElementFigure_NameLabel.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;this.add(fFigureDiagramElementFigure_NameLabel);&#xD;&#xA;&#xD;&#xA;&#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;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureDiagramElementFigure_NameLabel() {&#xD;&#xA;&#x9;&#x9;return fFigureDiagramElementFigure_NameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet>
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/DiagramLabel"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/labels"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Canvas/labels"/>
        </modelFacet>
        <labels
            visualID="5013"
            editPartClassName="DiagramLabelNameEditPart"
            itemSemanticEditPolicyClassName="DiagramLabelNameItemSemanticEditPolicy"
            notationViewFactoryClassName="DiagramLabelNameViewFactory"
            elementIcon="true">
          <diagramRunTimeClass
              href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
          <viewmap
              xsi:type="gmfgen:ParentAssignedViewmap"
              getterName="getFigureDiagramElementFigure_NameLabel"
              figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
          <modelFacet
              xsi:type="gmfgen:FeatureLabelModelFacet"
              parser="/0/@labelParsers/@implementations.0">
            <metaFeatures
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/>
          </modelFacet>
        </labels>
      </topLevelNodes>
      <links
          visualID="4002"
          editPartClassName="ChildAccessEditPart"
          itemSemanticEditPolicyClassName="ChildAccessItemSemanticEditPolicy"
          notationViewFactoryClassName="ChildAccessViewFactory"
          createCommandClassName="ChildAccessCreateCommand"
          reorientCommandClassName="ChildAccessReorientCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
        <elementType
            xsi:type="gmfgen:MetamodelType"
            editHelperClassName="ChildAccessEditHelper"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="NestedFigureAccessorConnectionFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class NestedFigureAccessorConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public NestedFigureAccessorConnectionFigure() {&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;df.setLineWidth(1);&#xD;&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(1)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(-1)&#xD;&#xA;);&#xD;&#xA;df.setTemplate(pl);&#xD;&#xA;df.setScale(getMapMode().DPtoLP(7)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;);&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            xsi:type="gmfgen:TypeLinkModelFacet">
          <metaClass
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/ChildAccess"/>
          <containmentMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/accessors"/>
          <childMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/FigureDescriptor/accessors"/>
          <targetMetaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/ChildAccess/figure"/>
        </modelFacet>
      </links>
      <links
          visualID="4003"
          editPartClassName="CompartmentAccessorEditPart"
          itemSemanticEditPolicyClassName="CompartmentAccessorItemSemanticEditPolicy"
          notationViewFactoryClassName="CompartmentAccessorViewFactory"
          createCommandClassName="CompartmentAccessorCreateCommand"
          reorientCommandClassName="CompartmentAccessorReorientCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="ChildAccessConnectionFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ChildAccessConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ChildAccessConnectionFigure() {&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;df.setLineWidth(1);&#xD;&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(1)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(-1)&#xD;&#xA;);&#xD;&#xA;df.setTemplate(pl);&#xD;&#xA;df.setScale(getMapMode().DPtoLP(7)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;);&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLinkModelFacet">
          <metaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Compartment/accessor"/>
        </modelFacet>
      </links>
      <links
          visualID="4004"
          editPartClassName="DiagramLabelAccessorEditPart"
          itemSemanticEditPolicyClassName="DiagramLabelAccessorItemSemanticEditPolicy"
          notationViewFactoryClassName="DiagramLabelAccessorViewFactory"
          createCommandClassName="DiagramLabelAccessorCreateCommand"
          reorientCommandClassName="DiagramLabelAccessorReorientCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="ChildAccessConnectionFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ChildAccessConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ChildAccessConnectionFigure() {&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;df.setLineWidth(1);&#xD;&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(1)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(-1)&#xD;&#xA;);&#xD;&#xA;df.setTemplate(pl);&#xD;&#xA;df.setScale(getMapMode().DPtoLP(7)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;);&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLinkModelFacet">
          <metaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/DiagramLabel/accessor"/>
        </modelFacet>
      </links>
      <links
          visualID="4006"
          editPartClassName="NodeContentPaneEditPart"
          itemSemanticEditPolicyClassName="NodeContentPaneItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeContentPaneViewFactory"
          createCommandClassName="NodeContentPaneCreateCommand"
          reorientCommandClassName="NodeContentPaneReorientCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="ChildAccessConnectionFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ChildAccessConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ChildAccessConnectionFigure() {&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;df.setLineWidth(1);&#xD;&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(1)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(-1)&#xD;&#xA;);&#xD;&#xA;df.setTemplate(pl);&#xD;&#xA;df.setScale(getMapMode().DPtoLP(7)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;);&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLinkModelFacet">
          <metaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Node/contentPane"/>
        </modelFacet>
        <creationConstraints
            sourceEnd="/0/@expressionProviders/@providers.0/@expressions.13"/>
      </links>
      <links
          visualID="4005"
          editPartClassName="DiagramElementFigureEditPart"
          itemSemanticEditPolicyClassName="DiagramElementFigureItemSemanticEditPolicy"
          notationViewFactoryClassName="DiagramElementFigureViewFactory"
          createCommandClassName="DiagramElementFigureCreateCommand"
          reorientCommandClassName="DiagramElementFigureReorientCommand">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
        <elementType
            xsi:type="gmfgen:SpecializationType"/>
        <viewmap
            xsi:type="gmfgen:InnerClassViewmap"
            className="FigureConnectionFigure"
            classBody="&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class FigureConnectionFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public FigureConnectionFigure() {&#xD;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xD;&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASHDOT);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xD;&#xA;df.setLineWidth(1);&#xD;&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(1)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xD;&#xA;, getMapMode().DPtoLP(0)&#xD;&#xA;);&#xD;&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xD;&#xA;, getMapMode().DPtoLP(-1)&#xD;&#xA;);&#xD;&#xA;df.setTemplate(pl);&#xD;&#xA;df.setScale(getMapMode().DPtoLP(7)&#xD;&#xA;, getMapMode().DPtoLP(3)&#xD;&#xA;);&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLinkModelFacet">
          <metaFeature
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/DiagramElement/figure"/>
        </modelFacet>
      </links>
      <compartments
          visualID="7005"
          editPartClassName="CompartmentVisualFacetsEditPart"
          itemSemanticEditPolicyClassName="CompartmentVisualFacetsItemSemanticEditPolicy"
          notationViewFactoryClassName="CompartmentVisualFacetsViewFactory"
          canonicalEditPolicyClassName="CompartmentVisualFacetsCanonicalEditPolicy"
          title="VisualFacets"
          node="/0/@diagram/@topLevelNodes.0">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
      </compartments>
      <compartments
          visualID="7006"
          editPartClassName="NodeVisualFacetsEditPart"
          itemSemanticEditPolicyClassName="NodeVisualFacetsItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeVisualFacetsViewFactory"
          canonicalEditPolicyClassName="NodeVisualFacetsCanonicalEditPolicy"
          title="VisualFacets"
          node="/0/@diagram/@topLevelNodes.1">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
      </compartments>
      <compartments
          visualID="7007"
          editPartClassName="ConnectionVisualFacetsEditPart"
          itemSemanticEditPolicyClassName="ConnectionVisualFacetsItemSemanticEditPolicy"
          notationViewFactoryClassName="ConnectionVisualFacetsViewFactory"
          canonicalEditPolicyClassName="ConnectionVisualFacetsCanonicalEditPolicy"
          title="VisualFacets"
          node="/0/@diagram/@topLevelNodes.2">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
      </compartments>
      <compartments
          visualID="7008"
          editPartClassName="FigureGalleryFiguresEditPart"
          itemSemanticEditPolicyClassName="FigureGalleryFiguresItemSemanticEditPolicy"
          notationViewFactoryClassName="FigureGalleryFiguresViewFactory"
          canonicalEditPolicyClassName="FigureGalleryFiguresCanonicalEditPolicy"
          childNodes="/0/@diagram/@childNodes.0 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.19"
          title="Figures"
          node="/0/@diagram/@topLevelNodes.3"
          listLayout="false">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
      </compartments>
      <compartments
          visualID="7009"
          editPartClassName="DiagramLabelVisualFacetsEditPart"
          itemSemanticEditPolicyClassName="DiagramLabelVisualFacetsItemSemanticEditPolicy"
          notationViewFactoryClassName="DiagramLabelVisualFacetsViewFactory"
          canonicalEditPolicyClassName="DiagramLabelVisualFacetsCanonicalEditPolicy"
          title="VisualFacets"
          node="/0/@diagram/@topLevelNodes.4">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
      </compartments>
      <palette>
        <groups
            title="Diagram Elements"
            description="Can visualize domain model elements"
            collapse="true">
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Node"
              description="Create Diagram Element representing Top-level diagram Node"
              genNodes="/0/@diagram/@topLevelNodes.1"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Compartment"
              description="Create Diagram Element representing Children Compartment"
              genNodes="/0/@diagram/@topLevelNodes.0"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Connection"
              description="Create Diagram Element representing Connection"
              genNodes="/0/@diagram/@topLevelNodes.2"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Figure Link"
              description="Link from the Diagram Element to the figure's descriptor"
              genLinks="/0/@diagram/@links.4"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Nested Figure Link"
              description="Link from the Figure Descriptor to specify precisely nested Figure structure subpart (in the scope of its FigureDescriptor)"
              genLinks="/0/@diagram/@links.0"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Child Access Link"
              description="Link from the Diagram Element to the structure subelement of its descriptor"
              genLinks="/0/@diagram/@links.1 /0/@diagram/@links.2 /0/@diagram/@links.3"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Label"
              description="Create Diagram Element representing Label"
              genNodes="/0/@diagram/@topLevelNodes.4"/>
        </groups>
        <groups
            title="Figures"
            description="Can be references by Diagram Elements"
            collapse="true">
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="FigureGallery"
              description="Create FigureGallery - physical container for figures and descriptors"
              genNodes="/0/@diagram/@topLevelNodes.3"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Figure Descriptor"
              description="Create FigureDescriptor - figure structure to be referenced outside"
              genNodes="/0/@diagram/@childNodes.0"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Rectangle"
              description="Create Rectangle"
              genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.14"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Ellipse"
              description="Create Ellipse"
              genNodes="/0/@diagram/@childNodes.3 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.15"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Rounded Rectangle"
              description="Create Rounded Rectangle"
              genNodes="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.16"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Polyline"
              description="Create new Polyline"
              genNodes="/0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="PolylinePoint"
              description="Create new PolylinePoint"
              genNodes="/0/@diagram/@childNodes.6"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Polygon"
              description="Create new Polygon"
              genNodes="/0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Label Figure"
              description="Create new Label"
              genNodes="/0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19"/>
        </groups>
      </palette>
      <preferencePages
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.gmf.graphdef.diagram.general"
          name="GMFGraph Diagram">
        <children
            xsi:type="gmfgen:GenStandardPreferencePage"
            iD="org.eclipse.gmf.graphdef.diagram.appearance"
            name="Appearance"
            kind="Appearance"/>
        <children
            xsi:type="gmfgen:GenStandardPreferencePage"
            iD="org.eclipse.gmf.graphdef.diagram.connections"
            name="Connections"
            kind="Connections"/>
        <children
            xsi:type="gmfgen:GenStandardPreferencePage"
            iD="org.eclipse.gmf.graphdef.diagram.printing"
            name="Printing"
            kind="Printing"/>
        <children
            xsi:type="gmfgen:GenStandardPreferencePage"
            iD="org.eclipse.gmf.graphdef.diagram.rulersAndGrid"
            name="Rulers And Grid"
            kind="RulersAndGrid"/>
      </preferencePages>
    </diagram>
    <plugin
        iD="org.eclipse.gmf.graphdef.editor"
        name="GMFGraph Editor Plugin"
        provider="Eclipse Modeling Project"
        version="1.1.0.qualifier">
      <requiredPlugins>org.eclipse.draw2d</requiredPlugins>
      <requiredPlugins>org.eclipse.gmf.runtime.draw2d.ui</requiredPlugins>
    </plugin>
    <editor/>
    <navigator>
      <childReferences
          child="/0/@diagram"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@topLevelNodes.0"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@topLevelNodes.1"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@topLevelNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.5"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.7"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.1"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.9"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.10"/>
      <childReferences
          parent="/0/@diagram/@childNodes.11"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.11"/>
      <childReferences
          parent="/0/@diagram/@childNodes.12"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.12"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@childNodes.13"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.0"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.14"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.15"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.2"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.3"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.4"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.5"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.7"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@childNodes.8"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.16"/>
      <childReferences
          parent="/0/@diagram/@childNodes.17"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.17"/>
      <childReferences
          parent="/0/@diagram/@childNodes.18"
          child="/0/@diagram/@childNodes.6"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.18"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.3"
          child="/0/@diagram/@childNodes.19"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@topLevelNodes.3"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@topLevelNodes.4"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@links.0"
          groupName="links"
          groupIcon="icons/linksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.1"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.1"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.2"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.2"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.3"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.3"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.4"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.4"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.5"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.5"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.7"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.7"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.8"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.8"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.9"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.9"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.10"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.10"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.11"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.11"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.12"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.12"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.13"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.13"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.14"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.14"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.15"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.15"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.16"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.16"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.17"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.17"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.18"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.18"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.19"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.19"
          child="/0/@diagram/@links.0"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.0"
          child="/0/@diagram/@childNodes.0"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@links.0"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@links.1"
          groupName="links"
          groupIcon="icons/linksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.1"
          child="/0/@diagram/@topLevelNodes.0"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.0"
          child="/0/@diagram/@links.1"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@links.2"
          groupName="links"
          groupIcon="icons/linksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.2"
          child="/0/@diagram/@topLevelNodes.4"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.4"
          child="/0/@diagram/@links.2"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@links.3"
          groupName="links"
          groupIcon="icons/linksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.3"
          child="/0/@diagram/@topLevelNodes.1"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.1"
          child="/0/@diagram/@links.3"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.3"
          child="/0/@diagram/@topLevelNodes.4"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.4"
          child="/0/@diagram/@links.3"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram"
          child="/0/@diagram/@links.4"
          groupName="links"
          groupIcon="icons/linksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.4"
          child="/0/@diagram/@childNodes.0"
          referenceType="out_target"
          groupName="target"
          groupIcon="icons/linkTargetNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@childNodes.0"
          child="/0/@diagram/@links.4"
          referenceType="in_source"
          groupName="incoming links"
          groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.4"
          child="/0/@diagram/@topLevelNodes.0"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.0"
          child="/0/@diagram/@links.4"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.4"
          child="/0/@diagram/@topLevelNodes.1"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.1"
          child="/0/@diagram/@links.4"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.4"
          child="/0/@diagram/@topLevelNodes.2"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.2"
          child="/0/@diagram/@links.4"
          referenceType="out_target"
          groupName="outgoing links"
          groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@links.4"
          child="/0/@diagram/@topLevelNodes.4"
          referenceType="in_source"
          groupName="source"
          groupIcon="icons/linkSourceNavigatorGroup.gif"/>
      <childReferences
          parent="/0/@diagram/@topLevelNodes.4"
          child="/0/@diagram/@links.4"
          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"
          label="Rulers &amp; Grid"/>
      <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>
      <tabs
          xsi:type="gmfgen:GenCustomPropertyTab"
          iD="layout"
          label="Layout"
          className="LayoutSectionProxy">
        <filter
            xsi:type="gmfgen:CustomTabFilter"
            className="PropertySectionFilters$LayoutableFilter"/>
      </tabs>
      <tabs
          xsi:type="gmfgen:GenCustomPropertyTab"
          iD="layoutdata"
          label="LayoutData"
          className="LayoutDataSectionProxy">
        <filter
            xsi:type="gmfgen:CustomTabFilter"
            className="PropertySectionFilters$LayoutableFilter"/>
      </tabs>
      <tabs
          xsi:type="gmfgen:GenCustomPropertyTab"
          iD="size"
          label="Size"
          className="SizeSectionProxy">
        <filter
            xsi:type="gmfgen:CustomTabFilter"
            className="PropertySectionFilters$ShapeFilter"/>
      </tabs>
      <tabs
          xsi:type="gmfgen:GenCustomPropertyTab"
          iD="styles"
          label="Styles"
          className="FigureSectionProxy">
        <filter
            xsi:type="gmfgen:CustomTabFilter"
            className="PropertySectionFilters$ShapeFilter"/>
      </tabs>
    </propertySheet>
    <domainGenModel
        href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#/"/>
    <expressionProviders>
      <providers
          xsi:type="gmfgen:GenExpressionInterpreter">
        <expressions
            xsi:type="gmfgen:GenConstraint"
            body="not self.oclIsKindOf(gmfgraph::DiagramLabel)"/>
        <expressions
            xsi:type="gmfgen:GenConstraint"
            body="not oclIsKindOf(gmfgraph::Polygon)"/>
        <expressions
            body="10"/>
        <expressions
            body="10"/>
        <expressions
            body="30"/>
        <expressions
            body="30"/>
        <expressions
            body="10"/>
        <expressions
            body="10"/>
        <expressions
            body="30"/>
        <expressions
            body="30"/>
        <expressions
            body="10"/>
        <expressions
            body="60"/>
        <expressions
            xsi:type="gmfgen:GenConstraint"
            body="not oclIsKindOf(gmfgraph::Polygon)"/>
        <expressions
            xsi:type="gmfgen:GenConstraint"
            body="not self.oclIsKindOf(gmfgraph::DiagramLabel)"/>
      </providers>
    </expressionProviders>
    <labelParsers
        extensibleViaService="true">
      <implementations
          xsi:type="gmfgen:PredefinedParser"
          uses="/0/@diagram/@topLevelNodes.0/@labels.0/@modelFacet /0/@diagram/@topLevelNodes.1/@labels.0/@modelFacet /0/@diagram/@topLevelNodes.2/@labels.0/@modelFacet /0/@diagram/@childNodes.8/@labels.0/@modelFacet /0/@diagram/@childNodes.13/@labels.0/@modelFacet /0/@diagram/@childNodes.0/@labels.0/@modelFacet /0/@diagram/@childNodes.19/@labels.0/@modelFacet /0/@diagram/@topLevelNodes.3/@labels.0/@modelFacet /0/@diagram/@topLevelNodes.4/@labels.0/@modelFacet"/>
    </labelParsers>
    <contextMenus
        context="/0/@diagram">
      <items
          xsi:type="gmfgen:LoadResourceAction"/>
      <items
          xsi:type="gmfgen:CreateShortcutAction"/>
    </contextMenus>
  </gmfgen:GenEditorGenerator>
  <propsheet:PropertySectionContainer>
    <customSections
        tab="/0/@propertySheet/@tabs.6"
        nodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <section
          href="FigureSection.xmi#/"/>
    </customSections>
    <customSections
        tab="/0/@propertySheet/@tabs.4"
        nodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <section
          href="LayoutDataSection.xmi#/"/>
    </customSections>
    <customSections
        tab="/0/@propertySheet/@tabs.3"
        nodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <section
          href="LayoutSection.xmi#/"/>
    </customSections>
    <customSections
        tab="/0/@propertySheet/@tabs.5"
        nodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <section
          href="SizeSection.xmi#/"/>
    </customSections>
  </propsheet:PropertySectionContainer>
  <wysiwyg:SynchronizerContainer>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.8">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/x"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/y"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Figure/location"/>
      </contexts>
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Figure/preferredSize"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshBounds"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.8">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/x"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/y"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//XYLayoutData/topLeft"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//XYLayoutData/size"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BorderLayoutData/alignment"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BorderLayoutData/vertical"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/grabExcessHorizontalSpace"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/grabExcessVerticalSpace"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/verticalAlignment"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/horizontalAlignment"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/verticalSpan"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/horizontalSpan"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/horizontalIndent"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayoutData/sizeHint"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Layoutable/layoutData"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshLayoutData"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/outline"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="Outline"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/fill"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="Fill"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/lineWidth"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="LineWidth"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/lineKind"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="LineStyle"
          domainValueTransformerName="getLineStyle"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/xorFill"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="FillXOR"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/xorOutline"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="OutlineXOR"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.4 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.16">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RoundedRectangle/cornerWidth"/>
      </contexts>
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RoundedRectangle/cornerHeight"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="CornerDimensions"
          domainValueTransformerName="getCornerDimensions"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BorderLayout/spacing"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/vertical"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/matchMinorSize"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/forceSingleLine"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/majorAlignment"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/minorAlignment"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/majorSpacing"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FlowLayout/minorSpacing"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayout/numColumns"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayout/equalWidth"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayout/margins"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dx"/>
          </children>
          <children
              xsi:type="ctx:FeatureContext">
            <selector
                xsi:type="ecore:EAttribute"
                href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Dimension/dy"/>
          </children>
          <selector
              xsi:type="ecore:EReference"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//GridLayout/spacing"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Layoutable/layout"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="LayoutManager"
          domainValueTransformerName="getLayoutManager"/>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshLayoutManager"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//ConstantColor/value"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/red"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/green"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/blue"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Figure/backgroundColor"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="BackgroundColor"
          domainValueTransformerName="getColor"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//ConstantColor/value"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/red"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/green"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//RGBColor/blue"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Figure/foregroundColor"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="ForegroundColor"
          domainValueTransformerName="getColor"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.1 /0/@diagram/@childNodes.2 /0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.9 /0/@diagram/@childNodes.10 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.14 /0/@diagram/@childNodes.15 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.7 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18 /0/@diagram/@childNodes.8 /0/@diagram/@childNodes.13 /0/@diagram/@childNodes.19">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BasicFont/faceName"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BasicFont/height"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//BasicFont/style"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Figure/font"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshFont"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.11 /0/@diagram/@childNodes.17 /0/@diagram/@childNodes.12 /0/@diagram/@childNodes.18">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/x"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/y"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Polyline/template"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="Points"
          domainValueTransformerName="getPointList"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7">
      <contexts
          xsi:type="ctx:FeatureContext">
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/x"/>
        </children>
        <children
            xsi:type="ctx:FeatureContext">
          <selector
              xsi:type="ecore:EAttribute"
              href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/y"/>
        </children>
        <selector
            xsi:type="ecore:EReference"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Polyline/template"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="Points"
          domainValueTransformerName="getPointList"/>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshMainFigureBounds"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.5 /0/@diagram/@childNodes.7">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Shape/lineWidth"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:FigurePropertySynchAction"
          figureAttribute="LineWidth"/>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshMainFigureBounds"/>
    </synchronizers>
    <synchronizers
        genNodes="/0/@diagram/@childNodes.6">
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/x"/>
      </contexts>
      <contexts
          xsi:type="ctx:FeatureContext">
        <selector
            xsi:type="ecore:EAttribute"
            href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Point/y"/>
      </contexts>
      <actions
          xsi:type="wysiwyg:MethodCallAction"
          methodName="refreshBounds"/>
    </synchronizers>
  </wysiwyg:SynchronizerContainer>
</xmi:XMI>
