<?xml version="1.0" encoding="UTF-8"?>
<gmfgen:GenEditorGenerator xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gmfgen="http://www.eclipse.org/gmf/2005/GenModel" modelID="Eclipsecon">
  <diagram visualID="79" editPartClassName="ConferenceEditPart" itemSemanticEditPolicyClassName="ConferenceItemSemanticEditPolicy" notationViewFactoryClassName="ConferenceViewFactory" iconProviderPriority="Low" canonicalEditPolicyClassName="ConferenceCanonicalEditPolicy">
    <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
    <viewmap xsi:type="gmfgen:FigureViewmap" figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
    <domainDiagramElement href="eclipsecon.genmodel#//eclipsecon/Conference"/>
    <childNodes visualID="2001" editPartClassName="TimeSlotEditPart" itemSemanticEditPolicyClassName="TimeSlotItemSemanticEditPolicy" notationViewFactoryClassName="TimeSlotViewFactory" canonicalEditPolicyClassName="TimeSlotCanonicalEditPolicy" graphicalNodeEditPolicyClassName="TimeSlotGraphicalNodeEditPolicy" containers="//@diagram/@topLevelNodes.2">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="SlotFigure" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class SlotFigure extends org.eclipse.draw2d.RoundedRectangle {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public SlotFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.ToolbarLayout myGenLayoutManager = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;myGenLayoutManager.setStretchMinorAxis(true);&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER);&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setSpacing(5);&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(myGenLayoutManager);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(2);&#x9;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.cyan);&#xD;&#xA;this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20), getMapMode().DPtoLP(20)));&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childLabelStart = createFigureLabelStart();&#xD;&#xA;&#x9;&#x9;setFigureLabelStart(childLabelStart);&#xD;&#xA;&#x9;&#x9;add(childLabelStart);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childLabelEnd = createFigureLabelEnd();&#xD;&#xA;&#x9;&#x9;setFigureLabelEnd(childLabelEnd);&#xD;&#xA;&#x9;&#x9;add(childLabelEnd);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fLabelStart; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureLabelStart() {&#xD;&#xA;&#x9;&#x9;return fLabelStart;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureLabelStart(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fLabelStart = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureLabelStart() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fLabelEnd; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureLabelEnd() {&#xD;&#xA;&#x9;&#x9;return fLabelEnd;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureLabelEnd(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fLabelEnd = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureLabelEnd() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;rv.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#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;"/>
      <modelFacet>
        <metaClass href="eclipsecon.genmodel#//eclipsecon/TimeSlot"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Schedule/slices"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Schedule/slices"/>
      </modelFacet>
      <labels visualID="4003" editPartClassName="TimeSlot_startEditPart" itemSemanticEditPolicyClassName="TimeSlot_startItemSemanticEditPolicy" notationViewFactoryClassName="TimeSlot_startViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="LabelStart" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class LabelStart extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public LabelStart() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet" editPattern="">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/TimeSlot/start"/>
        </modelFacet>
      </labels>
      <labels visualID="4004" editPartClassName="TimeSlot_endEditPart" itemSemanticEditPolicyClassName="TimeSlot_endItemSemanticEditPolicy" notationViewFactoryClassName="TimeSlot_endViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="LabelEnd" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class LabelEnd extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public LabelEnd() {&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&quot;);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/TimeSlot/end"/>
        </modelFacet>
      </labels>
    </childNodes>
    <topLevelNodes visualID="1001" editPartClassName="PresenterEditPart" itemSemanticEditPolicyClassName="PresenterItemSemanticEditPolicy" notationViewFactoryClassName="PresenterViewFactory" canonicalEditPolicyClassName="PresenterCanonicalEditPolicy" graphicalNodeEditPolicyClassName="PresenterGraphicalNodeEditPolicy">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ActorFigure" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ActorFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ActorFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.ToolbarLayout myGenLayoutManager = new org.eclipse.draw2d.ToolbarLayout();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;myGenLayoutManager.setStretchMinorAxis(false);&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_TOPLEFT);&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setSpacing(5);&#xD;&#xA;&#x9;&#x9;myGenLayoutManager.setVertical(true);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#xD;&#xA;&#x9;&#x9;this.setLayoutManager(myGenLayoutManager);&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;this.setFill(false);&#xD;&#xA;&#x9;&#x9;this.setOutline(false);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Ellipse childHead = createFigureHead();&#xD;&#xA;&#x9;&#x9;setFigureHead(childHead);&#xD;&#xA;&#x9;&#x9;add(childHead);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Polygon childBody = createFigureBody();&#xD;&#xA;&#x9;&#x9;setFigureBody(childBody);&#xD;&#xA;&#x9;&#x9;add(childBody);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childLabel = createFigureLabel();&#xD;&#xA;&#x9;&#x9;setFigureLabel(childLabel);&#xD;&#xA;&#x9;&#x9;add(childLabel);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Ellipse fHead; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Ellipse getFigureHead() {&#xD;&#xA;&#x9;&#x9;return fHead;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureHead(org.eclipse.draw2d.Ellipse figure) {&#xD;&#xA;&#x9;&#x9;fHead = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Ellipse createFigureHead() {&#xD;&#xA;org.eclipse.draw2d.Ellipse rv = new org.eclipse.draw2d.Ellipse();&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;rv.setLineWidth(2);&#xD;&#xA;&#x9;&#x9;rv.setSize(getMapMode().DPtoLP(60), getMapMode().DPtoLP(60));&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Polygon fBody; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Polygon getFigureBody() {&#xD;&#xA;&#x9;&#x9;return fBody;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureBody(org.eclipse.draw2d.Polygon figure) {&#xD;&#xA;&#x9;&#x9;fBody = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Polygon createFigureBody() {&#xD;&#xA;org.eclipse.draw2d.Polygon rv = new org.eclipse.draw2d.Polygon();&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(30, 60));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(30, 85));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(0, 85));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(0, 88));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(30, 88));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(30, 130));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(0, 170));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(4, 170));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(31, 133));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(60, 170));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(64, 170));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(33, 130));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(33, 88));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(63, 88));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(63, 85));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(33, 85));&#xD;&#xA;&#x9;&#x9;rv.addPoint(new org.eclipse.draw2d.geometry.Point(33, 60));&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fLabel; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureLabel() {&#xD;&#xA;&#x9;&#x9;return fLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureLabel(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fLabel = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureLabel() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#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;"/>
      <modelFacet>
        <metaClass href="eclipsecon.genmodel#//eclipsecon/Presenter"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/attendees"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/attendees"/>
      </modelFacet>
      <labels visualID="4001" editPartClassName="Presenter_nameEditPart" itemSemanticEditPolicyClassName="Presenter_nameItemSemanticEditPolicy" notationViewFactoryClassName="Presenter_nameViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="Label" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class Label extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public Label() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet" viewPattern="" editPattern="">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/Participant/name"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes visualID="1002" editPartClassName="TutorialEditPart" itemSemanticEditPolicyClassName="TutorialItemSemanticEditPolicy" notationViewFactoryClassName="TutorialViewFactory" canonicalEditPolicyClassName="TutorialCanonicalEditPolicy" graphicalNodeEditPolicyClassName="TutorialGraphicalNodeEditPolicy">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="TutorialFigure" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class TutorialFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public TutorialFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childTag = createFigureTag();&#xD;&#xA;&#x9;&#x9;setFigureTag(childTag);&#xD;&#xA;&#x9;&#x9;add(childTag);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childTitleLabel = createFigureTitleLabel();&#xD;&#xA;&#x9;&#x9;setFigureTitleLabel(childTitleLabel);&#xD;&#xA;&#x9;&#x9;add(childTitleLabel);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fTag; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureTag() {&#xD;&#xA;&#x9;&#x9;return fTag;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureTag(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fTag = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureTag() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;rv.setText(&quot;&lt;&lt;Tutorial>>&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fTitleLabel; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureTitleLabel() {&#xD;&#xA;&#x9;&#x9;return fTitleLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureTitleLabel(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fTitleLabel = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureTitleLabel() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;rv.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#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;"/>
      <modelFacet>
        <metaClass href="eclipsecon.genmodel#//eclipsecon/Tutorial"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/tutorials"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/tutorials"/>
      </modelFacet>
      <labels visualID="4002" editPartClassName="Tutorial_titleEditPart" itemSemanticEditPolicyClassName="Tutorial_titleItemSemanticEditPolicy" notationViewFactoryClassName="Tutorial_titleViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="TitleLabel" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class TitleLabel extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public TitleLabel() {&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&quot;);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/Tutorial/title"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes visualID="1003" editPartClassName="ScheduleEditPart" itemSemanticEditPolicyClassName="ScheduleItemSemanticEditPolicy" notationViewFactoryClassName="ScheduleViewFactory" childNodes="//@diagram/@childNodes.0" canonicalEditPolicyClassName="ScheduleCanonicalEditPolicy" listLayout="false" graphicalNodeEditPolicyClassName="ScheduleGraphicalNodeEditPolicy">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ThickFigure" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ThickFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ThickFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;this.setLineWidth(3);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childThickFigureLabel = createFigureThickFigureLabel();&#xD;&#xA;&#x9;&#x9;setFigureThickFigureLabel(childThickFigureLabel);&#xD;&#xA;&#x9;&#x9;add(childThickFigureLabel);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fThickFigureLabel; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureThickFigureLabel() {&#xD;&#xA;&#x9;&#x9;return fThickFigureLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureThickFigureLabel(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fThickFigureLabel = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureThickFigureLabel() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#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;"/>
      <modelFacet>
        <metaClass href="eclipsecon.genmodel#//eclipsecon/Schedule"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/days"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/days"/>
      </modelFacet>
      <labels visualID="4005" editPartClassName="Schedule_dayNoEditPart" itemSemanticEditPolicyClassName="Schedule_dayNoItemSemanticEditPolicy" notationViewFactoryClassName="Schedule_dayNoViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ThickFigureLabel" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ThickFigureLabel extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ThickFigureLabel() {&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet" viewPattern="{0,choice,-1#XX|0#Sun|1#Mon|2#Tue|3#Wed|4#Thu|5#Fri|6#Sat|7#XX}" editPattern="{0,number}">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/Schedule/dayNo"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes visualID="1004" editPartClassName="ResourceEditPart" itemSemanticEditPolicyClassName="ResourceItemSemanticEditPolicy" notationViewFactoryClassName="ResourceViewFactory" canonicalEditPolicyClassName="ResourceCanonicalEditPolicy" graphicalNodeEditPolicyClassName="ResourceGraphicalNodeEditPolicy">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ResourceFigure" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ResourceFigure extends org.eclipse.draw2d.RectangleFigure {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ResourceFigure() {&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childResourceNameLabel = createFigureResourceNameLabel();&#xD;&#xA;&#x9;&#x9;setFigureResourceNameLabel(childResourceNameLabel);&#xD;&#xA;&#x9;&#x9;add(childResourceNameLabel);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.Label childResourceLocationLabel = createFigureResourceLocationLabel();&#xD;&#xA;&#x9;&#x9;setFigureResourceLocationLabel(childResourceLocationLabel);&#xD;&#xA;&#x9;&#x9;add(childResourceLocationLabel);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fResourceNameLabel; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureResourceNameLabel() {&#xD;&#xA;&#x9;&#x9;return fResourceNameLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureResourceNameLabel(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fResourceNameLabel = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureResourceNameLabel() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;rv.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label fResourceLocationLabel; &#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getFigureResourceLocationLabel() {&#xD;&#xA;&#x9;&#x9;return fResourceLocationLabel;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;protected void setFigureResourceLocationLabel(org.eclipse.draw2d.Label figure) {&#xD;&#xA;&#x9;&#x9;fResourceLocationLabel = figure;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.Label createFigureResourceLocationLabel() {&#xD;&#xA;org.eclipse.draw2d.Label rv = new org.eclipse.draw2d.Label();&#xD;&#xA;rv.setText(&quot;&quot;);&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return rv;&#xD;&#xA;&#x9;}&#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;"/>
      <modelFacet>
        <metaClass href="eclipsecon.genmodel#//eclipsecon/Resource"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/eclipsezilla"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Conference/eclipsezilla"/>
      </modelFacet>
      <labels xsi:type="gmfgen:GenExternalNodeLabel" visualID="4006" editPartClassName="Resource_UnknownEditPart" itemSemanticEditPolicyClassName="Resource_UnknownItemSemanticEditPolicy" notationViewFactoryClassName="Resource_UnknownViewFactory" readOnly="true">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ResourceTag" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ResourceTag extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ResourceTag() {&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&lt;&lt;Resource>>&quot;);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
      </labels>
      <labels visualID="4007" editPartClassName="Resource_nameEditPart" itemSemanticEditPolicyClassName="Resource_nameItemSemanticEditPolicy" notationViewFactoryClassName="Resource_nameViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ResourceNameLabel" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ResourceNameLabel extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ResourceNameLabel() {&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&quot;);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/Resource/name"/>
        </modelFacet>
      </labels>
      <labels visualID="4008" editPartClassName="Resource_locationEditPart" itemSemanticEditPolicyClassName="Resource_locationItemSemanticEditPolicy" notationViewFactoryClassName="Resource_locationViewFactory">
        <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap xsi:type="gmfgen:InnerClassViewmap" className="ResourceLocationLabel" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class ResourceLocationLabel extends org.eclipse.draw2d.Label {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private boolean myUseLocalCoordinates;&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public ResourceLocationLabel() {&#xD;&#xA;&#x9;&#x9;this.setText(&quot;&quot;);&#xD;&#xA;&#x9;&#x9;&#xD;&#xA;&#xD;&#xA;&#x9;}&#xD;&#xA;&#x9;&#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;"/>
        <modelFacet xsi:type="gmfgen:FeatureLabelModelFacet" viewPattern="uri: {0}" editPattern="">
          <metaFeature href="eclipsecon.genmodel#//eclipsecon/Resource/location"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <links visualID="3001" editPartClassName="HandoutEditPart" itemSemanticEditPolicyClassName="HandoutItemSemanticEditPolicy" notationViewFactoryClassName="HandoutViewFactory">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="SolidLineSquareDec" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class SolidLineSquareDec extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public SolidLineSquareDec() {&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;setSourceDecoration(createSourceDecoration());&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;private org.eclipse.draw2d.PolygonDecoration createSourceDecoration() {&#xD;&#xA;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xD;&#xA;// dispatchNext?&#xD;&#xA;&#x9;&#x9;df.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xD;&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xD;&#xA;&#x9;&#x9;pl.addPoint(0, 1);&#xD;&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xD;&#xA;&#x9;&#x9;pl.addPoint(-1, 0);&#xD;&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xD;&#xA;&#x9;&#x9;df.setTemplate(pl);&#xD;&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;return df;&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;}"/>
      <modelFacet xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass href="eclipsecon.genmodel#//eclipsecon/Handout"/>
        <containmentMetaFeature href="eclipsecon.genmodel#//eclipsecon/Tutorial/handouts"/>
        <childMetaFeature href="eclipsecon.genmodel#//eclipsecon/Tutorial/handouts"/>
        <targetMetaFeature href="eclipsecon.genmodel#//eclipsecon/Handout/eclipsezilla"/>
      </modelFacet>
    </links>
    <links visualID="3002" editPartClassName="AssignedEditPart" itemSemanticEditPolicyClassName="AssignedItemSemanticEditPolicy" notationViewFactoryClassName="AssignedViewFactory">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="DotLineNoDecorations" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DotLineNoDecorations extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DotLineNoDecorations() {&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}"/>
      <modelFacet xsi:type="gmfgen:FeatureLinkModelFacet">
        <metaFeature href="eclipsecon.genmodel#//eclipsecon/Tutorial/assigned"/>
      </modelFacet>
    </links>
    <links visualID="3003" editPartClassName="PresentersEditPart" itemSemanticEditPolicyClassName="PresentersItemSemanticEditPolicy" notationViewFactoryClassName="PresentersViewFactory">
      <diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <viewmap xsi:type="gmfgen:InnerClassViewmap" className="DashLineNoDecorations" classBody="&#xD;&#xA;&#xD;&#xA;/**&#xD;&#xA; * @generated&#xD;&#xA; */&#xD;&#xA;public class DashLineNoDecorations extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xD;&#xA;&#xD;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public DashLineNoDecorations() {&#xD;&#xA;&#xD;&#xA;&#x9;&#x9;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xD;&#xA;&#x9;}&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;}"/>
      <modelFacet xsi:type="gmfgen:FeatureLinkModelFacet">
        <metaFeature href="eclipsecon.genmodel#//eclipsecon/Tutorial/presenters"/>
      </modelFacet>
    </links>
    <palette>
      <groups titleKey="nodes" entryID="1">
        <nodeTools titleKey="Presenter" descriptionKey="Create new Presenter" entryID="1001" genNode="//@diagram/@topLevelNodes.0"/>
        <nodeTools titleKey="Tutorial" descriptionKey="Create new Tutorial" entryID="1002" genNode="//@diagram/@topLevelNodes.1"/>
        <nodeTools titleKey="Schedule" descriptionKey="Create new Schedule" entryID="1003" genNode="//@diagram/@topLevelNodes.2"/>
        <nodeTools titleKey="TimeSlot" descriptionKey="Create new TimeSlot" entryID="1004" genNode="//@diagram/@childNodes.0"/>
        <nodeTools titleKey="Resource" descriptionKey="Create new resource" entryID="1005" genNode="//@diagram/@topLevelNodes.3"/>
      </groups>
      <groups titleKey="links" descriptionKey="" entryID="2">
        <linkTools titleKey="Handout" descriptionKey="Define hand-out material" entryID="2001" genLink="//@diagram/@links.0"/>
        <linkTools titleKey="Assign time" descriptionKey="Assign time" entryID="2002" genLink="//@diagram/@links.1"/>
        <linkTools titleKey="Presenter" descriptionKey="Connect tutorial with presenter" entryID="2003" genLink="//@diagram/@links.2"/>
      </groups>
    </palette>
  </diagram>
  <plugin name="EclipseCon Diagram Plugin"/>
  <editor/>
  <domainGenModel href="eclipsecon.genmodel#/"/>
</gmfgen:GenEditorGenerator>
