### Eclipse Workspace Patch 1.0 #P org.eclipse.gmf.graphdef.edit Index: plugin.properties =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.edit/plugin.properties,v retrieving revision 1.22 diff -u -r1.22 plugin.properties --- plugin.properties 24 Aug 2006 15:38:50 -0000 1.22 +++ plugin.properties 24 Aug 2006 17:27:59 -0000 @@ -1 +1 @@ -##################################################### # Properties in this section SHOULD NOT be translated ##################################################### _UI_GMFGraphEditorFilenameDefaultBase = My _UI_GMFGraphEditorFilenameExtension = gmfgraph _UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 ################ # End of section ################ ############################################################# # Properties in this section ARE REALLY NEED to be translated ############################################################# _UI_CreateChild_text = {0} _UI_CreateChild_text2 = {1} {0} _UI_CreateChild_text3 = {1} _UI_CreateChild_tooltip = Create New {0} Under {1} Feature _UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. _UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. _UI_PropertyDescriptor_description = The {0} of the {1} _UI_GMFGraphEditor_menu = &GMFGraph Editor _UI_CreateChild_menu_item = &New Child _UI_CreateSibling_menu_item = N&ew Sibling _UI_ShowPropertiesView_menu_item = Show &Properties View _UI_RefreshViewer_menu_item = &Refresh _UI_SelectionPage_label = Selection _UI_ParentPage_label = Parent _UI_ListPage_label = List _UI_TreePage_label = Tree _UI_TablePage_label = Table _UI_TreeWithColumnsPage_label = Tree with Columns _UI_ObjectColumn_label = Object _UI_SelfColumn_label = Self _UI_NoObjectSelected = Selected Nothing _UI_SingleObjectSelected = Selected Object: {0} _UI_MultiObjectSelected = Selected {0} Objects _UI_OpenEditorError_label = Open Editor _UI_GMFGraphModelWizard_label = GMFGraph Model _UI_GMFGraphModelWizard_description = Create a new GMFGraph model _UI_GMFGraphEditor_label = GMFGraph Model Editor _UI_Wizard_label = New _WARN_FilenameExtension = The file name must end in ".{0}" _UI_ModelObject = Model Object _UI_XMLEncoding = XML Encoding _UI_Wizard_initial_object_description = Select a model object to create _UI_FileConflict_label = File Conflict _WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? _UI_CreateModelError_message = Problems encountered in file "{0}" ################ # End of section ################ ###################################################################################### # Properties in this section MAY be translated, although they are quite ok in English. # Mostly there are names of classes and features that are often referenced to by # their English names ###################################################################################### pluginName = GMFGraph Edit Support providerName = Eclipse.org _UI_Canvas_type = Canvas _UI_FigureGallery_type = Figure Gallery _UI_Identity_type = Identity _UI_DiagramElement_type = Diagram Element _UI_Node_type = Node _UI_Connection_type = Connection _UI_Compartment_type = Compartment _UI_DiagramLabel_type = Diagram Label _UI_DiagramLabel_elementIcon_feature = Element Icon _UI_VisualFacet_type = Visual Facet _UI_GeneralFacet_type = General Facet _UI_AlignmentFacet_type = Alignment Facet _UI_GradientFacet_type = Gradient Facet _UI_LabelOffsetFacet_type = Label Offset Facet _UI_FigureMarker_type = Figure Marker _UI_Figure_type = Figure _UI_FigureRef_type = Figure Ref _UI_ConnectionFigure_type = Connection Figure _UI_DecorationFigure_type = Decoration Figure _UI_Shape_type = Shape _UI_Label_type = Label _UI_LabeledContainer_type = Labeled Container _UI_Rectangle_type = Rectangle _UI_RoundedRectangle_type = Rounded Rectangle _UI_Ellipse_type = Ellipse _UI_Polyline_type = Polyline _UI_Polygon_type = Polygon _UI_PolylineConnection_type = Polyline Connection _UI_PolylineDecoration_type = Polyline Decoration _UI_PolygonDecoration_type = Polygon Decoration _UI_CustomClass_type = Custom Class _UI_CustomFigure_type = Custom Figure _UI_CustomFigure_customChildren_feature = Custom Children _UI_CustomDecoration_type = Custom Decoration _UI_CustomConnection_type = Custom Connection _UI_Color_type = Color _UI_RGBColor_type = RGB Color _UI_ConstantColor_type = Constant Color _UI_Font_type = Font _UI_BasicFont_type = Basic Font _UI_Point_type = Point _UI_Dimension_type = Dimension _UI_Insets_type = Insets _UI_Border_type = Border _UI_LineBorder_type = Line Border _UI_MarginBorder_type = Margin Border _UI_CompoundBorder_type = Compound Border _UI_CustomBorder_type = Custom Border _UI_LayoutData_type = Layout Data _UI_CustomLayoutData_type = Custom Layout Data _UI_GridLayoutData_type = Grid Layout Data _UI_BorderLayoutData_type = Border Layout Data _UI_Layoutable_type = Layoutable _UI_Layout_type = Layout _UI_CustomLayout_type = Custom Layout _UI_GridLayout_type = Grid Layout _UI_BorderLayout_type = Border Layout _UI_CustomAttribute_type = Custom Attribute _UI_FlowLayout_type = Flow Layout _UI_XYLayout_type = XY Layout _UI_XYLayoutData_type = XY Layout Data _UI_StackLayout_type = Stack Layout _UI_Unknown_type = Object _UI_Unknown_datatype= Value _UI_Canvas_figures_feature = Figures _UI_Canvas_nodes_feature = Nodes _UI_Canvas_connections_feature = Connections _UI_Canvas_compartments_feature = Compartments _UI_Canvas_labels_feature = Labels _UI_FigureGallery_figures_feature = Figures _UI_FigureGallery_implementationBundle_feature = Implementation Bundle _UI_Identity_name_feature = Name _UI_DiagramElement_figure_feature = Figure _UI_DiagramElement_facets_feature = Facets _UI_Node_nodeFigure_feature = _UI_Node_resizeConstraint_feature = Resize Constraint _UI_Connection_connectionFigure_feature = _UI_Compartment_collapsible_feature = Collapsible _UI_Compartment_needsTitle_feature = Needs Title _UI_GeneralFacet_identifier_feature = Identifier _UI_GeneralFacet_data_feature = Data _UI_AlignmentFacet_alignment_feature = Alignment _UI_GradientFacet_direction_feature = Direction _UI_LabelOffsetFacet_x_feature = X _UI_LabelOffsetFacet_y_feature = Y _UI_FigureMarker_parent_feature = Parent _UI_Figure_children_feature = Children _UI_Figure_foregroundColor_feature = Foreground Color _UI_Figure_backgroundColor_feature = Background Color _UI_Figure_maximumSize_feature = Maximum Size _UI_Figure_minimumSize_feature = Minimum Size _UI_Figure_preferredSize_feature = Preferred Size _UI_Figure_font_feature = Font _UI_Figure_insets_feature = Insets _UI_Figure_border_feature = Border _UI_Figure_location_feature = Location _UI_Figure_size_feature = Size _UI_FigureRef_figure_feature = Figure _UI_Shape_outline_feature = Outline _UI_Shape_fill_feature = Fill _UI_Shape_lineWidth_feature = Line Width _UI_Shape_lineKind_feature = Line Kind _UI_Shape_xorFill_feature = Xor Fill _UI_Shape_xorOutline_feature = Xor Outline _UI_Shape_resolvedChildren_feature = Resolved Children _UI_Label_text_feature = Text _UI_RoundedRectangle_cornerWidth_feature = Corner Width _UI_RoundedRectangle_cornerHeight_feature = Corner Height _UI_Polyline_template_feature = Template _UI_PolylineConnection_sourceDecoration_feature = Source Decoration _UI_PolylineConnection_targetDecoration_feature = Target Decoration _UI_CustomClass_qualifiedClassName_feature = Qualified Class Name _UI_CustomClass_bundleName_feature = Bundle Name _UI_CustomClass_attributes_feature = Attributes _UI_RGBColor_red_feature = Red _UI_RGBColor_green_feature = Green _UI_RGBColor_blue_feature = Blue _UI_ConstantColor_value_feature = Value _UI_BasicFont_faceName_feature = Face Name _UI_BasicFont_height_feature = Height _UI_BasicFont_style_feature = Style _UI_Point_x_feature = X _UI_Point_y_feature = Y _UI_Dimension_dx_feature = Dx _UI_Dimension_dy_feature = Dy _UI_Insets_top_feature = Top _UI_Insets_left_feature = Left _UI_Insets_bottom_feature = Bottom _UI_Insets_right_feature = Right _UI_LineBorder_color_feature = Color _UI_LineBorder_width_feature = Width _UI_MarginBorder_insets_feature = Insets _UI_CompoundBorder_outer_feature = Outer _UI_CompoundBorder_inner_feature = Inner _UI_LayoutData_owner_feature = Owner _UI_GridLayoutData_grabExcessHorizontalSpace_feature = Grab Excess Horizontal Space _UI_GridLayoutData_grabExcessVerticalSpace_feature = Grab Excess Vertical Space _UI_GridLayoutData_verticalAlignment_feature = Vertical Alignment _UI_GridLayoutData_horizontalAlignment_feature = Horizontal Alignment _UI_GridLayoutData_verticalSpan_feature = Vertical Span _UI_GridLayoutData_horizontalSpan_feature = Horizontal Span _UI_GridLayoutData_horizontalIndent_feature = Horizontal Indent _UI_GridLayoutData_sizeHint_feature = Size Hint _UI_BorderLayoutData_alignment_feature = Alignment _UI_BorderLayoutData_vertical_feature = Vertical _UI_Layoutable_layoutData_feature = Layout Data _UI_Layoutable_layout_feature = Layout _UI_GridLayout_numColumns_feature = Num Columns _UI_GridLayout_equalWidth_feature = Equal Width _UI_GridLayout_margins_feature = Margins _UI_GridLayout_spacing_feature = Spacing _UI_BorderLayout_spacing_feature = Spacing _UI_CustomAttribute_name_feature = Name _UI_CustomAttribute_value_feature = Value _UI_CustomAttribute_directAccess_feature = Direct Access _UI_CustomAttribute_multiStatementValue_feature = Multi Statement Value _UI_FlowLayout_vertical_feature = Vertical _UI_FlowLayout_matchMinorSize_feature = Match Minor Size _UI_FlowLayout_forceSingleLine_feature = Force Single Line _UI_FlowLayout_majorAlignment_feature = Major Alignment _UI_FlowLayout_minorAlignment_feature = Minor Alignment _UI_FlowLayout_majorSpacing_feature = Major Spacing _UI_FlowLayout_minorSpacing_feature = Minor Spacing _UI_XYLayoutData_topLeft_feature = Top Left _UI_XYLayoutData_size_feature = Size _UI_Unknown_feature = Unspecified _UI_ColorConstants_white_literal = white _UI_ColorConstants_black_literal = black _UI_ColorConstants_lightGray_literal = lightGray _UI_ColorConstants_gray_literal = gray _UI_ColorConstants_darkGray_literal = darkGray _UI_ColorConstants_red_literal = red _UI_ColorConstants_orange_literal = orange _UI_ColorConstants_yellow_literal = yellow _UI_ColorConstants_green_literal = green _UI_ColorConstants_lightGreen_literal = lightGreen _UI_ColorConstants_darkGreen_literal = darkGreen _UI_ColorConstants_cyan_literal = cyan _UI_ColorConstants_lightBlue_literal = lightBlue _UI_ColorConstants_blue_literal = blue _UI_ColorConstants_darkBlue_literal = darkBlue _UI_FontStyle_NORMAL_literal = NORMAL _UI_FontStyle_BOLD_literal = BOLD _UI_FontStyle_ITALIC_literal = ITALIC _UI_Direction_NONE_literal = NONE _UI_Direction_NORTH_literal = NORTH _UI_Direction_SOUTH_literal = SOUTH _UI_Direction_WEST_literal = WEST _UI_Direction_EAST_literal = EAST _UI_Direction_NORTH_EAST_literal = NORTH_EAST _UI_Direction_NORTH_WEST_literal = NORTH_WEST _UI_Direction_SOUTH_EAST_literal = SOUTH_EAST _UI_Direction_SOUTH_WEST_literal = SOUTH_WEST _UI_Direction_NORTH_SOUTH_literal = NORTH_SOUTH _UI_Direction_EAST_WEST_literal = EAST_WEST _UI_Direction_NSEW_literal = NSEW _UI_LineKind_LINE_SOLID_literal = LINE_SOLID _UI_LineKind_LINE_DASH_literal = LINE_DASH _UI_LineKind_LINE_DOT_literal = LINE_DOT _UI_LineKind_LINE_DASHDOT_literal = LINE_DASHDOT _UI_LineKind_LINE_DASHDOTDOT_literal = LINE_DASHDOTDOT _UI_LineKind_LINE_CUSTOM_literal = LINE_CUSTOM _UI_Alignment_BEGINNING_literal = BEGINNING _UI_Alignment_CENTER_literal = CENTER _UI_Alignment_END_literal = END _UI_Alignment_FILL_literal = FILL _UI_FigureHandle_type = Figure Handle _UI_FigureHandle_referencingElements_feature = Referencing Elements _UI_FigureAccessor_type = Figure Accessor _UI_FigureAccessor_accessor_feature = Accessor _UI_FigureAccessor_typedFigure_feature = Typed Figure _UI_ScalablePolygon_type = Scalable Polygon +##################################################### # Properties in this section SHOULD NOT be translated ##################################################### _UI_GMFGraphEditorFilenameDefaultBase = My _UI_GMFGraphEditorFilenameExtension = gmfgraph _UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 ################ # End of section ################ ############################################################# # Properties in this section ARE REALLY NEED to be translated ############################################################# _UI_CreateChild_text = {0} _UI_CreateChild_text2 = {1} {0} _UI_CreateChild_text3 = {1} _UI_CreateChild_tooltip = Create New {0} Under {1} Feature _UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. _UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. _UI_PropertyDescriptor_description = The {0} of the {1} _UI_GMFGraphEditor_menu = &GMFGraph Editor _UI_CreateChild_menu_item = &New Child _UI_CreateSibling_menu_item = N&ew Sibling _UI_ShowPropertiesView_menu_item = Show &Properties View _UI_RefreshViewer_menu_item = &Refresh _UI_SelectionPage_label = Selection _UI_ParentPage_label = Parent _UI_ListPage_label = List _UI_TreePage_label = Tree _UI_TablePage_label = Table _UI_TreeWithColumnsPage_label = Tree with Columns _UI_ObjectColumn_label = Object _UI_SelfColumn_label = Self _UI_NoObjectSelected = Selected Nothing _UI_SingleObjectSelected = Selected Object: {0} _UI_MultiObjectSelected = Selected {0} Objects _UI_OpenEditorError_label = Open Editor _UI_GMFGraphModelWizard_label = GMFGraph Model _UI_GMFGraphModelWizard_description = Create a new GMFGraph model _UI_GMFGraphEditor_label = GMFGraph Model Editor _UI_Wizard_label = New _WARN_FilenameExtension = The file name must end in ".{0}" _UI_ModelObject = Model Object _UI_XMLEncoding = XML Encoding _UI_Wizard_initial_object_description = Select a model object to create _UI_FileConflict_label = File Conflict _WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? _UI_CreateModelError_message = Problems encountered in file "{0}" ################ # End of section ################ ###################################################################################### # Properties in this section MAY be translated, although they are quite ok in English. # Mostly there are names of classes and features that are often referenced to by # their English names ###################################################################################### pluginName = GMFGraph Edit Support providerName = Eclipse.org _UI_Canvas_type = Canvas _UI_FigureGallery_type = Figure Gallery _UI_Identity_type = Identity _UI_DiagramElement_type = Diagram Element _UI_Node_type = Node _UI_Connection_type = Connection _UI_Compartment_type = Compartment _UI_DiagramLabel_type = Diagram Label _UI_DiagramLabel_elementIcon_feature = Element Icon _UI_VisualFacet_type = Visual Facet _UI_GeneralFacet_type = General Facet _UI_AlignmentFacet_type = Alignment Facet _UI_GradientFacet_type = Gradient Facet _UI_LabelOffsetFacet_type = Label Offset Facet _UI_FigureMarker_type = Figure Marker _UI_Figure_type = Figure _UI_FigureRef_type = Figure Ref _UI_ConnectionFigure_type = Connection Figure _UI_DecorationFigure_type = Decoration Figure _UI_Shape_type = Shape _UI_Label_type = Label _UI_LabeledContainer_type = Labeled Container _UI_Rectangle_type = Rectangle _UI_RoundedRectangle_type = Rounded Rectangle _UI_Ellipse_type = Ellipse _UI_Polyline_type = Polyline _UI_Polygon_type = Polygon _UI_PolylineConnection_type = Polyline Connection _UI_PolylineDecoration_type = Polyline Decoration _UI_PolygonDecoration_type = Polygon Decoration _UI_CustomClass_type = Custom Class _UI_CustomFigure_type = Custom Figure _UI_CustomFigure_customChildren_feature = Custom Children _UI_CustomDecoration_type = Custom Decoration _UI_CustomConnection_type = Custom Connection _UI_Color_type = Color _UI_RGBColor_type = RGB Color _UI_ConstantColor_type = Constant Color _UI_Font_type = Font _UI_BasicFont_type = Basic Font _UI_Point_type = Point _UI_Dimension_type = Dimension _UI_Insets_type = Insets _UI_Border_type = Border _UI_LineBorder_type = Line Border _UI_MarginBorder_type = Margin Border _UI_CompoundBorder_type = Compound Border _UI_CustomBorder_type = Custom Border _UI_LayoutData_type = Layout Data _UI_CustomLayoutData_type = Custom Layout Data _UI_GridLayoutData_type = Grid Layout Data _UI_BorderLayoutData_type = Border Layout Data _UI_Layoutable_type = Layoutable _UI_Layout_type = Layout _UI_CustomLayout_type = Custom Layout _UI_GridLayout_type = Grid Layout _UI_BorderLayout_type = Border Layout _UI_CustomAttribute_type = Custom Attribute _UI_FlowLayout_type = Flow Layout _UI_XYLayout_type = XY Layout _UI_XYLayoutData_type = XY Layout Data _UI_StackLayout_type = Stack Layout _UI_Unknown_type = Object _UI_Unknown_datatype= Value _UI_Canvas_figures_feature = Figures _UI_Canvas_nodes_feature = Nodes _UI_Canvas_connections_feature = Connections _UI_Canvas_compartments_feature = Compartments _UI_Canvas_labels_feature = Labels _UI_FigureGallery_figures_feature = Figures _UI_FigureGallery_implementationBundle_feature = Implementation Bundle _UI_Identity_name_feature = Name _UI_DiagramElement_figure_feature = Figure _UI_DiagramElement_facets_feature = Facets _UI_Node_nodeFigure_feature = _UI_Node_resizeConstraint_feature = Resize Constraint _UI_Node_affixedParentSide_feature = Affixed Parent Side _UI_Connection_connectionFigure_feature = _UI_Compartment_collapsible_feature = Collapsible _UI_Compartment_needsTitle_feature = Needs Title _UI_GeneralFacet_identifier_feature = Identifier _UI_GeneralFacet_data_feature = Data _UI_AlignmentFacet_alignment_feature = Alignment _UI_GradientFacet_direction_feature = Direction _UI_LabelOffsetFacet_x_feature = X _UI_LabelOffsetFacet_y_feature = Y _UI_FigureMarker_parent_feature = Parent _UI_Figure_children_feature = Children _UI_Figure_foregroundColor_feature = Foreground Color _UI_Figure_backgroundColor_feature = Background Color _UI_Figure_maximumSize_feature = Maximum Size _UI_Figure_minimumSize_feature = Minimum Size _UI_Figure_preferredSize_feature = Preferred Size _UI_Figure_font_feature = Font _UI_Figure_insets_feature = Insets _UI_Figure_border_feature = Border _UI_Figure_location_feature = Location _UI_Figure_size_feature = Size _UI_FigureRef_figure_feature = Figure _UI_Shape_outline_feature = Outline _UI_Shape_fill_feature = Fill _UI_Shape_lineWidth_feature = Line Width _UI_Shape_lineKind_feature = Line Kind _UI_Shape_xorFill_feature = Xor Fill _UI_Shape_xorOutline_feature = Xor Outline _UI_Shape_resolvedChildren_feature = Resolved Children _UI_Label_text_feature = Text _UI_RoundedRectangle_cornerWidth_feature = Corner Width _UI_RoundedRectangle_cornerHeight_feature = Corner Height _UI_Polyline_template_feature = Template _UI_PolylineConnection_sourceDecoration_feature = Source Decoration _UI_PolylineConnection_targetDecoration_feature = Target Decoration _UI_CustomClass_qualifiedClassName_feature = Qualified Class Name _UI_CustomClass_bundleName_feature = Bundle Name _UI_CustomClass_attributes_feature = Attributes _UI_RGBColor_red_feature = Red _UI_RGBColor_green_feature = Green _UI_RGBColor_blue_feature = Blue _UI_ConstantColor_value_feature = Value _UI_BasicFont_faceName_feature = Face Name _UI_BasicFont_height_feature = Height _UI_BasicFont_style_feature = Style _UI_Point_x_feature = X _UI_Point_y_feature = Y _UI_Dimension_dx_feature = Dx _UI_Dimension_dy_feature = Dy _UI_Insets_top_feature = Top _UI_Insets_left_feature = Left _UI_Insets_bottom_feature = Bottom _UI_Insets_right_feature = Right _UI_LineBorder_color_feature = Color _UI_LineBorder_width_feature = Width _UI_MarginBorder_insets_feature = Insets _UI_CompoundBorder_outer_feature = Outer _UI_CompoundBorder_inner_feature = Inner _UI_LayoutData_owner_feature = Owner _UI_GridLayoutData_grabExcessHorizontalSpace_feature = Grab Excess Horizontal Space _UI_GridLayoutData_grabExcessVerticalSpace_feature = Grab Excess Vertical Space _UI_GridLayoutData_verticalAlignment_feature = Vertical Alignment _UI_GridLayoutData_horizontalAlignment_feature = Horizontal Alignment _UI_GridLayoutData_verticalSpan_feature = Vertical Span _UI_GridLayoutData_horizontalSpan_feature = Horizontal Span _UI_GridLayoutData_horizontalIndent_feature = Horizontal Indent _UI_GridLayoutData_sizeHint_feature = Size Hint _UI_BorderLayoutData_alignment_feature = Alignment _UI_BorderLayoutData_vertical_feature = Vertical _UI_Layoutable_layoutData_feature = Layout Data _UI_Layoutable_layout_feature = Layout _UI_GridLayout_numColumns_feature = Num Columns _UI_GridLayout_equalWidth_feature = Equal Width _UI_GridLayout_margins_feature = Margins _UI_GridLayout_spacing_feature = Spacing _UI_BorderLayout_spacing_feature = Spacing _UI_CustomAttribute_name_feature = Name _UI_CustomAttribute_value_feature = Value _UI_CustomAttribute_directAccess_feature = Direct Access _UI_CustomAttribute_multiStatementValue_feature = Multi Statement Value _UI_FlowLayout_vertical_feature = Vertical _UI_FlowLayout_matchMinorSize_feature = Match Minor Size _UI_FlowLayout_forceSingleLine_feature = Force Single Line _UI_FlowLayout_majorAlignment_feature = Major Alignment _UI_FlowLayout_minorAlignment_feature = Minor Alignment _UI_FlowLayout_majorSpacing_feature = Major Spacing _UI_FlowLayout_minorSpacing_feature = Minor Spacing _UI_XYLayoutData_topLeft_feature = Top Left _UI_XYLayoutData_size_feature = Size _UI_Unknown_feature = Unspecified _UI_ColorConstants_white_literal = white _UI_ColorConstants_black_literal = black _UI_ColorConstants_lightGray_literal = lightGray _UI_ColorConstants_gray_literal = gray _UI_ColorConstants_darkGray_literal = darkGray _UI_ColorConstants_red_literal = red _UI_ColorConstants_orange_literal = orange _UI_ColorConstants_yellow_literal = yellow _UI_ColorConstants_green_literal = green _UI_ColorConstants_lightGreen_literal = lightGreen _UI_ColorConstants_darkGreen_literal = darkGreen _UI_ColorConstants_cyan_literal = cyan _UI_ColorConstants_lightBlue_literal = lightBlue _UI_ColorConstants_blue_literal = blue _UI_ColorConstants_darkBlue_literal = darkBlue _UI_FontStyle_NORMAL_literal = NORMAL _UI_FontStyle_BOLD_literal = BOLD _UI_FontStyle_ITALIC_literal = ITALIC _UI_Direction_NONE_literal = NONE _UI_Direction_NORTH_literal = NORTH _UI_Direction_SOUTH_literal = SOUTH _UI_Direction_WEST_literal = WEST _UI_Direction_EAST_literal = EAST _UI_Direction_NORTH_EAST_literal = NORTH_EAST _UI_Direction_NORTH_WEST_literal = NORTH_WEST _UI_Direction_SOUTH_EAST_literal = SOUTH_EAST _UI_Direction_SOUTH_WEST_literal = SOUTH_WEST _UI_Direction_NORTH_SOUTH_literal = NORTH_SOUTH _UI_Direction_EAST_WEST_literal = EAST_WEST _UI_Direction_NSEW_literal = NSEW _UI_LineKind_LINE_SOLID_literal = LINE_SOLID _UI_LineKind_LINE_DASH_literal = LINE_DASH _UI_LineKind_LINE_DOT_literal = LINE_DOT _UI_LineKind_LINE_DASHDOT_literal = LINE_DASHDOT _UI_LineKind_LINE_DASHDOTDOT_literal = LINE_DASHDOTDOT _UI_LineKind_LINE_CUSTOM_literal = LINE_CUSTOM _UI_Alignment_BEGINNING_literal = BEGINNING _UI_Alignment_CENTER_literal = CENTER _UI_Alignment_END_literal = END _UI_Alignment_FILL_literal = FILL _UI_FigureHandle_type = Figure Handle _UI_FigureHandle_referencingElements_feature = Referencing Elements _UI_FigureAccessor_type = Figure Accessor _UI_FigureAccessor_accessor_feature = Accessor _UI_FigureAccessor_typedFigure_feature = Typed Figure _UI_ScalablePolygon_type = Scalable Polygon \ No newline at end of file Index: src/org/eclipse/gmf/gmfgraph/provider/NodeItemProvider.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.edit/src/org/eclipse/gmf/gmfgraph/provider/NodeItemProvider.java,v retrieving revision 1.5 diff -u -r1.5 NodeItemProvider.java --- src/org/eclipse/gmf/gmfgraph/provider/NodeItemProvider.java 17 May 2006 14:22:41 -0000 1.5 +++ src/org/eclipse/gmf/gmfgraph/provider/NodeItemProvider.java 24 Aug 2006 17:27:59 -0000 @@ -59,6 +59,7 @@ super.getPropertyDescriptors(object); addResizeConstraintPropertyDescriptor(object); + addAffixedParentSidePropertyDescriptor(object); } return itemPropertyDescriptors; } @@ -86,6 +87,28 @@ } /** + * This adds a property descriptor for the Affixed Parent Side feature. + * + * + * @generated + */ + protected void addAffixedParentSidePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Node_affixedParentSide_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Node_affixedParentSide_feature", "_UI_Node_type"), + GMFGraphPackage.eINSTANCE.getNode_AffixedParentSide(), + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** * This returns Node.gif. * * @@ -120,6 +143,7 @@ switch (notification.getFeatureID(Node.class)) { case GMFGraphPackage.NODE__RESIZE_CONSTRAINT: + case GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } #P org.eclipse.gmf.bridge Index: src/org/eclipse/gmf/internal/bridge/genmodel/DiagramGenModelTransformer.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.bridge/src/org/eclipse/gmf/internal/bridge/genmodel/DiagramGenModelTransformer.java,v retrieving revision 1.1 diff -u -r1.1 DiagramGenModelTransformer.java --- src/org/eclipse/gmf/internal/bridge/genmodel/DiagramGenModelTransformer.java 26 Jun 2006 14:05:04 -0000 1.1 +++ src/org/eclipse/gmf/internal/bridge/genmodel/DiagramGenModelTransformer.java 24 Aug 2006 17:28:02 -0000 @@ -43,6 +43,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenChildContainer; import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode; import org.eclipse.gmf.codegen.gmfgen.GenChildNode; +import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode; import org.eclipse.gmf.codegen.gmfgen.GenCommonBase; import org.eclipse.gmf.codegen.gmfgen.GenCompartment; import org.eclipse.gmf.codegen.gmfgen.GenConstraint; @@ -84,7 +85,9 @@ import org.eclipse.gmf.gmfgraph.Alignment; import org.eclipse.gmf.gmfgraph.AlignmentFacet; import org.eclipse.gmf.gmfgraph.Compartment; +import org.eclipse.gmf.gmfgraph.Direction; import org.eclipse.gmf.gmfgraph.LabelOffsetFacet; +import org.eclipse.gmf.gmfgraph.Node; import org.eclipse.gmf.internal.bridge.History; import org.eclipse.gmf.internal.bridge.Knowledge; import org.eclipse.gmf.internal.bridge.NaiveIdentifierDispenser; @@ -337,6 +340,13 @@ childLabelNode.setLabelElementIcon(soleLabel.getDiagramLabel().isElementIcon()); childNode = childLabelNode; needCompartmentChildrenLabelProcessing = false; + } else if (childNodeMapping.getDiagramNode().getAffixedParentSide() != Direction.NONE_LITERAL){ + GenChildSideAffixedNode sideAffixedNode = GMFGenFactory.eINSTANCE.createGenChildSideAffixedNode(); + sideAffixedNode.setViewmap(myViewmaps.create(childNodeMapping.getDiagramNode())); + String positionConstantName = getAffixedSideAsPositionConstantsName(childNodeMapping.getDiagramNode()); + sideAffixedNode.setPreferredSideName(positionConstantName); + childNode = sideAffixedNode; + needCompartmentChildrenLabelProcessing = true; } else { childNode = GMFGenFactory.eINSTANCE.createGenChildNode(); childNode.setViewmap(myViewmaps.create(childNodeMapping.getDiagramNode())); @@ -361,6 +371,27 @@ return childNode; } + private String getAffixedSideAsPositionConstantsName(Node diagramNode) { + Direction affixedSide = diagramNode.getAffixedParentSide(); + final String ANY_SIDE = "NONE"; + switch (affixedSide.getValue()){ + case Direction.NONE : + throw new IllegalStateException("DiagramNode: " + diagramNode + " is not side-affixed"); + case Direction.EAST : + case Direction.NORTH : + case Direction.WEST : + case Direction.SOUTH : + return affixedSide.getName(); + + case Direction.NSEW: + return ANY_SIDE; + + default: + //Runtime does not support this + return ANY_SIDE; + } + } + /** * @return whether nodeMapping has single label, no children and node's diagram * element is DiagramLabel equivalent that of it's label #P org.eclipse.gmf.codegen Index: src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java,v retrieving revision 1.143 diff -u -r1.143 GMFGenPackageImpl.java --- src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java 7 Jul 2006 11:58:57 -0000 1.143 +++ src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java 24 Aug 2006 17:28:14 -0000 @@ -41,6 +41,7 @@ import org.eclipse.gmf.codegen.gmfgen.GenChildContainer; import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode; import org.eclipse.gmf.codegen.gmfgen.GenChildNode; +import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode; import org.eclipse.gmf.codegen.gmfgen.GenCommonBase; import org.eclipse.gmf.codegen.gmfgen.GenCompartment; import org.eclipse.gmf.codegen.gmfgen.GenConstraint; @@ -274,6 +275,13 @@ * * @generated */ + private EClass genChildSideAffixedNodeEClass = null; + + /** + * + * + * @generated + */ private EClass genChildLabelNodeEClass = null; /** @@ -2147,6 +2155,24 @@ * * @generated */ + public EClass getGenChildSideAffixedNode() { + return genChildSideAffixedNodeEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getGenChildSideAffixedNode_PreferredSideName() { + return (EAttribute)genChildSideAffixedNodeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ public EClass getGenChildLabelNode() { return genChildLabelNodeEClass; } @@ -4077,6 +4103,9 @@ createEReference(genChildNodeEClass, GEN_CHILD_NODE__DIAGRAM); createEReference(genChildNodeEClass, GEN_CHILD_NODE__CONTAINERS); + genChildSideAffixedNodeEClass = createEClass(GEN_CHILD_SIDE_AFFIXED_NODE); + createEAttribute(genChildSideAffixedNodeEClass, GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME); + genChildLabelNodeEClass = createEClass(GEN_CHILD_LABEL_NODE); createEAttribute(genChildLabelNodeEClass, GEN_CHILD_LABEL_NODE__LABEL_READ_ONLY); createEAttribute(genChildLabelNodeEClass, GEN_CHILD_LABEL_NODE__LABEL_ELEMENT_ICON); @@ -4385,6 +4414,7 @@ genNodeEClass.getESuperTypes().add(this.getGenChildContainer()); genTopLevelNodeEClass.getESuperTypes().add(this.getGenNode()); genChildNodeEClass.getESuperTypes().add(this.getGenNode()); + genChildSideAffixedNodeEClass.getESuperTypes().add(this.getGenChildNode()); genChildLabelNodeEClass.getESuperTypes().add(this.getGenChildNode()); genCompartmentEClass.getESuperTypes().add(this.getGenChildContainer()); genLinkEClass.getESuperTypes().add(this.getGenCommonBase()); @@ -4746,6 +4776,9 @@ initEReference(getGenChildNode_Diagram(), this.getGenDiagram(), this.getGenDiagram_ChildNodes(), "diagram", null, 1, 1, GenChildNode.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getGenChildNode_Containers(), this.getGenChildContainer(), this.getGenChildContainer_ChildNodes(), "containers", null, 0, -1, GenChildNode.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(genChildSideAffixedNodeEClass, GenChildSideAffixedNode.class, "GenChildSideAffixedNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getGenChildSideAffixedNode_PreferredSideName(), ecorePackage.getEString(), "preferredSideName", "NONE", 0, 1, GenChildSideAffixedNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(genChildLabelNodeEClass, GenChildLabelNode.class, "GenChildLabelNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getGenChildLabelNode_LabelReadOnly(), ecorePackage.getEBoolean(), "labelReadOnly", null, 0, 1, GenChildLabelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getGenChildLabelNode_LabelElementIcon(), ecorePackage.getEBoolean(), "labelElementIcon", null, 0, 1, GenChildLabelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); Index: src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java,v retrieving revision 1.54 diff -u -r1.54 GMFGenFactoryImpl.java --- src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java 7 Jul 2006 11:58:56 -0000 1.54 +++ src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java 24 Aug 2006 17:28:11 -0000 @@ -118,6 +118,7 @@ case GMFGenPackage.CUSTOM_BEHAVIOUR: return createCustomBehaviour(); case GMFGenPackage.GEN_TOP_LEVEL_NODE: return createGenTopLevelNode(); case GMFGenPackage.GEN_CHILD_NODE: return createGenChildNode(); + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE: return createGenChildSideAffixedNode(); case GMFGenPackage.GEN_CHILD_LABEL_NODE: return createGenChildLabelNode(); case GMFGenPackage.GEN_COMPARTMENT: return createGenCompartment(); case GMFGenPackage.GEN_LINK: return createGenLink(); @@ -289,6 +290,16 @@ * * @generated */ + public GenChildSideAffixedNode createGenChildSideAffixedNode() { + GenChildSideAffixedNodeImpl genChildSideAffixedNode = new GenChildSideAffixedNodeImpl(); + return genChildSideAffixedNode; + } + + /** + * + * + * @generated + */ public GenChildLabelNode createGenChildLabelNode() { GenChildLabelNodeImpl genChildLabelNode = new GenChildLabelNodeImpl(); return genChildLabelNode; Index: src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java,v retrieving revision 1.97 diff -u -r1.97 NodeEditPartGenerator.java --- src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java 7 Jul 2006 11:58:56 -0000 1.97 +++ src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java 24 Aug 2006 17:28:07 -0000 @@ -48,172 +48,196 @@ protected final String TEXT_29 = ".VISUAL_ID));" + NL + "\t\t\t\t\t\t\treturn compartmentEditPart == null ? null : compartmentEditPart.getCommand(request);" + NL + "\t\t\t\t\t\t}"; protected final String TEXT_30 = NL + "\t\t\t\t\t}" + NL + "\t\t\t\t\treturn super.getCommand(request);" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t}"; protected final String TEXT_31 = NL + "\t\t);"; - protected final String TEXT_32 = NL + "\t\tsuper.createDefaultEditPolicies();" + NL + "\t\tinstallEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new "; - protected final String TEXT_33 = "());" + NL + "\t\tinstallEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new "; - protected final String TEXT_34 = "());"; - protected final String TEXT_35 = NL + "\t\tinstallEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new "; + protected final String TEXT_32 = NL + "\t\tsuper.createDefaultEditPolicies();"; + protected final String TEXT_33 = NL + "\t\tinstallEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy());"; + protected final String TEXT_34 = "\t\t" + NL + "\t\tinstallEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new "; + protected final String TEXT_35 = "());" + NL + "\t\tinstallEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new "; protected final String TEXT_36 = "());"; - protected final String TEXT_37 = NL + "\t\tinstallEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new "; + protected final String TEXT_37 = NL + "\t\tinstallEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new "; protected final String TEXT_38 = "());"; - protected final String TEXT_39 = NL + "\t\tinstallEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());"; - protected final String TEXT_40 = NL; - protected final String TEXT_41 = NL + "\t\tinstallEditPolicy(\""; - protected final String TEXT_42 = "\", new "; - protected final String TEXT_43 = "()); //$NON-NLS-1$"; - protected final String TEXT_44 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; - protected final String TEXT_45 = " createLayoutEditPolicy() {"; - protected final String TEXT_46 = NL + "\t\t"; - protected final String TEXT_47 = " lep = new "; - protected final String TEXT_48 = "() {"; - protected final String TEXT_49 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; - protected final String TEXT_50 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; - protected final String TEXT_51 = " child) {" + NL + "\t\t\t\tEditPolicy result = super.createChildEditPolicy(child);" + NL + "\t\t\t\tif (result == null) {" + NL + "\t\t\t\t\treturn new "; - protected final String TEXT_52 = "();" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t};"; - protected final String TEXT_53 = NL + "\t\t"; - protected final String TEXT_54 = " xlep = new "; - protected final String TEXT_55 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; - protected final String TEXT_56 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; - protected final String TEXT_57 = NL + "\t\treturn lep;"; - protected final String TEXT_58 = NL + "\t\t"; - protected final String TEXT_59 = " lep = new "; - protected final String TEXT_60 = "() {"; - protected final String TEXT_61 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; - protected final String TEXT_62 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; - protected final String TEXT_63 = " child) {" + NL + "\t\t\t\tif (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) {" + NL + "\t\t\t\t\tif (child instanceof "; - protected final String TEXT_64 = ") {" + NL + "\t\t\t\t\t\treturn new "; - protected final String TEXT_65 = "();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn super.createChildEditPolicy(child);" + NL + "\t\t\t}" + NL + "\t\t};"; - protected final String TEXT_66 = NL + "\t\t"; - protected final String TEXT_67 = " xlep = new "; - protected final String TEXT_68 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; - protected final String TEXT_69 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; - protected final String TEXT_70 = NL + "\t\treturn lep;"; - protected final String TEXT_71 = NL + "\t\t"; - protected final String TEXT_72 = " lep = new "; - protected final String TEXT_73 = "() {"; - protected final String TEXT_74 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; - protected final String TEXT_75 = NL + NL + "\t\t\tprotected "; - protected final String TEXT_76 = " createAddCommand("; - protected final String TEXT_77 = " child, "; - protected final String TEXT_78 = " after) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; - protected final String TEXT_79 = " createMoveChildCommand("; - protected final String TEXT_80 = " child, "; - protected final String TEXT_81 = " after) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; - protected final String TEXT_82 = " getCreateCommand("; - protected final String TEXT_83 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t};"; - protected final String TEXT_84 = NL + "\t\t"; - protected final String TEXT_85 = " xlep = new "; - protected final String TEXT_86 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; - protected final String TEXT_87 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; - protected final String TEXT_88 = NL + "\t\treturn lep;"; - protected final String TEXT_89 = NL + "\t\t"; - protected final String TEXT_90 = " lep = new "; - protected final String TEXT_91 = "() {"; - protected final String TEXT_92 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; - protected final String TEXT_93 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; - protected final String TEXT_94 = " child) {" + NL + "\t\t\t\tEditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);" + NL + "\t\t\t\tif( result == null ){" + NL + "\t\t\t\t\tresult = new "; - protected final String TEXT_95 = "();" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; - protected final String TEXT_96 = " getMoveChildrenCommand("; - protected final String TEXT_97 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; - protected final String TEXT_98 = " getCreateCommand("; - protected final String TEXT_99 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t};"; - protected final String TEXT_100 = NL + "\t\t"; - protected final String TEXT_101 = " xlep = new "; - protected final String TEXT_102 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; - protected final String TEXT_103 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; - protected final String TEXT_104 = NL + "\t\treturn lep;"; - protected final String TEXT_105 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure createNodeShape() {"; - protected final String TEXT_106 = NL + "\t\treturn primaryShape = new "; - protected final String TEXT_107 = "()"; - protected final String TEXT_108 = " {" + NL + "\t\t\tprotected boolean useLocalCoordinates() {" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t}"; - protected final String TEXT_109 = ";"; - protected final String TEXT_110 = NL + "\t\treturn "; - protected final String TEXT_111 = ";"; - protected final String TEXT_112 = NL + "\t\t"; - protected final String TEXT_113 = " figure = new "; - protected final String TEXT_114 = "();"; - protected final String TEXT_115 = NL + " \t\tfigure.setUseLocalCoordinates(true);"; - protected final String TEXT_116 = NL + " \t\treturn primaryShape = figure;"; - protected final String TEXT_117 = NL + "\t}"; - protected final String TEXT_118 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; - protected final String TEXT_119 = " getPrimaryShape() {" + NL + "\t\treturn ("; - protected final String TEXT_120 = ") primaryShape;" + NL + "\t}"; - protected final String TEXT_121 = NL; - protected final String TEXT_122 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean addFixedChild(EditPart childEditPart) {"; - protected final String TEXT_123 = NL + "\t\tif (childEditPart instanceof "; - protected final String TEXT_124 = ") {" + NL + "\t\t\t(("; - protected final String TEXT_125 = ") childEditPart)."; - protected final String TEXT_126 = "(getPrimaryShape()."; - protected final String TEXT_127 = "());" + NL + "\t\t\treturn true;" + NL + "\t\t}"; - protected final String TEXT_128 = NL + "\t\tif (childEditPart instanceof "; - protected final String TEXT_129 = ") {" + NL + "\t\t\t"; - protected final String TEXT_130 = " pane = getPrimaryShape()."; - protected final String TEXT_131 = "();" + NL + "\t\t\tsetupContentPane(pane); // FIXME each comparment should handle his content pane in his own way " + NL + "\t\t\tpane.add((("; - protected final String TEXT_132 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t"; - protected final String TEXT_133 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean removeFixedChild(EditPart childEditPart) {"; - protected final String TEXT_134 = "\t\t" + NL + "\t\tif (childEditPart instanceof "; - protected final String TEXT_135 = ") {" + NL + "\t\t\t"; - protected final String TEXT_136 = " pane = getPrimaryShape()."; - protected final String TEXT_137 = "();" + NL + "\t\t\tpane.remove((("; - protected final String TEXT_138 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t"; - protected final String TEXT_139 = NL + "\t\treturn false;" + NL + "\t}"; - protected final String TEXT_140 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; - protected final String TEXT_141 = " createNodePlate() {"; - protected final String TEXT_142 = NL + "\t\treturn new "; - protected final String TEXT_143 = "(getMapMode().DPtoLP("; - protected final String TEXT_144 = "), getMapMode().DPtoLP("; - protected final String TEXT_145 = "));" + NL + "\t}"; - protected final String TEXT_146 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditPolicy getPrimaryDragEditPolicy() {" + NL + "\t\t"; - protected final String TEXT_147 = " ep = ("; - protected final String TEXT_148 = ") super.getPrimaryDragEditPolicy();" + NL + "\t\t"; - protected final String TEXT_149 = NL + "\t\tep.setResizeDirections("; - protected final String TEXT_150 = ".NONE);" + NL + "\t\t"; - protected final String TEXT_151 = NL + "\t\tep.setResizeDirections("; - protected final String TEXT_152 = "."; - protected final String TEXT_153 = " | "; - protected final String TEXT_154 = ");" + NL + "\t\t"; - protected final String TEXT_155 = NL + "\t\treturn ep;" + NL + "\t}"; - protected final String TEXT_156 = NL + "\t/**" + NL + "\t * Creates figure for this edit part." + NL + "\t * " + NL + "\t * Body of this method does not depend on settings in generation model" + NL + "\t * so you may safely remove generated tag and modify it." + NL + "\t * " + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; - protected final String TEXT_157 = " createNodeFigure() {" + NL + "\t\t"; - protected final String TEXT_158 = " figure = createNodePlate();" + NL + "\t\tfigure.setLayoutManager(new StackLayout());" + NL + "\t\tIFigure shape = createNodeShape();" + NL + "\t\tfigure.add(shape);" + NL + "\t\tcontentPane = setupContentPane(shape);" + NL + "\t\treturn figure;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Default implementation treats passed figure as content pane." + NL + "\t * Respects layout one may have set for generated figure." + NL + "\t * @param nodeShape instance of generated figure class" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure setupContentPane(IFigure nodeShape) {" + NL + "\t\tif (nodeShape.getLayoutManager() == null) {"; - protected final String TEXT_159 = NL + "\t\tnodeShape.setLayoutManager(new "; - protected final String TEXT_160 = "() {" + NL + "" + NL + "\t\t\tpublic Object getConstraint(IFigure figure) {" + NL + "\t\t\t\tObject result = constraints.get(figure);" + NL + "\t\t\t\tif (result == null) {" + NL + "\t\t\t\t\tresult = new "; - protected final String TEXT_161 = "(0, 0, -1, -1);" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t});"; - protected final String TEXT_162 = NL + "\t\t\t"; - protected final String TEXT_163 = " layout = new "; - protected final String TEXT_164 = "();" + NL + "\t\t\tlayout.setSpacing(getMapMode().DPtoLP(5));" + NL + "\t\t\tnodeShape.setLayoutManager(layout);"; - protected final String TEXT_165 = NL + "\t\t}" + NL + "\t\treturn nodeShape; // use nodeShape itself as contentPane" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IFigure getContentPane() {" + NL + "\t\tif (contentPane != null) {" + NL + "\t\t\treturn contentPane;" + NL + "\t\t}" + NL + "\t\treturn super.getContentPane();" + NL + "\t}"; - protected final String TEXT_166 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; - protected final String TEXT_167 = " getPrimaryChildEditPart() {" + NL + "\t\treturn getChildBySemanticHint("; - protected final String TEXT_168 = ".getType("; - protected final String TEXT_169 = ".VISUAL_ID));" + NL + "\t}"; - protected final String TEXT_170 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isExternalLabel("; - protected final String TEXT_171 = " childEditPart) {"; - protected final String TEXT_172 = NL + "\t\tif (childEditPart instanceof "; - protected final String TEXT_173 = ") {" + NL + "\t\t\treturn true;" + NL + "\t\t}"; - protected final String TEXT_174 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure getExternalLabelsContainer() {" + NL + "\t\t"; - protected final String TEXT_175 = " root = ("; - protected final String TEXT_176 = ") getRoot();" + NL + "\t\treturn root.getLayer("; - protected final String TEXT_177 = ".EXTERNAL_NODE_LABELS_LAYER);" + NL + "\t}" + NL; - protected final String TEXT_178 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual("; - protected final String TEXT_179 = " childEditPart, int index) {"; - protected final String TEXT_180 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = (("; - protected final String TEXT_181 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().add(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} "; - protected final String TEXT_182 = "\t\t" + NL + "\t\tif (addFixedChild(childEditPart)) {" + NL + "\t\t\treturn;" + NL + "\t\t}"; - protected final String TEXT_183 = NL + "\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void removeChildVisual("; - protected final String TEXT_184 = " childEditPart) {"; - protected final String TEXT_185 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = (("; - protected final String TEXT_186 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} "; - protected final String TEXT_187 = NL + "\t\tif (removeFixedChild(childEditPart)){" + NL + "\t\t\treturn;" + NL + "\t\t}"; - protected final String TEXT_188 = NL + "\t\tsuper.removeChildVisual(childEditPart);" + NL + "\t}"; - protected final String TEXT_189 = "\t\t" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void removeNotify() {" + NL + "\t\tfor ("; - protected final String TEXT_190 = " it = getChildren().iterator(); it.hasNext();) {" + NL + "\t\t\t"; - protected final String TEXT_191 = " childEditPart = ("; - protected final String TEXT_192 = ") it.next();" + NL + "\t\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\t\tIFigure labelFigure = (("; - protected final String TEXT_193 = ") childEditPart).getFigure();" + NL + "\t\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tsuper.removeNotify();" + NL + "\t}"; - protected final String TEXT_194 = "\t" + NL; - protected final String TEXT_195 = NL; - protected final String TEXT_196 = NL + "}"; - protected final String TEXT_197 = NL; + protected final String TEXT_39 = NL + "\t\tinstallEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new "; + protected final String TEXT_40 = "());"; + protected final String TEXT_41 = NL + "\t\tinstallEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());"; + protected final String TEXT_42 = NL; + protected final String TEXT_43 = NL + "\t\tinstallEditPolicy(\""; + protected final String TEXT_44 = "\", new "; + protected final String TEXT_45 = "()); //$NON-NLS-1$"; + protected final String TEXT_46 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; + protected final String TEXT_47 = " createLayoutEditPolicy() {"; + protected final String TEXT_48 = NL + "\t\t"; + protected final String TEXT_49 = " lep = new "; + protected final String TEXT_50 = "() {"; + protected final String TEXT_51 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; + protected final String TEXT_52 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; + protected final String TEXT_53 = " child) {" + NL + "\t\t\t\tEditPolicy result = super.createChildEditPolicy(child);" + NL + "\t\t\t\tif (result == null) {" + NL + "\t\t\t\t\treturn new "; + protected final String TEXT_54 = "();" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t};"; + protected final String TEXT_55 = NL + "\t\t"; + protected final String TEXT_56 = " xlep = new "; + protected final String TEXT_57 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; + protected final String TEXT_58 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; + protected final String TEXT_59 = NL + "\t\treturn lep;"; + protected final String TEXT_60 = NL + "\t\t"; + protected final String TEXT_61 = " lep = new "; + protected final String TEXT_62 = "() {"; + protected final String TEXT_63 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; + protected final String TEXT_64 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; + protected final String TEXT_65 = " child) {" + NL + "\t\t\t\tif (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) {" + NL + "\t\t\t\t\tif (child instanceof "; + protected final String TEXT_66 = ") {" + NL + "\t\t\t\t\t\treturn new "; + protected final String TEXT_67 = "();" + NL + "\t\t\t\t\t}" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn super.createChildEditPolicy(child);" + NL + "\t\t\t}" + NL + "\t\t};"; + protected final String TEXT_68 = NL + "\t\t"; + protected final String TEXT_69 = " xlep = new "; + protected final String TEXT_70 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; + protected final String TEXT_71 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; + protected final String TEXT_72 = NL + "\t\treturn lep;"; + protected final String TEXT_73 = NL + "\t\t"; + protected final String TEXT_74 = " lep = new "; + protected final String TEXT_75 = "() {"; + protected final String TEXT_76 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; + protected final String TEXT_77 = NL; + protected final String TEXT_78 = NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; + protected final String TEXT_79 = " child) {" + NL + "\t\t\t\tif (child instanceof "; + protected final String TEXT_80 = ") {" + NL + "\t\t\t\t\treturn new "; + protected final String TEXT_81 = "();" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn super.createChildEditPolicy(child);" + NL + "\t\t\t}"; + protected final String TEXT_82 = NL + NL + "\t\t\tprotected "; + protected final String TEXT_83 = " createAddCommand("; + protected final String TEXT_84 = " child, "; + protected final String TEXT_85 = " after) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; + protected final String TEXT_86 = " createMoveChildCommand("; + protected final String TEXT_87 = " child, "; + protected final String TEXT_88 = " after) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; + protected final String TEXT_89 = " getCreateCommand("; + protected final String TEXT_90 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t};"; + protected final String TEXT_91 = NL + "\t\t"; + protected final String TEXT_92 = " xlep = new "; + protected final String TEXT_93 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; + protected final String TEXT_94 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; + protected final String TEXT_95 = NL + "\t\treturn lep;"; + protected final String TEXT_96 = NL + "\t\t"; + protected final String TEXT_97 = " lep = new "; + protected final String TEXT_98 = "() {"; + protected final String TEXT_99 = NL + NL + "\t\t\tprotected void decorateChild(EditPart child) {" + NL + "\t\t\t\tif (isExternalLabel(child)) {" + NL + "\t\t\t\t\treturn;" + NL + "\t\t\t\t}" + NL + "\t\t\t\tsuper.decorateChild(child);" + NL + "\t\t\t}"; + protected final String TEXT_100 = NL + NL + "\t\t\tprotected EditPolicy createChildEditPolicy("; + protected final String TEXT_101 = " child) {" + NL + "\t\t\t\tEditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);" + NL + "\t\t\t\tif( result == null ){" + NL + "\t\t\t\t\tresult = new "; + protected final String TEXT_102 = "();" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; + protected final String TEXT_103 = " getMoveChildrenCommand("; + protected final String TEXT_104 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "" + NL + "\t\t\tprotected "; + protected final String TEXT_105 = " getCreateCommand("; + protected final String TEXT_106 = " request) {" + NL + "\t\t\t\treturn null;" + NL + "\t\t\t}" + NL + "\t\t};"; + protected final String TEXT_107 = NL + "\t\t"; + protected final String TEXT_108 = " xlep = new "; + protected final String TEXT_109 = "() {" + NL + "" + NL + "\t\t\tprotected boolean isExternalLabel(EditPart editPart) {" + NL + "\t\t\t\treturn "; + protected final String TEXT_110 = ".this.isExternalLabel(editPart);" + NL + "\t\t\t}" + NL + "\t\t};" + NL + "\t\txlep.setRealLayoutEditPolicy(lep);" + NL + "\t\treturn xlep;"; + protected final String TEXT_111 = NL + "\t\treturn lep;"; + protected final String TEXT_112 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure createNodeShape() {"; + protected final String TEXT_113 = NL + "\t\treturn primaryShape = new "; + protected final String TEXT_114 = "()"; + protected final String TEXT_115 = " {" + NL + "\t\t\tprotected boolean useLocalCoordinates() {" + NL + "\t\t\t\treturn true;" + NL + "\t\t\t}" + NL + "\t\t}"; + protected final String TEXT_116 = ";"; + protected final String TEXT_117 = NL + "\t\treturn "; + protected final String TEXT_118 = ";"; + protected final String TEXT_119 = NL + "\t\t"; + protected final String TEXT_120 = " figure = new "; + protected final String TEXT_121 = "();"; + protected final String TEXT_122 = NL + " \t\tfigure.setUseLocalCoordinates(true);"; + protected final String TEXT_123 = NL + " \t\treturn primaryShape = figure;"; + protected final String TEXT_124 = NL + "\t}"; + protected final String TEXT_125 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; + protected final String TEXT_126 = " getPrimaryShape() {" + NL + "\t\treturn ("; + protected final String TEXT_127 = ") primaryShape;" + NL + "\t}"; + protected final String TEXT_128 = NL; + protected final String TEXT_129 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean addFixedChild(EditPart childEditPart) {"; + protected final String TEXT_130 = NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_131 = ") {" + NL + "\t\t\t(("; + protected final String TEXT_132 = ") childEditPart)."; + protected final String TEXT_133 = "(getPrimaryShape()."; + protected final String TEXT_134 = "());" + NL + "\t\t\treturn true;" + NL + "\t\t}"; + protected final String TEXT_135 = NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_136 = ") {" + NL + "\t\t\t"; + protected final String TEXT_137 = " pane = getPrimaryShape()."; + protected final String TEXT_138 = "();" + NL + "\t\t\tsetupContentPane(pane); // FIXME each comparment should handle his content pane in his own way " + NL + "\t\t\tpane.add((("; + protected final String TEXT_139 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t"; + protected final String TEXT_140 = NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_141 = ") {" + NL + "\t\t\t"; + protected final String TEXT_142 = " locator = new "; + protected final String TEXT_143 = "(getMainFigure(), "; + protected final String TEXT_144 = "."; + protected final String TEXT_145 = ");" + NL + "\t\t\tgetBorderedFigure().getBorderItemContainer().add((("; + protected final String TEXT_146 = ")childEditPart).getFigure(), locator);" + NL + "\t\t\treturn true;" + NL + "\t\t}"; + protected final String TEXT_147 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean removeFixedChild(EditPart childEditPart) {"; + protected final String TEXT_148 = "\t\t" + NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_149 = ") {" + NL + "\t\t\t"; + protected final String TEXT_150 = " pane = getPrimaryShape()."; + protected final String TEXT_151 = "();" + NL + "\t\t\tpane.remove((("; + protected final String TEXT_152 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t"; + protected final String TEXT_153 = NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_154 = ") {" + NL + "\t\t\tgetBorderedFigure().getBorderItemContainer().remove((("; + protected final String TEXT_155 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}"; + protected final String TEXT_156 = NL + "\t\treturn false;" + NL + "\t}"; + protected final String TEXT_157 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; + protected final String TEXT_158 = " createNodePlate() {"; + protected final String TEXT_159 = NL + "\t\t"; + protected final String TEXT_160 = " result = new "; + protected final String TEXT_161 = "(getMapMode().DPtoLP("; + protected final String TEXT_162 = "), getMapMode().DPtoLP("; + protected final String TEXT_163 = "));"; + protected final String TEXT_164 = NL + "\t\t//FIXME: workaround for #154536" + NL + "\t\tresult.getBounds().setSize(result.getPreferredSize());"; + protected final String TEXT_165 = "\t\t" + NL + "\t\treturn result;" + NL + "\t}"; + protected final String TEXT_166 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditPolicy getPrimaryDragEditPolicy() {" + NL + "\t\t"; + protected final String TEXT_167 = " ep = ("; + protected final String TEXT_168 = ") super.getPrimaryDragEditPolicy();" + NL + "\t\t"; + protected final String TEXT_169 = NL + "\t\tep.setResizeDirections("; + protected final String TEXT_170 = ".NONE);" + NL + "\t\t"; + protected final String TEXT_171 = NL + "\t\tep.setResizeDirections("; + protected final String TEXT_172 = "."; + protected final String TEXT_173 = " | "; + protected final String TEXT_174 = ");" + NL + "\t\t"; + protected final String TEXT_175 = NL + "\t\treturn ep;" + NL + "\t}"; + protected final String TEXT_176 = NL; + protected final String TEXT_177 = "\t " + NL + "\t/**" + NL + "\t * Creates figure for this edit part." + NL + "\t * " + NL + "\t * Body of this method does not depend on settings in generation model" + NL + "\t * so you may safely remove generated tag and modify it." + NL + "\t * " + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; + protected final String TEXT_178 = " createMainFigure() {"; + protected final String TEXT_179 = NL + "\t/**" + NL + "\t * Creates figure for this edit part." + NL + "\t * " + NL + "\t * Body of this method does not depend on settings in generation model" + NL + "\t * so you may safely remove generated tag and modify it." + NL + "\t * " + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected "; + protected final String TEXT_180 = " createNodeFigure() {"; + protected final String TEXT_181 = NL + "\t\t"; + protected final String TEXT_182 = " figure = createNodePlate();" + NL + "\t\tfigure.setLayoutManager(new StackLayout());" + NL + "\t\tIFigure shape = createNodeShape();" + NL + "\t\tfigure.add(shape);" + NL + "\t\tcontentPane = setupContentPane(shape);" + NL + "\t\treturn figure;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * Default implementation treats passed figure as content pane." + NL + "\t * Respects layout one may have set for generated figure." + NL + "\t * @param nodeShape instance of generated figure class" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure setupContentPane(IFigure nodeShape) {" + NL + "\t\tif (nodeShape.getLayoutManager() == null) {"; + protected final String TEXT_183 = NL + "\t\tnodeShape.setLayoutManager(new "; + protected final String TEXT_184 = "() {" + NL + "" + NL + "\t\t\tpublic Object getConstraint(IFigure figure) {" + NL + "\t\t\t\tObject result = constraints.get(figure);" + NL + "\t\t\t\tif (result == null) {" + NL + "\t\t\t\t\tresult = new "; + protected final String TEXT_185 = "(0, 0, -1, -1);" + NL + "\t\t\t\t}" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t});"; + protected final String TEXT_186 = NL + "\t\t\t"; + protected final String TEXT_187 = " layout = new "; + protected final String TEXT_188 = "();" + NL + "\t\t\tlayout.setSpacing(getMapMode().DPtoLP(5));" + NL + "\t\t\tnodeShape.setLayoutManager(layout);"; + protected final String TEXT_189 = NL + "\t\t}" + NL + "\t\treturn nodeShape; // use nodeShape itself as contentPane" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic IFigure getContentPane() {" + NL + "\t\tif (contentPane != null) {" + NL + "\t\t\treturn contentPane;" + NL + "\t\t}" + NL + "\t\treturn super.getContentPane();" + NL + "\t}"; + protected final String TEXT_190 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic "; + protected final String TEXT_191 = " getPrimaryChildEditPart() {" + NL + "\t\treturn getChildBySemanticHint("; + protected final String TEXT_192 = ".getType("; + protected final String TEXT_193 = ".VISUAL_ID));" + NL + "\t}"; + protected final String TEXT_194 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isExternalLabel("; + protected final String TEXT_195 = " childEditPart) {"; + protected final String TEXT_196 = NL + "\t\tif (childEditPart instanceof "; + protected final String TEXT_197 = ") {" + NL + "\t\t\treturn true;" + NL + "\t\t}"; + protected final String TEXT_198 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected IFigure getExternalLabelsContainer() {" + NL + "\t\t"; + protected final String TEXT_199 = " root = ("; + protected final String TEXT_200 = ") getRoot();" + NL + "\t\treturn root.getLayer("; + protected final String TEXT_201 = ".EXTERNAL_NODE_LABELS_LAYER);" + NL + "\t}" + NL; + protected final String TEXT_202 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual("; + protected final String TEXT_203 = " childEditPart, int index) {"; + protected final String TEXT_204 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = (("; + protected final String TEXT_205 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().add(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} "; + protected final String TEXT_206 = "\t\t" + NL + "\t\tif (addFixedChild(childEditPart)) {" + NL + "\t\t\treturn;" + NL + "\t\t}"; + protected final String TEXT_207 = NL + "\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void removeChildVisual("; + protected final String TEXT_208 = " childEditPart) {"; + protected final String TEXT_209 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = (("; + protected final String TEXT_210 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} "; + protected final String TEXT_211 = NL + "\t\tif (removeFixedChild(childEditPart)){" + NL + "\t\t\treturn;" + NL + "\t\t}"; + protected final String TEXT_212 = NL + "\t\tsuper.removeChildVisual(childEditPart);" + NL + "\t}"; + protected final String TEXT_213 = "\t\t" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void removeNotify() {" + NL + "\t\tfor ("; + protected final String TEXT_214 = " it = getChildren().iterator(); it.hasNext();) {" + NL + "\t\t\t"; + protected final String TEXT_215 = " childEditPart = ("; + protected final String TEXT_216 = ") it.next();" + NL + "\t\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\t\tIFigure labelFigure = (("; + protected final String TEXT_217 = ") childEditPart).getFigure();" + NL + "\t\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tsuper.removeNotify();" + NL + "\t}"; + protected final String TEXT_218 = "\t" + NL; + protected final String TEXT_219 = NL; + protected final String TEXT_220 = NL + "}"; + protected final String TEXT_221 = NL; protected final String getFeatureValueGetter(String containerName, GenFeature feature, boolean isContainerEObject, ImportAssistant importManager) { StringBuffer result = new StringBuffer(); @@ -325,8 +349,11 @@ private final List myExternalLabels = new LinkedList(); private final List myPinnedCompartments = new LinkedList(); private final List myFloatingCompartments = new LinkedList(); + private final List mySideAffixedChildren = new LinkedList(); private GenNodeLabel myPrimaryLabel; private boolean myHasChildrenInListCompartments = false; + private final boolean myIsSideAffixed; + private final boolean myHasSideAffixedChildren; public NodeEditPartHelper(GenNode genNode){ myPrimaryLabel = null; @@ -353,6 +380,36 @@ myHasChildrenInListCompartments |= next.isListLayout() && !next.getChildNodes().isEmpty(); } + + for (Iterator childNodes = genNode.getChildNodes().iterator(); childNodes.hasNext();){ + GenChildNode next = (GenChildNode)childNodes.next(); + if (next instanceof GenChildSideAffixedNode){ + mySideAffixedChildren.add(next); + } + } + + myIsSideAffixed = genNode instanceof GenChildSideAffixedNode; + myHasSideAffixedChildren = !mySideAffixedChildren.isEmpty(); + } + + public boolean isSideAffixed(){ + return myIsSideAffixed; + } + + public boolean hasSideAffixedChildren(){ + return myHasSideAffixedChildren; + } + + public String getEditPartSuperClassFQN(){ + if (isSideAffixed()){ + return hasSideAffixedChildren() ? + "org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart" : + "org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart"; + } else { + return hasSideAffixedChildren() ? + "org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart" : + "org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart"; + } } public boolean hasChildrenInListCompartments(){ @@ -390,6 +447,10 @@ public Iterator getPinnedCompartments(){ return myPinnedCompartments.iterator(); } + + public Iterator getSideAffixedChildren(){ + return mySideAffixedChildren.iterator(); + } } final NodeEditPartHelper myHelper = new NodeEditPartHelper(genNode); @@ -420,7 +481,7 @@ stringBuffer.append(TEXT_5); stringBuffer.append(genNode.getEditPartClassName()); stringBuffer.append(TEXT_6); - stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart")); + stringBuffer.append(importManager.getImportedName(myHelper.getEditPartSuperClassFQN())); stringBuffer.append(TEXT_7); { GenCommonBase genCommonBase = genNode; stringBuffer.append(TEXT_8); @@ -483,177 +544,191 @@ stringBuffer.append(TEXT_31); } stringBuffer.append(TEXT_32); - stringBuffer.append(importManager.getImportedName(genNode.getItemSemanticEditPolicyQualifiedClassName())); + if (myHelper.isSideAffixed()){ stringBuffer.append(TEXT_33); - stringBuffer.append(importManager.getImportedName(genNode.getGraphicalNodeEditPolicyQualifiedClassName())); + } stringBuffer.append(TEXT_34); - if (!genNode.getChildNodes().isEmpty()) { + stringBuffer.append(importManager.getImportedName(genNode.getItemSemanticEditPolicyQualifiedClassName())); stringBuffer.append(TEXT_35); - stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy")); + stringBuffer.append(importManager.getImportedName(genNode.getGraphicalNodeEditPolicyQualifiedClassName())); stringBuffer.append(TEXT_36); + if (!genNode.getChildNodes().isEmpty()) { + stringBuffer.append(TEXT_37); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy")); + stringBuffer.append(TEXT_38); } if (genDiagram.isSynchronized()) { - stringBuffer.append(TEXT_37); + stringBuffer.append(TEXT_39); stringBuffer.append(importManager.getImportedName(genNode.getCanonicalEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_38); + stringBuffer.append(TEXT_40); } - stringBuffer.append(TEXT_39); + stringBuffer.append(TEXT_41); { GenCommonBase genCommonBase = genNode; - stringBuffer.append(TEXT_40); + stringBuffer.append(TEXT_42); for (java.util.Iterator it = genCommonBase.getCustomBehaviour().iterator(); it.hasNext();) { CustomBehaviour behaviour = (CustomBehaviour) it.next(); - stringBuffer.append(TEXT_41); + stringBuffer.append(TEXT_43); stringBuffer.append(behaviour.getKey()); - stringBuffer.append(TEXT_42); + stringBuffer.append(TEXT_44); stringBuffer.append(importManager.getImportedName(behaviour.getEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_43); + stringBuffer.append(TEXT_45); } } - stringBuffer.append(TEXT_44); + stringBuffer.append(TEXT_46); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")); - stringBuffer.append(TEXT_45); + stringBuffer.append(TEXT_47); final String fqnEditPart = importManager.getImportedName("org.eclipse.gef.EditPart"); switch(genNode.getLayoutType().getValue()){ case ViewmapLayoutType.XY_LAYOUT: - stringBuffer.append(TEXT_46); + stringBuffer.append(TEXT_48); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy")); - stringBuffer.append(TEXT_47); + stringBuffer.append(TEXT_49); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy")); - stringBuffer.append(TEXT_48); + stringBuffer.append(TEXT_50); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_49); + stringBuffer.append(TEXT_51); } - stringBuffer.append(TEXT_50); + stringBuffer.append(TEXT_52); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_51); + stringBuffer.append(TEXT_53); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy")); - stringBuffer.append(TEXT_52); + stringBuffer.append(TEXT_54); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_53); + stringBuffer.append(TEXT_55); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_54); + stringBuffer.append(TEXT_56); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_55); + stringBuffer.append(TEXT_57); stringBuffer.append(genNode.getEditPartClassName()); - stringBuffer.append(TEXT_56); + stringBuffer.append(TEXT_58); } else { - stringBuffer.append(TEXT_57); + stringBuffer.append(TEXT_59); } break; case ViewmapLayoutType.TOOLBAR_LAYOUT: - stringBuffer.append(TEXT_58); + stringBuffer.append(TEXT_60); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy")); - stringBuffer.append(TEXT_59); + stringBuffer.append(TEXT_61); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy")); - stringBuffer.append(TEXT_60); + stringBuffer.append(TEXT_62); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_61); + stringBuffer.append(TEXT_63); } - stringBuffer.append(TEXT_62); + stringBuffer.append(TEXT_64); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_63); + stringBuffer.append(TEXT_65); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart")); - stringBuffer.append(TEXT_64); + stringBuffer.append(TEXT_66); stringBuffer.append(importManager.getImportedName(genDiagram.getTextSelectionEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_65); + stringBuffer.append(TEXT_67); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_66); + stringBuffer.append(TEXT_68); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_67); + stringBuffer.append(TEXT_69); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_68); + stringBuffer.append(TEXT_70); stringBuffer.append(genNode.getEditPartClassName()); - stringBuffer.append(TEXT_69); + stringBuffer.append(TEXT_71); } else { - stringBuffer.append(TEXT_70); + stringBuffer.append(TEXT_72); } break; case ViewmapLayoutType.FLOW_LAYOUT: - stringBuffer.append(TEXT_71); + stringBuffer.append(TEXT_73); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.FlowLayoutEditPolicy")); - stringBuffer.append(TEXT_72); + stringBuffer.append(TEXT_74); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.FlowLayoutEditPolicy")); - stringBuffer.append(TEXT_73); + stringBuffer.append(TEXT_75); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_74); + stringBuffer.append(TEXT_76); } - stringBuffer.append(TEXT_75); + stringBuffer.append(TEXT_77); + if (myHelper.hasSideAffixedChildren()) { + stringBuffer.append(TEXT_78); + stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); + stringBuffer.append(TEXT_79); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart")); + stringBuffer.append(TEXT_80); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy")); + stringBuffer.append(TEXT_81); + } + stringBuffer.append(TEXT_82); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); - stringBuffer.append(TEXT_76); + stringBuffer.append(TEXT_83); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_77); + stringBuffer.append(TEXT_84); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_78); + stringBuffer.append(TEXT_85); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); - stringBuffer.append(TEXT_79); + stringBuffer.append(TEXT_86); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_80); + stringBuffer.append(TEXT_87); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_81); + stringBuffer.append(TEXT_88); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); - stringBuffer.append(TEXT_82); + stringBuffer.append(TEXT_89); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")); - stringBuffer.append(TEXT_83); + stringBuffer.append(TEXT_90); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_84); + stringBuffer.append(TEXT_91); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_85); + stringBuffer.append(TEXT_92); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_86); + stringBuffer.append(TEXT_93); stringBuffer.append(genNode.getEditPartClassName()); - stringBuffer.append(TEXT_87); + stringBuffer.append(TEXT_94); } else { - stringBuffer.append(TEXT_88); + stringBuffer.append(TEXT_95); } break; default: - stringBuffer.append(TEXT_89); + stringBuffer.append(TEXT_96); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")); - stringBuffer.append(TEXT_90); + stringBuffer.append(TEXT_97); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")); - stringBuffer.append(TEXT_91); + stringBuffer.append(TEXT_98); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_92); + stringBuffer.append(TEXT_99); } - stringBuffer.append(TEXT_93); + stringBuffer.append(TEXT_100); stringBuffer.append(fqnEditPart); - stringBuffer.append(TEXT_94); + stringBuffer.append(TEXT_101); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.NonResizableEditPolicy")); - stringBuffer.append(TEXT_95); + stringBuffer.append(TEXT_102); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); - stringBuffer.append(TEXT_96); + stringBuffer.append(TEXT_103); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.Request")); - stringBuffer.append(TEXT_97); + stringBuffer.append(TEXT_104); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command")); - stringBuffer.append(TEXT_98); + stringBuffer.append(TEXT_105); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")); - stringBuffer.append(TEXT_99); + stringBuffer.append(TEXT_106); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_100); + stringBuffer.append(TEXT_107); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_101); + stringBuffer.append(TEXT_108); stringBuffer.append(importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())); - stringBuffer.append(TEXT_102); + stringBuffer.append(TEXT_109); stringBuffer.append(genNode.getEditPartClassName()); - stringBuffer.append(TEXT_103); + stringBuffer.append(TEXT_110); } else { - stringBuffer.append(TEXT_104); + stringBuffer.append(TEXT_111); } } //switch - stringBuffer.append(TEXT_105); + stringBuffer.append(TEXT_112); String figureQualifiedClassName = null; Viewmap viewmap = genNode.getViewmap(); @@ -664,45 +739,45 @@ } figureQualifiedClassName = importManager.getImportedName(figureQualifiedClassName); - stringBuffer.append(TEXT_106); + stringBuffer.append(TEXT_113); stringBuffer.append(figureQualifiedClassName); - stringBuffer.append(TEXT_107); + stringBuffer.append(TEXT_114); if (isXYLayout) { - stringBuffer.append(TEXT_108); + stringBuffer.append(TEXT_115); } // if isXYLayout - stringBuffer.append(TEXT_109); + stringBuffer.append(TEXT_116); } // instanceof FigureViewmap else if (viewmap instanceof SnippetViewmap) { - stringBuffer.append(TEXT_110); + stringBuffer.append(TEXT_117); stringBuffer.append(((SnippetViewmap) viewmap).getBody()); - stringBuffer.append(TEXT_111); + stringBuffer.append(TEXT_118); } // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter else if (viewmap instanceof InnerClassViewmap) { figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); - stringBuffer.append(TEXT_112); + stringBuffer.append(TEXT_119); stringBuffer.append(figureQualifiedClassName); - stringBuffer.append(TEXT_113); + stringBuffer.append(TEXT_120); stringBuffer.append(figureQualifiedClassName); - stringBuffer.append(TEXT_114); + stringBuffer.append(TEXT_121); if (!genNode.getChildNodes().isEmpty() && isXYLayout) { /*otherwise, leave to figure's default value*/ - stringBuffer.append(TEXT_115); + stringBuffer.append(TEXT_122); } - stringBuffer.append(TEXT_116); + stringBuffer.append(TEXT_123); } - stringBuffer.append(TEXT_117); + stringBuffer.append(TEXT_124); if (figureQualifiedClassName != null) { - stringBuffer.append(TEXT_118); + stringBuffer.append(TEXT_125); stringBuffer.append(figureQualifiedClassName); - stringBuffer.append(TEXT_119); + stringBuffer.append(TEXT_126); stringBuffer.append(figureQualifiedClassName); - stringBuffer.append(TEXT_120); + stringBuffer.append(TEXT_127); } - stringBuffer.append(TEXT_121); + stringBuffer.append(TEXT_128); if (myHelper.hasFixedChildren()) { - stringBuffer.append(TEXT_122); + stringBuffer.append(TEXT_129); for (Iterator it = myHelper.getInnerFixedLabels(); it.hasNext(); ) { GenNodeLabel genLabel = (GenNodeLabel) it.next(); @@ -710,15 +785,15 @@ final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) genLabel.getViewmap(); final String childSetterName = childViewmap.getSetterName() == null ? "setLabel" : childViewmap.getSetterName(); - stringBuffer.append(TEXT_123); + stringBuffer.append(TEXT_130); stringBuffer.append(labelEditPart); - stringBuffer.append(TEXT_124); + stringBuffer.append(TEXT_131); stringBuffer.append(labelEditPart); - stringBuffer.append(TEXT_125); + stringBuffer.append(TEXT_132); stringBuffer.append(childSetterName); - stringBuffer.append(TEXT_126); + stringBuffer.append(TEXT_133); stringBuffer.append(childViewmap.getGetterName()); - stringBuffer.append(TEXT_127); + stringBuffer.append(TEXT_134); } @@ -727,19 +802,39 @@ final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) next.getViewmap(); String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); - stringBuffer.append(TEXT_128); + stringBuffer.append(TEXT_135); stringBuffer.append(compartmentEditPartFQN); - stringBuffer.append(TEXT_129); + stringBuffer.append(TEXT_136); stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); - stringBuffer.append(TEXT_130); + stringBuffer.append(TEXT_137); stringBuffer.append(childViewmap.getGetterName()); - stringBuffer.append(TEXT_131); + stringBuffer.append(TEXT_138); stringBuffer.append(compartmentEditPartFQN); - stringBuffer.append(TEXT_132); + stringBuffer.append(TEXT_139); } // for pinned compartments - stringBuffer.append(TEXT_133); +for (Iterator it = myHelper.getSideAffixedChildren(); it.hasNext(); ) { + GenChildSideAffixedNode next = (GenChildSideAffixedNode) it.next(); + String sideAffixedEidtPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); + + stringBuffer.append(TEXT_140); + stringBuffer.append(sideAffixedEidtPartFQN); + stringBuffer.append(TEXT_141); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator")); + stringBuffer.append(TEXT_142); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator")); + stringBuffer.append(TEXT_143); + stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.PositionConstants")); + stringBuffer.append(TEXT_144); + stringBuffer.append(next.getPreferredSideName()); + stringBuffer.append(TEXT_145); + stringBuffer.append(sideAffixedEidtPartFQN); + stringBuffer.append(TEXT_146); + +} // for side affixed + + stringBuffer.append(TEXT_147); //XXX: ignore labels assuming that they never may be removed for (Iterator it = myHelper.getPinnedCompartments(); it.hasNext(); ) { @@ -747,25 +842,37 @@ final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) next.getViewmap(); String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); - stringBuffer.append(TEXT_134); + stringBuffer.append(TEXT_148); stringBuffer.append(compartmentEditPartFQN); - stringBuffer.append(TEXT_135); + stringBuffer.append(TEXT_149); stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure")); - stringBuffer.append(TEXT_136); + stringBuffer.append(TEXT_150); stringBuffer.append(childViewmap.getGetterName()); - stringBuffer.append(TEXT_137); + stringBuffer.append(TEXT_151); stringBuffer.append(compartmentEditPartFQN); - stringBuffer.append(TEXT_138); + stringBuffer.append(TEXT_152); } // for pinned compartments - stringBuffer.append(TEXT_139); +for (Iterator it = myHelper.getSideAffixedChildren(); it.hasNext(); ) { + GenChildNode next = (GenChildNode) it.next(); + String sideAffixedEidtPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); + + stringBuffer.append(TEXT_153); + stringBuffer.append(sideAffixedEidtPartFQN); + stringBuffer.append(TEXT_154); + stringBuffer.append(sideAffixedEidtPartFQN); + stringBuffer.append(TEXT_155); + +} // for side affixed + + stringBuffer.append(TEXT_156); } // if myHelper.hasFixedChildren() - stringBuffer.append(TEXT_140); + stringBuffer.append(TEXT_157); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")); - stringBuffer.append(TEXT_141); + stringBuffer.append(TEXT_158); int width = 40; int height = 40; @@ -775,148 +882,166 @@ height = defSizeAttrs.getHeight(); } - stringBuffer.append(TEXT_142); + stringBuffer.append(TEXT_159); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")); - stringBuffer.append(TEXT_143); + stringBuffer.append(TEXT_160); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")); + stringBuffer.append(TEXT_161); stringBuffer.append(width); - stringBuffer.append(TEXT_144); + stringBuffer.append(TEXT_162); stringBuffer.append(height); - stringBuffer.append(TEXT_145); + stringBuffer.append(TEXT_163); + +if (myHelper.isSideAffixed()){ + + stringBuffer.append(TEXT_164); + +} + + stringBuffer.append(TEXT_165); if (genNode.getViewmap().find(ResizeConstraints.class) != null) { final ResizeConstraints rc = (ResizeConstraints) genNode.getViewmap().find(ResizeConstraints.class); final String draw2dPC = importManager.getImportedName("org.eclipse.draw2d.PositionConstants"); - stringBuffer.append(TEXT_146); + stringBuffer.append(TEXT_166); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")); - stringBuffer.append(TEXT_147); + stringBuffer.append(TEXT_167); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")); - stringBuffer.append(TEXT_148); + stringBuffer.append(TEXT_168); if (rc.getResizeHandleNames().isEmpty()) { - stringBuffer.append(TEXT_149); + stringBuffer.append(TEXT_169); stringBuffer.append(draw2dPC); - stringBuffer.append(TEXT_150); + stringBuffer.append(TEXT_170); } else { - stringBuffer.append(TEXT_151); + stringBuffer.append(TEXT_171); for (Iterator rcNamesIter = rc.getResizeHandleNames().iterator(); rcNamesIter.hasNext();) { String nextConstantName = (String) rcNamesIter.next(); stringBuffer.append(draw2dPC); - stringBuffer.append(TEXT_152); + stringBuffer.append(TEXT_172); stringBuffer.append(nextConstantName); if (rcNamesIter.hasNext()) { - stringBuffer.append(TEXT_153); + stringBuffer.append(TEXT_173); }} - stringBuffer.append(TEXT_154); + stringBuffer.append(TEXT_174); } - stringBuffer.append(TEXT_155); + stringBuffer.append(TEXT_175); } - stringBuffer.append(TEXT_156); + stringBuffer.append(TEXT_176); + if (myHelper.hasSideAffixedChildren()) { + stringBuffer.append(TEXT_177); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")); - stringBuffer.append(TEXT_157); + stringBuffer.append(TEXT_178); + } else { + stringBuffer.append(TEXT_179); stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")); - stringBuffer.append(TEXT_158); + stringBuffer.append(TEXT_180); + } + stringBuffer.append(TEXT_181); + stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")); + stringBuffer.append(TEXT_182); if (isXYLayout) { - stringBuffer.append(TEXT_159); + stringBuffer.append(TEXT_183); stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")); - stringBuffer.append(TEXT_160); + stringBuffer.append(TEXT_184); stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")); - stringBuffer.append(TEXT_161); + stringBuffer.append(TEXT_185); } else { String layoutClassName = importManager.getImportedName("org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout"); - stringBuffer.append(TEXT_162); + stringBuffer.append(TEXT_186); stringBuffer.append(layoutClassName); - stringBuffer.append(TEXT_163); + stringBuffer.append(TEXT_187); stringBuffer.append(layoutClassName); - stringBuffer.append(TEXT_164); + stringBuffer.append(TEXT_188); } - stringBuffer.append(TEXT_165); + stringBuffer.append(TEXT_189); if (myHelper.getPrimaryLabel() != null) { GenNodeLabel primaryLabel = myHelper.getPrimaryLabel(); - stringBuffer.append(TEXT_166); + stringBuffer.append(TEXT_190); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_167); + stringBuffer.append(TEXT_191); stringBuffer.append(importManager.getImportedName(genDiagram.getVisualIDRegistryQualifiedClassName())); - stringBuffer.append(TEXT_168); + stringBuffer.append(TEXT_192); stringBuffer.append(importManager.getImportedName(primaryLabel.getEditPartQualifiedClassName())); - stringBuffer.append(TEXT_169); + stringBuffer.append(TEXT_193); } if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_170); + stringBuffer.append(TEXT_194); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_171); + stringBuffer.append(TEXT_195); for (Iterator externalLabels = myHelper.getExternalLabels(); externalLabels.hasNext();) { GenNodeLabel next = (GenNodeLabel) externalLabels.next(); - stringBuffer.append(TEXT_172); + stringBuffer.append(TEXT_196); stringBuffer.append(importManager.getImportedName(next.getEditPartQualifiedClassName())); - stringBuffer.append(TEXT_173); + stringBuffer.append(TEXT_197); } - stringBuffer.append(TEXT_174); + stringBuffer.append(TEXT_198); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.LayerManager")); - stringBuffer.append(TEXT_175); + stringBuffer.append(TEXT_199); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editparts.LayerManager")); - stringBuffer.append(TEXT_176); + stringBuffer.append(TEXT_200); stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())); - stringBuffer.append(TEXT_177); + stringBuffer.append(TEXT_201); } if (myHelper.hasFixedChildren() || myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_178); + stringBuffer.append(TEXT_202); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_179); + stringBuffer.append(TEXT_203); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_180); + stringBuffer.append(TEXT_204); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); - stringBuffer.append(TEXT_181); + stringBuffer.append(TEXT_205); } if (myHelper.hasFixedChildren()) { - stringBuffer.append(TEXT_182); + stringBuffer.append(TEXT_206); } - stringBuffer.append(TEXT_183); + stringBuffer.append(TEXT_207); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_184); + stringBuffer.append(TEXT_208); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_185); + stringBuffer.append(TEXT_209); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); - stringBuffer.append(TEXT_186); + stringBuffer.append(TEXT_210); } if (myHelper.hasFixedChildren()){ - stringBuffer.append(TEXT_187); + stringBuffer.append(TEXT_211); } - stringBuffer.append(TEXT_188); + stringBuffer.append(TEXT_212); if (myHelper.hasExternalLabels()) { - stringBuffer.append(TEXT_189); + stringBuffer.append(TEXT_213); stringBuffer.append(importManager.getImportedName("java.util.Iterator")); - stringBuffer.append(TEXT_190); + stringBuffer.append(TEXT_214); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_191); + stringBuffer.append(TEXT_215); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart")); - stringBuffer.append(TEXT_192); + stringBuffer.append(TEXT_216); stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")); - stringBuffer.append(TEXT_193); + stringBuffer.append(TEXT_217); } } // if hasFixedChildren || hasExternalLabels - stringBuffer.append(TEXT_194); + stringBuffer.append(TEXT_218); if (genNode.getViewmap() instanceof InnerClassViewmap) { - stringBuffer.append(TEXT_195); + stringBuffer.append(TEXT_219); stringBuffer.append(((InnerClassViewmap) genNode.getViewmap()).getClassBody()); } - stringBuffer.append(TEXT_196); + stringBuffer.append(TEXT_220); importManager.emitSortedImports(); - stringBuffer.append(TEXT_197); + stringBuffer.append(TEXT_221); return stringBuffer.toString(); } } \ No newline at end of file Index: models/gmfgen.genmodel =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel,v retrieving revision 1.126 diff -u -r1.126 gmfgen.genmodel --- models/gmfgen.genmodel 7 Jul 2006 11:58:57 -0000 1.126 +++ models/gmfgen.genmodel 24 Aug 2006 17:28:06 -0000 @@ -278,6 +278,9 @@ + + + Index: models/gmfgen.ecore =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore,v retrieving revision 1.140 diff -u -r1.140 gmfgen.ecore --- models/gmfgen.ecore 7 Jul 2006 11:58:57 -0000 1.140 +++ models/gmfgen.ecore 24 Aug 2006 17:28:06 -0000 @@ -474,6 +474,10 @@ + + +
Index: src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java,v retrieving revision 1.50 diff -u -r1.50 GMFGenSwitch.java --- src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java 7 Jul 2006 11:58:56 -0000 1.50 +++ src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java 24 Aug 2006 17:28:15 -0000 @@ -302,6 +302,17 @@ if (result == null) result = defaultCase(theEObject); return result; } + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE: { + GenChildSideAffixedNode genChildSideAffixedNode = (GenChildSideAffixedNode)theEObject; + Object result = caseGenChildSideAffixedNode(genChildSideAffixedNode); + if (result == null) result = caseGenChildNode(genChildSideAffixedNode); + if (result == null) result = caseGenNode(genChildSideAffixedNode); + if (result == null) result = caseGenChildContainer(genChildSideAffixedNode); + if (result == null) result = caseGenContainerBase(genChildSideAffixedNode); + if (result == null) result = caseGenCommonBase(genChildSideAffixedNode); + if (result == null) result = defaultCase(theEObject); + return result; + } case GMFGenPackage.GEN_CHILD_LABEL_NODE: { GenChildLabelNode genChildLabelNode = (GenChildLabelNode)theEObject; Object result = caseGenChildLabelNode(genChildLabelNode); @@ -1092,6 +1103,21 @@ } /** + * Returns the result of interpretting the object as an instance of 'Gen Child Side Affixed Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of 'Gen Child Side Affixed Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGenChildSideAffixedNode(GenChildSideAffixedNode object) { + return null; + } + + /** * Returns the result of interpretting the object as an instance of 'Gen Child Label Node'. * * This implementation returns null; Index: src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java,v retrieving revision 1.50 diff -u -r1.50 GMFGenAdapterFactory.java --- src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java 7 Jul 2006 11:58:56 -0000 1.50 +++ src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java 24 Aug 2006 17:28:14 -0000 @@ -202,6 +202,9 @@ public Object caseGenChildNode(GenChildNode object) { return createGenChildNodeAdapter(); } + public Object caseGenChildSideAffixedNode(GenChildSideAffixedNode object) { + return createGenChildSideAffixedNodeAdapter(); + } public Object caseGenChildLabelNode(GenChildLabelNode object) { return createGenChildLabelNodeAdapter(); } @@ -718,6 +721,20 @@ } /** + * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode Gen Child Side Affixed Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode + * @generated + */ + public Adapter createGenChildSideAffixedNodeAdapter() { + return null; + } + + /** * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode Gen Child Label Node}'. * * This default implementation returns null so that we can easily ignore cases; Index: src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java,v retrieving revision 1.117 diff -u -r1.117 GMFGenPackage.java --- src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java 7 Jul 2006 11:58:56 -0000 1.117 +++ src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java 24 Aug 2006 17:28:11 -0000 @@ -2137,7 +2137,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getElementType() * @generated */ - int ELEMENT_TYPE = 26; + int ELEMENT_TYPE = 27; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.MetamodelTypeImpl Metamodel Type}' class. @@ -2147,7 +2147,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getMetamodelType() * @generated */ - int METAMODEL_TYPE = 27; + int METAMODEL_TYPE = 28; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.SpecializationTypeImpl Specialization Type}' class. @@ -2157,7 +2157,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getSpecializationType() * @generated */ - int SPECIALIZATION_TYPE = 28; + int SPECIALIZATION_TYPE = 29; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenNodeImpl Gen Node}' class. @@ -2177,7 +2177,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenCompartment() * @generated */ - int GEN_COMPARTMENT = 20; + int GEN_COMPARTMENT = 21; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenChildContainerImpl Gen Child Container}' class. @@ -2777,6 +2777,187 @@ int GEN_CHILD_NODE_FEATURE_COUNT = GEN_NODE_FEATURE_COUNT + 2; /** + * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenChildSideAffixedNodeImpl Gen Child Side Affixed Node}' class. + * + * + * @see org.eclipse.gmf.codegen.gmfgen.impl.GenChildSideAffixedNodeImpl + * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenChildSideAffixedNode() + * @generated + */ + int GEN_CHILD_SIDE_AFFIXED_NODE = 19; + + /** + * The feature id for the 'Diagram Run Time Class' reference. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__DIAGRAM_RUN_TIME_CLASS = GEN_CHILD_NODE__DIAGRAM_RUN_TIME_CLASS; + + /** + * The feature id for the 'Visual ID' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__VISUAL_ID = GEN_CHILD_NODE__VISUAL_ID; + + /** + * The feature id for the 'Element Type' containment reference. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__ELEMENT_TYPE = GEN_CHILD_NODE__ELEMENT_TYPE; + + /** + * The feature id for the 'Edit Part Class Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__EDIT_PART_CLASS_NAME = GEN_CHILD_NODE__EDIT_PART_CLASS_NAME; + + /** + * The feature id for the 'Item Semantic Edit Policy Class Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME = GEN_CHILD_NODE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME; + + /** + * The feature id for the 'Notation View Factory Class Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__NOTATION_VIEW_FACTORY_CLASS_NAME = GEN_CHILD_NODE__NOTATION_VIEW_FACTORY_CLASS_NAME; + + /** + * The feature id for the 'Viewmap' containment reference. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__VIEWMAP = GEN_CHILD_NODE__VIEWMAP; + + /** + * The feature id for the 'Custom Behaviour' containment reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__CUSTOM_BEHAVIOUR = GEN_CHILD_NODE__CUSTOM_BEHAVIOUR; + + /** + * The feature id for the 'Contained Nodes' reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__CONTAINED_NODES = GEN_CHILD_NODE__CONTAINED_NODES; + + /** + * The feature id for the 'Child Nodes' reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__CHILD_NODES = GEN_CHILD_NODE__CHILD_NODES; + + /** + * The feature id for the 'Canonical Edit Policy Class Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__CANONICAL_EDIT_POLICY_CLASS_NAME = GEN_CHILD_NODE__CANONICAL_EDIT_POLICY_CLASS_NAME; + + /** + * The feature id for the 'Model Facet' containment reference. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__MODEL_FACET = GEN_CHILD_NODE__MODEL_FACET; + + /** + * The feature id for the 'Labels' containment reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__LABELS = GEN_CHILD_NODE__LABELS; + + /** + * The feature id for the 'Compartments' reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__COMPARTMENTS = GEN_CHILD_NODE__COMPARTMENTS; + + /** + * The feature id for the 'Graphical Node Edit Policy Class Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__GRAPHICAL_NODE_EDIT_POLICY_CLASS_NAME = GEN_CHILD_NODE__GRAPHICAL_NODE_EDIT_POLICY_CLASS_NAME; + + /** + * The feature id for the 'Diagram' container reference. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__DIAGRAM = GEN_CHILD_NODE__DIAGRAM; + + /** + * The feature id for the 'Containers' reference list. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__CONTAINERS = GEN_CHILD_NODE__CONTAINERS; + + /** + * The feature id for the 'Preferred Side Name' attribute. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME = GEN_CHILD_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Gen Child Side Affixed Node' class. + * + * + * @generated + * @ordered + */ + int GEN_CHILD_SIDE_AFFIXED_NODE_FEATURE_COUNT = GEN_CHILD_NODE_FEATURE_COUNT + 1; + + /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.GenChildLabelNodeImpl Gen Child Label Node}' class. * * @@ -2784,7 +2965,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenChildLabelNode() * @generated */ - int GEN_CHILD_LABEL_NODE = 19; + int GEN_CHILD_LABEL_NODE = 20; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3154,7 +3335,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLink() * @generated */ - int GEN_LINK = 21; + int GEN_LINK = 22; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3308,7 +3489,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLabel() * @generated */ - int GEN_LABEL = 22; + int GEN_LABEL = 23; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3426,7 +3607,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenNodeLabel() * @generated */ - int GEN_NODE_LABEL = 23; + int GEN_NODE_LABEL = 24; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3553,7 +3734,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExternalNodeLabel() * @generated */ - int GEN_EXTERNAL_NODE_LABEL = 24; + int GEN_EXTERNAL_NODE_LABEL = 25; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3680,7 +3861,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLinkLabel() * @generated */ - int GEN_LINK_LABEL = 25; + int GEN_LINK_LABEL = 26; /** * The feature id for the 'Diagram Run Time Class' reference. @@ -3852,7 +4033,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getModelFacet() * @generated */ - int MODEL_FACET = 30; + int MODEL_FACET = 31; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LinkModelFacet Link Model Facet}' class. @@ -3862,7 +4043,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLinkModelFacet() * @generated */ - int LINK_MODEL_FACET = 31; + int LINK_MODEL_FACET = 32; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LabelModelFacet Label Model Facet}' class. @@ -3872,7 +4053,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLabelModelFacet() * @generated */ - int LABEL_MODEL_FACET = 32; + int LABEL_MODEL_FACET = 33; /** * The number of structural features of the 'Element Type' class. @@ -4008,7 +4189,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getNotationType() * @generated */ - int NOTATION_TYPE = 29; + int NOTATION_TYPE = 30; /** * The feature id for the 'Diagram Element' container reference. @@ -4090,7 +4271,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getTypeModelFacet() * @generated */ - int TYPE_MODEL_FACET = 33; + int TYPE_MODEL_FACET = 34; /** * The feature id for the 'Meta Class' reference. @@ -4154,7 +4335,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFeatureModelFacet() * @generated */ - int FEATURE_MODEL_FACET = 34; + int FEATURE_MODEL_FACET = 35; /** * The feature id for the 'Meta Feature' reference. @@ -4182,7 +4363,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFeatureLabelModelFacet() * @generated */ - int FEATURE_LABEL_MODEL_FACET = 38; + int FEATURE_LABEL_MODEL_FACET = 39; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.CompositeFeatureModelFacetImpl Composite Feature Model Facet}' class. @@ -4192,7 +4373,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getCompositeFeatureModelFacet() * @generated */ - int COMPOSITE_FEATURE_MODEL_FACET = 35; + int COMPOSITE_FEATURE_MODEL_FACET = 36; /** * The feature id for the 'Meta Features' reference list. @@ -4220,7 +4401,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getCompositeFeatureLabelModelFacet() * @generated */ - int COMPOSITE_FEATURE_LABEL_MODEL_FACET = 39; + int COMPOSITE_FEATURE_LABEL_MODEL_FACET = 40; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.TypeLinkModelFacetImpl Type Link Model Facet}' class. @@ -4230,7 +4411,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getTypeLinkModelFacet() * @generated */ - int TYPE_LINK_MODEL_FACET = 36; + int TYPE_LINK_MODEL_FACET = 37; /** * The feature id for the 'Meta Class' reference. @@ -4312,7 +4493,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFeatureLinkModelFacet() * @generated */ - int FEATURE_LINK_MODEL_FACET = 37; + int FEATURE_LINK_MODEL_FACET = 38; /** * The feature id for the 'Meta Feature' reference. @@ -4412,7 +4593,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getDesignLabelModelFacet() * @generated */ - int DESIGN_LABEL_MODEL_FACET = 40; + int DESIGN_LABEL_MODEL_FACET = 41; /** * The number of structural features of the 'Design Label Model Facet' class. @@ -4431,7 +4612,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getViewmap() * @generated */ - int VIEWMAP = 47; + int VIEWMAP = 48; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.Attributes Attributes}' class. @@ -4441,7 +4622,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getAttributes() * @generated */ - int ATTRIBUTES = 41; + int ATTRIBUTES = 42; /** * The number of structural features of the 'Attributes' class. @@ -4460,7 +4641,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getColorAttributes() * @generated */ - int COLOR_ATTRIBUTES = 42; + int COLOR_ATTRIBUTES = 43; /** * The feature id for the 'Foreground Color' attribute. @@ -4497,7 +4678,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getStyleAttributes() * @generated */ - int STYLE_ATTRIBUTES = 43; + int STYLE_ATTRIBUTES = 44; /** * The feature id for the 'Fixed Font' attribute. @@ -4543,7 +4724,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getResizeConstraints() * @generated */ - int RESIZE_CONSTRAINTS = 44; + int RESIZE_CONSTRAINTS = 45; /** * The feature id for the 'Resize Handles' attribute. @@ -4580,7 +4761,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getDefaultSizeAttributes() * @generated */ - int DEFAULT_SIZE_ATTRIBUTES = 45; + int DEFAULT_SIZE_ATTRIBUTES = 46; /** * The feature id for the 'Width' attribute. @@ -4617,7 +4798,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLabelOffsetAttributes() * @generated */ - int LABEL_OFFSET_ATTRIBUTES = 46; + int LABEL_OFFSET_ATTRIBUTES = 47; /** * The feature id for the 'X' attribute. @@ -4690,7 +4871,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFigureViewmap() * @generated */ - int FIGURE_VIEWMAP = 48; + int FIGURE_VIEWMAP = 49; /** * The feature id for the 'Attributes' containment reference list. @@ -4745,7 +4926,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getSnippetViewmap() * @generated */ - int SNIPPET_VIEWMAP = 49; + int SNIPPET_VIEWMAP = 50; /** * The feature id for the 'Attributes' containment reference list. @@ -4800,7 +4981,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getInnerClassViewmap() * @generated */ - int INNER_CLASS_VIEWMAP = 50; + int INNER_CLASS_VIEWMAP = 51; /** * The feature id for the 'Attributes' containment reference list. @@ -4864,7 +5045,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getParentAssignedViewmap() * @generated */ - int PARENT_ASSIGNED_VIEWMAP = 51; + int PARENT_ASSIGNED_VIEWMAP = 52; /** * The feature id for the 'Attributes' containment reference list. @@ -4937,7 +5118,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getPalette() * @generated */ - int PALETTE = 54; + int PALETTE = 55; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.EntryBaseImpl Entry Base}' class. @@ -4947,7 +5128,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getEntryBase() * @generated */ - int ENTRY_BASE = 55; + int ENTRY_BASE = 56; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ToolEntryImpl Tool Entry}' class. @@ -4957,7 +5138,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolEntry() * @generated */ - int TOOL_ENTRY = 56; + int TOOL_ENTRY = 57; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ToolGroupImpl Tool Group}' class. @@ -4967,7 +5148,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolGroup() * @generated */ - int TOOL_GROUP = 59; + int TOOL_GROUP = 60; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ValueExpressionImpl Value Expression}' class. @@ -4977,7 +5158,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getValueExpression() * @generated */ - int VALUE_EXPRESSION = 52; + int VALUE_EXPRESSION = 53; /** * The feature id for the 'Body' attribute. @@ -5023,7 +5204,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenConstraint() * @generated */ - int GEN_CONSTRAINT = 53; + int GEN_CONSTRAINT = 54; /** * The feature id for the 'Body' attribute. @@ -5285,7 +5466,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolGroupItem() * @generated */ - int TOOL_GROUP_ITEM = 57; + int TOOL_GROUP_ITEM = 58; /** * The number of structural features of the 'Tool Group Item' class. @@ -5304,7 +5485,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getSeparator() * @generated */ - int SEPARATOR = 58; + int SEPARATOR = 59; /** * The number of structural features of the 'Separator' class. @@ -5413,7 +5594,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenElementInitializer() * @generated */ - int GEN_ELEMENT_INITIALIZER = 60; + int GEN_ELEMENT_INITIALIZER = 61; /** * The feature id for the 'Type Model Facet' container reference. @@ -5441,7 +5622,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenFeatureSeqInitializer() * @generated */ - int GEN_FEATURE_SEQ_INITIALIZER = 61; + int GEN_FEATURE_SEQ_INITIALIZER = 62; /** * The feature id for the 'Type Model Facet' container reference. @@ -5478,7 +5659,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenFeatureValueSpec() * @generated */ - int GEN_FEATURE_VALUE_SPEC = 62; + int GEN_FEATURE_VALUE_SPEC = 63; /** * The feature id for the 'Body' attribute. @@ -5542,7 +5723,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLinkConstraints() * @generated */ - int GEN_LINK_CONSTRAINTS = 63; + int GEN_LINK_CONSTRAINTS = 64; /** * The feature id for the 'Link' container reference. @@ -5588,7 +5769,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleContainerBase() * @generated */ - int GEN_RULE_CONTAINER_BASE = 64; + int GEN_RULE_CONTAINER_BASE = 65; /** * The feature id for the 'Editor' reference. @@ -5616,7 +5797,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditContainer() * @generated */ - int GEN_AUDIT_CONTAINER = 65; + int GEN_AUDIT_CONTAINER = 66; /** * The feature id for the 'Editor' reference. @@ -5698,7 +5879,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleBase() * @generated */ - int GEN_RULE_BASE = 66; + int GEN_RULE_BASE = 67; /** * The feature id for the 'Name' attribute. @@ -5735,7 +5916,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditRule() * @generated */ - int GEN_AUDIT_RULE = 67; + int GEN_AUDIT_RULE = 68; /** * The feature id for the 'Name' attribute. @@ -5835,7 +6016,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleTarget() * @generated */ - int GEN_RULE_TARGET = 68; + int GEN_RULE_TARGET = 69; /** * The number of structural features of the 'Gen Rule Target' class. @@ -5854,7 +6035,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditable() * @generated */ - int GEN_AUDITABLE = 76; + int GEN_AUDITABLE = 77; /** * The number of structural features of the 'Gen Auditable' class. @@ -5873,7 +6054,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDomainElementTarget() * @generated */ - int GEN_DOMAIN_ELEMENT_TARGET = 69; + int GEN_DOMAIN_ELEMENT_TARGET = 70; /** * The feature id for the 'Element' reference. @@ -5901,7 +6082,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDiagramElementTarget() * @generated */ - int GEN_DIAGRAM_ELEMENT_TARGET = 70; + int GEN_DIAGRAM_ELEMENT_TARGET = 71; /** * The feature id for the 'Element' reference list. @@ -5929,7 +6110,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDomainAttributeTarget() * @generated */ - int GEN_DOMAIN_ATTRIBUTE_TARGET = 71; + int GEN_DOMAIN_ATTRIBUTE_TARGET = 72; /** * The feature id for the 'Attribute' reference. @@ -5966,7 +6147,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenNotationElementTarget() * @generated */ - int GEN_NOTATION_ELEMENT_TARGET = 72; + int GEN_NOTATION_ELEMENT_TARGET = 73; /** * The feature id for the 'Element' reference. @@ -5994,7 +6175,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMetricContainer() * @generated */ - int GEN_METRIC_CONTAINER = 73; + int GEN_METRIC_CONTAINER = 74; /** * The feature id for the 'Editor' reference. @@ -6031,7 +6212,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMetricRule() * @generated */ - int GEN_METRIC_RULE = 74; + int GEN_METRIC_RULE = 75; /** * The feature id for the 'Name' attribute. @@ -6122,7 +6303,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditedMetricTarget() * @generated */ - int GEN_AUDITED_METRIC_TARGET = 75; + int GEN_AUDITED_METRIC_TARGET = 76; /** * The feature id for the 'Metric' reference. @@ -6159,7 +6340,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMeasurable() * @generated */ - int GEN_MEASURABLE = 77; + int GEN_MEASURABLE = 78; /** * The number of structural features of the 'Gen Measurable' class. @@ -6178,7 +6359,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionProviderContainer() * @generated */ - int GEN_EXPRESSION_PROVIDER_CONTAINER = 78; + int GEN_EXPRESSION_PROVIDER_CONTAINER = 79; /** * The feature id for the 'Expressions Package Name' attribute. @@ -6233,7 +6414,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionProviderBase() * @generated */ - int GEN_EXPRESSION_PROVIDER_BASE = 79; + int GEN_EXPRESSION_PROVIDER_BASE = 80; /** * The feature id for the 'Expressions' reference list. @@ -6270,7 +6451,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenJavaExpressionProvider() * @generated */ - int GEN_JAVA_EXPRESSION_PROVIDER = 80; + int GEN_JAVA_EXPRESSION_PROVIDER = 81; /** * The feature id for the 'Expressions' reference list. @@ -6307,7 +6488,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionInterpreter() * @generated */ - int GEN_EXPRESSION_INTERPRETER = 81; + int GEN_EXPRESSION_INTERPRETER = 82; /** * The feature id for the 'Expressions' reference list. @@ -6371,7 +6552,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getProviderPriority() * @generated */ - int PROVIDER_PRIORITY = 82; + int PROVIDER_PRIORITY = 83; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LinkLabelAlignment Link Label Alignment}' enum. @@ -6381,7 +6562,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLinkLabelAlignment() * @generated */ - int LINK_LABEL_ALIGNMENT = 83; + int LINK_LABEL_ALIGNMENT = 84; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.ViewmapLayoutType Viewmap Layout Type}' enum. @@ -6391,7 +6572,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getViewmapLayoutType() * @generated */ - int VIEWMAP_LAYOUT_TYPE = 84; + int VIEWMAP_LAYOUT_TYPE = 85; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenSeverity Gen Severity}' enum. @@ -6401,7 +6582,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenSeverity() * @generated */ - int GEN_SEVERITY = 85; + int GEN_SEVERITY = 86; /** * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenLanguage Gen Language}' enum. @@ -6411,7 +6592,7 @@ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLanguage() * @generated */ - int GEN_LANGUAGE = 86; + int GEN_LANGUAGE = 87; /** @@ -8032,6 +8213,27 @@ EReference getGenChildNode_Containers(); /** + * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode Gen Child Side Affixed Node}'. + * + * + * @return the meta object for class 'Gen Child Side Affixed Node'. + * @see org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode + * @generated + */ + EClass getGenChildSideAffixedNode(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode#getPreferredSideName Preferred Side Name}'. + * + * + * @return the meta object for the attribute 'Preferred Side Name'. + * @see org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode#getPreferredSideName() + * @see #getGenChildSideAffixedNode() + * @generated + */ + EAttribute getGenChildSideAffixedNode_PreferredSideName(); + + /** * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode Gen Child Label Node}'. * * Index: src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java,v retrieving revision 1.37 diff -u -r1.37 GMFGenFactory.java --- src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java 7 Jul 2006 11:58:56 -0000 1.37 +++ src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java 24 Aug 2006 17:28:07 -0000 @@ -89,6 +89,15 @@ GenChildNode createGenChildNode(); /** + * Returns a new object of class 'Gen Child Side Affixed Node'. + * + * + * @return a new object of class 'Gen Child Side Affixed Node'. + * @generated + */ + GenChildSideAffixedNode createGenChildSideAffixedNode(); + + /** * Returns a new object of class 'Gen Child Label Node'. * * Index: templates/parts/NodeEditPart.javajet =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/templates/parts/NodeEditPart.javajet,v retrieving revision 1.87 diff -u -r1.87 NodeEditPart.javajet --- templates/parts/NodeEditPart.javajet 7 Jul 2006 11:58:56 -0000 1.87 +++ templates/parts/NodeEditPart.javajet 24 Aug 2006 17:28:15 -0000 @@ -12,8 +12,11 @@ private final List myExternalLabels = new LinkedList(); private final List myPinnedCompartments = new LinkedList(); private final List myFloatingCompartments = new LinkedList(); + private final List mySideAffixedChildren = new LinkedList(); private GenNodeLabel myPrimaryLabel; private boolean myHasChildrenInListCompartments = false; + private final boolean myIsSideAffixed; + private final boolean myHasSideAffixedChildren; public NodeEditPartHelper(GenNode genNode){ myPrimaryLabel = null; @@ -40,6 +43,36 @@ myHasChildrenInListCompartments |= next.isListLayout() && !next.getChildNodes().isEmpty(); } + + for (Iterator childNodes = genNode.getChildNodes().iterator(); childNodes.hasNext();){ + GenChildNode next = (GenChildNode)childNodes.next(); + if (next instanceof GenChildSideAffixedNode){ + mySideAffixedChildren.add(next); + } + } + + myIsSideAffixed = genNode instanceof GenChildSideAffixedNode; + myHasSideAffixedChildren = !mySideAffixedChildren.isEmpty(); + } + + public boolean isSideAffixed(){ + return myIsSideAffixed; + } + + public boolean hasSideAffixedChildren(){ + return myHasSideAffixedChildren; + } + + public String getEditPartSuperClassFQN(){ + if (isSideAffixed()){ + return hasSideAffixedChildren() ? + "org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart" : + "org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart"; + } else { + return hasSideAffixedChildren() ? + "org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart" : + "org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart"; + } } public boolean hasChildrenInListCompartments(){ @@ -77,6 +110,10 @@ public Iterator getPinnedCompartments(){ return myPinnedCompartments.iterator(); } + + public Iterator getSideAffixedChildren(){ + return mySideAffixedChildren.iterator(); + } } final NodeEditPartHelper myHelper = new NodeEditPartHelper(genNode); %> @@ -100,7 +137,7 @@ /** * @generated */ -public class <%=genNode.getEditPartClassName()%> extends <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart")%> { +public class <%=genNode.getEditPartClassName()%> extends <%=importManager.getImportedName(myHelper.getEditPartSuperClassFQN())%> { <%{ GenCommonBase genCommonBase = genNode;%> <%@ include file="visualID.jetinc"%> <%}%> @@ -167,6 +204,9 @@ ); <%}%> super.createDefaultEditPolicies(); +<%if (myHelper.isSideAffixed()){%> + installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, getPrimaryDragEditPolicy()); +<%}%> installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new <%=importManager.getImportedName(genNode.getItemSemanticEditPolicyQualifiedClassName())%>()); installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new <%=importManager.getImportedName(genNode.getGraphicalNodeEditPolicyQualifiedClassName())%>()); <%if (!genNode.getChildNodes().isEmpty()) {%> @@ -273,6 +313,15 @@ } <% }%> +<%if (myHelper.hasSideAffixedChildren()) {%> + protected EditPolicy createChildEditPolicy(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> child) { + if (child instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart")%>) { + return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy")%>(); + } + return super.createChildEditPolicy(child); + } +<%}%> + protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createAddCommand(<%=fqnEditPart%> child, <%=fqnEditPart%> after) { return null; } @@ -422,6 +471,18 @@ } <% } // for pinned compartments + +for (Iterator it = myHelper.getSideAffixedChildren(); it.hasNext(); ) { + GenChildSideAffixedNode next = (GenChildSideAffixedNode) it.next(); + String sideAffixedEidtPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); +%> + if (childEditPart instanceof <%=sideAffixedEidtPartFQN%>) { + <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator")%> locator = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator")%>(getMainFigure(), <%=importManager.getImportedName("org.eclipse.draw2d.PositionConstants")%>.<%=next.getPreferredSideName()%>); + getBorderedFigure().getBorderItemContainer().add(((<%=sideAffixedEidtPartFQN%>)childEditPart).getFigure(), locator); + return true; + } +<% +} // for side affixed %> return false; } @@ -444,6 +505,17 @@ } <% } // for pinned compartments + +for (Iterator it = myHelper.getSideAffixedChildren(); it.hasNext(); ) { + GenChildNode next = (GenChildNode) it.next(); + String sideAffixedEidtPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); +%> + if (childEditPart instanceof <%=sideAffixedEidtPartFQN%>) { + getBorderedFigure().getBorderItemContainer().remove(((<%=sideAffixedEidtPartFQN%>)childEditPart).getFigure()); + return true; + } +<% +} // for side affixed %> return false; } @@ -464,7 +536,16 @@ height = defSizeAttrs.getHeight(); } %> - return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")%>(getMapMode().DPtoLP(<%=width%>), getMapMode().DPtoLP(<%=height%>)); + <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")%> result = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")%>(getMapMode().DPtoLP(<%=width%>), getMapMode().DPtoLP(<%=height%>)); +<% +if (myHelper.isSideAffixed()){ +%> + //FIXME: workaround for #154536 + result.getBounds().setSize(result.getPreferredSize()); +<% +} +%> + return result; } <%if (genNode.getViewmap().find(ResizeConstraints.class) != null) { final ResizeConstraints rc = (ResizeConstraints) genNode.getViewmap().find(ResizeConstraints.class); @@ -484,6 +565,18 @@ return ep; } <%}%> + +<%if (myHelper.hasSideAffixedChildren()) {%> + /** + * Creates figure for this edit part. + * + * Body of this method does not depend on settings in generation model + * so you may safely remove generated tag and modify it. + * + * @generated + */ + protected <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")%> createMainFigure() { +<%} else {%> /** * Creates figure for this edit part. * @@ -493,6 +586,7 @@ * @generated */ protected <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")%> createNodeFigure() { +<%}%> <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")%> figure = createNodePlate(); figure.setLayoutManager(new StackLayout()); IFigure shape = createNodeShape(); Index: src/org/eclipse/gmf/codegen/gmfgen/GenChildSideAffixedNode.java =================================================================== RCS file: src/org/eclipse/gmf/codegen/gmfgen/GenChildSideAffixedNode.java diff -N src/org/eclipse/gmf/codegen/gmfgen/GenChildSideAffixedNode.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/codegen/gmfgen/GenChildSideAffixedNode.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,54 @@ +/** + * + * + * + * $Id$ + */ +package org.eclipse.gmf.codegen.gmfgen; + + +/** + * + * A representation of the model object 'Gen Child Side Affixed Node'. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode#getPreferredSideName Preferred Side Name}
  • + *
+ *

+ * + * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenChildSideAffixedNode() + * @model + * @generated + */ +public interface GenChildSideAffixedNode extends GenChildNode { + /** + * Returns the value of the 'Preferred Side Name' attribute. + * The default value is "NONE". + * + *

+ * If the meaning of the 'Preferred Side Name' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Preferred Side Name' attribute. + * @see #setPreferredSideName(String) + * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenChildSideAffixedNode_PreferredSideName() + * @model default="NONE" + * @generated + */ + String getPreferredSideName(); + + /** + * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode#getPreferredSideName Preferred Side Name}' attribute. + * + * + * @param value the new value of the 'Preferred Side Name' attribute. + * @see #getPreferredSideName() + * @generated + */ + void setPreferredSideName(String value); + +} // GenChildSideAffixedNode Index: src/org/eclipse/gmf/codegen/gmfgen/impl/GenChildSideAffixedNodeImpl.java =================================================================== RCS file: src/org/eclipse/gmf/codegen/gmfgen/impl/GenChildSideAffixedNodeImpl.java diff -N src/org/eclipse/gmf/codegen/gmfgen/impl/GenChildSideAffixedNodeImpl.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/codegen/gmfgen/impl/GenChildSideAffixedNodeImpl.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,160 @@ +/** + * + * + * + * $Id$ + */ +package org.eclipse.gmf.codegen.gmfgen.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; +import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode; + +/** + * + * An implementation of the model object 'Gen Child Side Affixed Node'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.eclipse.gmf.codegen.gmfgen.impl.GenChildSideAffixedNodeImpl#getPreferredSideName Preferred Side Name}
  • + *
+ *

+ * + * @generated + */ +public class GenChildSideAffixedNodeImpl extends GenChildNodeImpl implements GenChildSideAffixedNode { + /** + * The default value of the '{@link #getPreferredSideName() Preferred Side Name}' attribute. + * + * + * @see #getPreferredSideName() + * @generated + * @ordered + */ + protected static final String PREFERRED_SIDE_NAME_EDEFAULT = "NONE"; + + /** + * The cached value of the '{@link #getPreferredSideName() Preferred Side Name}' attribute. + * + * + * @see #getPreferredSideName() + * @generated + * @ordered + */ + protected String preferredSideName = PREFERRED_SIDE_NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected GenChildSideAffixedNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return GMFGenPackage.eINSTANCE.getGenChildSideAffixedNode(); + } + + /** + * + * + * @generated + */ + public String getPreferredSideName() { + return preferredSideName; + } + + /** + * + * + * @generated + */ + public void setPreferredSideName(String newPreferredSideName) { + String oldPreferredSideName = preferredSideName; + preferredSideName = newPreferredSideName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME, oldPreferredSideName, preferredSideName)); + } + + /** + * + * + * @generated + */ + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME: + return getPreferredSideName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME: + setPreferredSideName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(int featureID) { + switch (featureID) { + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME: + setPreferredSideName(PREFERRED_SIDE_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(int featureID) { + switch (featureID) { + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME: + return PREFERRED_SIDE_NAME_EDEFAULT == null ? preferredSideName != null : !PREFERRED_SIDE_NAME_EDEFAULT.equals(preferredSideName); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (preferredSideName: "); + result.append(preferredSideName); + result.append(')'); + return result.toString(); + } + +} //GenChildSideAffixedNodeImpl #P org.eclipse.gmf.codegen.edit Index: src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.edit/src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java,v retrieving revision 1.38 diff -u -r1.38 GMFGenItemProviderAdapterFactory.java --- src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java 7 Jul 2006 11:58:58 -0000 1.38 +++ src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java 24 Aug 2006 17:28:18 -0000 @@ -228,6 +228,28 @@ } /** + * This keeps track of the one adapter used for all {@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode} instances. + * + * + * @generated + */ + protected GenChildSideAffixedNodeItemProvider genChildSideAffixedNodeItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode}. + * + * + * @generated + */ + public Adapter createGenChildSideAffixedNodeAdapter() { + if (genChildSideAffixedNodeItemProvider == null) { + genChildSideAffixedNodeItemProvider = new GenChildSideAffixedNodeItemProvider(this); + } + + return genChildSideAffixedNodeItemProvider; + } + + /** * This keeps track of the one adapter used for all {@link org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode} instances. * * @@ -1364,6 +1386,7 @@ if (customBehaviourItemProvider != null) customBehaviourItemProvider.dispose(); if (genTopLevelNodeItemProvider != null) genTopLevelNodeItemProvider.dispose(); if (genChildNodeItemProvider != null) genChildNodeItemProvider.dispose(); + if (genChildSideAffixedNodeItemProvider != null) genChildSideAffixedNodeItemProvider.dispose(); if (genChildLabelNodeItemProvider != null) genChildLabelNodeItemProvider.dispose(); if (genCompartmentItemProvider != null) genCompartmentItemProvider.dispose(); if (genLinkItemProvider != null) genLinkItemProvider.dispose(); Index: src/org/eclipse/gmf/codegen/gmfgen/provider/GenDiagramItemProvider.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.edit/src/org/eclipse/gmf/codegen/gmfgen/provider/GenDiagramItemProvider.java,v retrieving revision 1.62 diff -u -r1.62 GenDiagramItemProvider.java --- src/org/eclipse/gmf/codegen/gmfgen/provider/GenDiagramItemProvider.java 27 Jun 2006 09:09:48 -0000 1.62 +++ src/org/eclipse/gmf/codegen/gmfgen/provider/GenDiagramItemProvider.java 24 Aug 2006 17:28:19 -0000 @@ -1840,6 +1840,11 @@ newChildDescriptors.add (createChildParameter (GMFGenPackage.eINSTANCE.getGenDiagram_ChildNodes(), + GMFGenFactory.eINSTANCE.createGenChildSideAffixedNode())); + + newChildDescriptors.add + (createChildParameter + (GMFGenPackage.eINSTANCE.getGenDiagram_ChildNodes(), GMFGenFactory.eINSTANCE.createGenChildLabelNode())); newChildDescriptors.add Index: plugin.properties =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.edit/plugin.properties,v retrieving revision 1.112 diff -u -r1.112 plugin.properties --- plugin.properties 7 Jul 2006 11:58:58 -0000 1.112 +++ plugin.properties 24 Aug 2006 17:28:18 -0000 @@ -537,3 +537,6 @@ _UI_GenCommonBase_customBehaviour_feature = Custom Behaviour _UI_CustomBehaviour_key_feature = Key _UI_CustomBehaviour_editPolicyQualifiedClassName_feature = Edit Policy Qualified Class Name +_UI_GenChildSideAffixedNode_type = Gen Child Side Affixed Node +_UI_GenChildSideAffixedNode_preferredSide_feature = Preferred Side +_UI_GenChildSideAffixedNode_preferredSideName_feature = Preferred Side Name Index: src/org/eclipse/gmf/codegen/gmfgen/provider/GenChildSideAffixedNodeItemProvider.java =================================================================== RCS file: src/org/eclipse/gmf/codegen/gmfgen/provider/GenChildSideAffixedNodeItemProvider.java diff -N src/org/eclipse/gmf/codegen/gmfgen/provider/GenChildSideAffixedNodeItemProvider.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/codegen/gmfgen/provider/GenChildSideAffixedNodeItemProvider.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,132 @@ +/** + * + * + * + * $Id$ + */ +package org.eclipse.gmf.codegen.gmfgen.provider; + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; +import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode; + +import org.eclipse.gmf.codegen.gmfgen.presentation.EditorPlugin; + +/** + * This is the item provider adapter for a {@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode} object. + * + * + * @generated + */ +public class GenChildSideAffixedNodeItemProvider + extends GenChildNodeItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * + * + * @generated + */ + public GenChildSideAffixedNodeItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * + * @generated + */ + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns GenChildSideAffixedNode.gif. + * + * + * @generated + */ + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/GenChildSideAffixedNode")); + } + + /** + * This returns the label text for the adapted class. + * + * + * @generated + */ + public String getText(Object object) { + String label = ((GenChildSideAffixedNode)object).getEditPartClassName(); + return label == null || label.length() == 0 ? + getString("_UI_GenChildSideAffixedNode_type") : + getString("_UI_GenChildSideAffixedNode_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * + * + * @generated + */ + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(GenChildSideAffixedNode.class)) { + case GMFGenPackage.GEN_CHILD_SIDE_AFFIXED_NODE__PREFERRED_SIDE_NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s + * describing all of the children that can be created under this object. + * + * + * @generated + */ + protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * + * + * @generated + */ + public ResourceLocator getResourceLocator() { + return EditorPlugin.INSTANCE; + } + +} Index: icons/full/ctool16/CreateGenDiagram_childNodes_GenChildSideAffixedNode.gif =================================================================== RCS file: icons/full/ctool16/CreateGenDiagram_childNodes_GenChildSideAffixedNode.gif diff -N icons/full/ctool16/CreateGenDiagram_childNodes_GenChildSideAffixedNode.gif --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ icons/full/ctool16/CreateGenDiagram_childNodes_GenChildSideAffixedNode.gif 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,1 @@ +GIF89aÄÿÿÿßß¿??_ÀÀÀœœœ@€À@@@ÿÿ_Ÿ_?ÿß?€€€ÀÀÀœœœÀÀ@@@@º—&º—&µ’#®Š¥‚žy™tþýïþýïýóÏýóÏüç£û݃!ù,\ ŽdY>&™ÍÔе’?ƒŽ’tI3ó4ŒÖk’)'?ciCQ(›§ÈŽ*œÊÉF:,&ßKD8R€›è`ð¢É‡¡`FØ„|Ûm*Ëégol|‚e?‚k%!; Index: icons/full/obj16/GenChildSideAffixedNode.gif =================================================================== RCS file: icons/full/obj16/GenChildSideAffixedNode.gif diff -N icons/full/obj16/GenChildSideAffixedNode.gif --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ icons/full/obj16/GenChildSideAffixedNode.gif 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,1 @@ +GIF89a³€€€€ÀÀÀ€€€ÿÿÀÀÀÿÿÿÿÿÿÀÀÀœœœ@€À@@@!ù ,.0ÉI«½8ëôö$áqE·5Úd`J ¡õ<.ñ–&Õ6wŒ©)-§‰FÄ‘; #P org.eclipse.gmf.codegen.ui Index: src/org/eclipse/gmf/internal/codegen/GMFGenConfig.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.ui/src/org/eclipse/gmf/internal/codegen/GMFGenConfig.java,v retrieving revision 1.16 diff -u -r1.16 GMFGenConfig.java --- src/org/eclipse/gmf/internal/codegen/GMFGenConfig.java 9 Aug 2006 14:26:29 -0000 1.16 +++ src/org/eclipse/gmf/internal/codegen/GMFGenConfig.java 24 Aug 2006 17:28:20 -0000 @@ -81,6 +81,7 @@ //for now nothing to reconcile here //we need to match this only to dig into the attributes setMatcher(GMFGEN.getGenChildLabelNode(), getGenNodeMatcher()); + setMatcher(GMFGEN.getGenChildSideAffixedNode(), getGenNodeMatcher()); setMatcher(GMFGEN.getGenCompartment(), new ReflectiveMatcher(GMFGEN.getGenCompartment_Title())); preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_ListLayout()); #P org.eclipse.gmf.graphdef Index: src/org/eclipse/gmf/gmfgraph/Node.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef/src/org/eclipse/gmf/gmfgraph/Node.java,v retrieving revision 1.4 diff -u -r1.4 Node.java --- src/org/eclipse/gmf/gmfgraph/Node.java 23 May 2006 21:09:56 -0000 1.4 +++ src/org/eclipse/gmf/gmfgraph/Node.java 24 Aug 2006 17:28:24 -0000 @@ -17,6 +17,7 @@ *
    *
  • {@link org.eclipse.gmf.gmfgraph.Node#getNodeFigure Node Figure}
  • *
  • {@link org.eclipse.gmf.gmfgraph.Node#getResizeConstraint Resize Constraint}
  • + *
  • {@link org.eclipse.gmf.gmfgraph.Node#getAffixedParentSide Affixed Parent Side}
  • *
*

* @@ -69,4 +70,34 @@ */ void setResizeConstraint(Direction value); + /** + * Returns the value of the 'Affixed Parent Side' attribute. + * The default value is "NONE". + * The literals are from the enumeration {@link org.eclipse.gmf.gmfgraph.Direction}. + * + *

+ * If the meaning of the 'Affixed Parent Side' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Affixed Parent Side' attribute. + * @see org.eclipse.gmf.gmfgraph.Direction + * @see #setAffixedParentSide(Direction) + * @see org.eclipse.gmf.gmfgraph.GMFGraphPackage#getNode_AffixedParentSide() + * @model default="NONE" + * @generated + */ + Direction getAffixedParentSide(); + + /** + * Sets the value of the '{@link org.eclipse.gmf.gmfgraph.Node#getAffixedParentSide Affixed Parent Side}' attribute. + * + * + * @param value the new value of the 'Affixed Parent Side' attribute. + * @see org.eclipse.gmf.gmfgraph.Direction + * @see #getAffixedParentSide() + * @generated + */ + void setAffixedParentSide(Direction value); + } // Node Index: src/org/eclipse/gmf/gmfgraph/GMFGraphPackage.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef/src/org/eclipse/gmf/gmfgraph/GMFGraphPackage.java,v retrieving revision 1.17 diff -u -r1.17 GMFGraphPackage.java --- src/org/eclipse/gmf/gmfgraph/GMFGraphPackage.java 24 Aug 2006 15:38:47 -0000 1.17 +++ src/org/eclipse/gmf/gmfgraph/GMFGraphPackage.java 24 Aug 2006 17:28:24 -0000 @@ -309,13 +309,22 @@ int NODE__RESIZE_CONSTRAINT = DIAGRAM_ELEMENT_FEATURE_COUNT + 1; /** + * The feature id for the 'Affixed Parent Side' attribute. + * + * + * @generated + * @ordered + */ + int NODE__AFFIXED_PARENT_SIDE = DIAGRAM_ELEMENT_FEATURE_COUNT + 2; + + /** * The number of structural features of the 'Node' class. * * * @generated * @ordered */ - int NODE_FEATURE_COUNT = DIAGRAM_ELEMENT_FEATURE_COUNT + 2; + int NODE_FEATURE_COUNT = DIAGRAM_ELEMENT_FEATURE_COUNT + 3; /** * The meta object id for the '{@link org.eclipse.gmf.gmfgraph.impl.ConnectionImpl Connection}' class. @@ -492,6 +501,15 @@ int DIAGRAM_LABEL__RESIZE_CONSTRAINT = NODE__RESIZE_CONSTRAINT; /** + * The feature id for the 'Affixed Parent Side' attribute. + * + * + * @generated + * @ordered + */ + int DIAGRAM_LABEL__AFFIXED_PARENT_SIDE = NODE__AFFIXED_PARENT_SIDE; + + /** * The feature id for the 'Element Icon' attribute. * * @@ -5974,6 +5992,17 @@ EAttribute getNode_ResizeConstraint(); /** + * Returns the meta object for the attribute '{@link org.eclipse.gmf.gmfgraph.Node#getAffixedParentSide Affixed Parent Side}'. + * + * + * @return the meta object for the attribute 'Affixed Parent Side'. + * @see org.eclipse.gmf.gmfgraph.Node#getAffixedParentSide() + * @see #getNode() + * @generated + */ + EAttribute getNode_AffixedParentSide(); + + /** * Returns the meta object for class '{@link org.eclipse.gmf.gmfgraph.Connection Connection}'. * * Index: models/gmfgraph.ecore =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef/models/gmfgraph.ecore,v retrieving revision 1.24 diff -u -r1.24 gmfgraph.ecore --- models/gmfgraph.ecore 24 Aug 2006 15:38:47 -0000 1.24 +++ models/gmfgraph.ecore 24 Aug 2006 17:28:22 -0000 @@ -60,6 +60,8 @@ + + Index: src/org/eclipse/gmf/gmfgraph/impl/GMFGraphPackageImpl.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef/src/org/eclipse/gmf/gmfgraph/impl/GMFGraphPackageImpl.java,v retrieving revision 1.23 diff -u -r1.23 GMFGraphPackageImpl.java --- src/org/eclipse/gmf/gmfgraph/impl/GMFGraphPackageImpl.java 24 Aug 2006 15:38:45 -0000 1.23 +++ src/org/eclipse/gmf/gmfgraph/impl/GMFGraphPackageImpl.java 24 Aug 2006 17:28:25 -0000 @@ -793,6 +793,15 @@ * * @generated */ + public EAttribute getNode_AffixedParentSide() { + return (EAttribute)nodeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ public EClass getConnection() { return connectionEClass; } @@ -2250,6 +2259,7 @@ nodeEClass = createEClass(NODE); createEReference(nodeEClass, NODE__NODE_FIGURE); createEAttribute(nodeEClass, NODE__RESIZE_CONSTRAINT); + createEAttribute(nodeEClass, NODE__AFFIXED_PARENT_SIDE); connectionEClass = createEClass(CONNECTION); createEReference(connectionEClass, CONNECTION__CONNECTION_FIGURE); @@ -2579,6 +2589,7 @@ initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getNode_NodeFigure(), this.getFigure(), null, "nodeFigure", null, 1, 1, Node.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEAttribute(getNode_ResizeConstraint(), this.getDirection(), "resizeConstraint", "NSEW", 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getNode_AffixedParentSide(), this.getDirection(), "affixedParentSide", "NONE", 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(connectionEClass, Connection.class, "Connection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getConnection_ConnectionFigure(), this.getFigure(), null, "connectionFigure", null, 1, 1, Connection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); Index: src/org/eclipse/gmf/gmfgraph/impl/NodeImpl.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef/src/org/eclipse/gmf/gmfgraph/impl/NodeImpl.java,v retrieving revision 1.6 diff -u -r1.6 NodeImpl.java --- src/org/eclipse/gmf/gmfgraph/impl/NodeImpl.java 23 May 2006 21:09:56 -0000 1.6 +++ src/org/eclipse/gmf/gmfgraph/impl/NodeImpl.java 24 Aug 2006 17:28:25 -0000 @@ -23,6 +23,7 @@ *
    *
  • {@link org.eclipse.gmf.gmfgraph.impl.NodeImpl#getNodeFigure Node Figure}
  • *
  • {@link org.eclipse.gmf.gmfgraph.impl.NodeImpl#getResizeConstraint Resize Constraint}
  • + *
  • {@link org.eclipse.gmf.gmfgraph.impl.NodeImpl#getAffixedParentSide Affixed Parent Side}
  • *
*

* @@ -50,6 +51,26 @@ protected Direction resizeConstraint = RESIZE_CONSTRAINT_EDEFAULT; /** + * The default value of the '{@link #getAffixedParentSide() Affixed Parent Side}' attribute. + * + * + * @see #getAffixedParentSide() + * @generated + * @ordered + */ + protected static final Direction AFFIXED_PARENT_SIDE_EDEFAULT = Direction.NONE_LITERAL; + + /** + * The cached value of the '{@link #getAffixedParentSide() Affixed Parent Side}' attribute. + * + * + * @see #getAffixedParentSide() + * @generated + * @ordered + */ + protected Direction affixedParentSide = AFFIXED_PARENT_SIDE_EDEFAULT; + + /** * * * @generated @@ -102,12 +123,35 @@ * * @generated */ + public Direction getAffixedParentSide() { + return affixedParentSide; + } + + /** + * + * + * @generated + */ + public void setAffixedParentSide(Direction newAffixedParentSide) { + Direction oldAffixedParentSide = affixedParentSide; + affixedParentSide = newAffixedParentSide == null ? AFFIXED_PARENT_SIDE_EDEFAULT : newAffixedParentSide; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE, oldAffixedParentSide, affixedParentSide)); + } + + /** + * + * + * @generated + */ public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case GMFGraphPackage.NODE__NODE_FIGURE: return getNodeFigure(); case GMFGraphPackage.NODE__RESIZE_CONSTRAINT: return getResizeConstraint(); + case GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE: + return getAffixedParentSide(); } return super.eGet(featureID, resolve, coreType); } @@ -122,6 +166,9 @@ case GMFGraphPackage.NODE__RESIZE_CONSTRAINT: setResizeConstraint((Direction)newValue); return; + case GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE: + setAffixedParentSide((Direction)newValue); + return; } super.eSet(featureID, newValue); } @@ -136,6 +183,9 @@ case GMFGraphPackage.NODE__RESIZE_CONSTRAINT: setResizeConstraint(RESIZE_CONSTRAINT_EDEFAULT); return; + case GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE: + setAffixedParentSide(AFFIXED_PARENT_SIDE_EDEFAULT); + return; } super.eUnset(featureID); } @@ -151,6 +201,8 @@ return getNodeFigure() != null; case GMFGraphPackage.NODE__RESIZE_CONSTRAINT: return resizeConstraint != RESIZE_CONSTRAINT_EDEFAULT; + case GMFGraphPackage.NODE__AFFIXED_PARENT_SIDE: + return affixedParentSide != AFFIXED_PARENT_SIDE_EDEFAULT; } return super.eIsSet(featureID); } @@ -166,6 +218,8 @@ StringBuffer result = new StringBuffer(super.toString()); result.append(" (resizeConstraint: "); result.append(resizeConstraint); + result.append(", affixedParentSide: "); + result.append(affixedParentSide); result.append(')'); return result.toString(); } #P org.eclipse.gmf.map Index: src/org/eclipse/gmf/mappings/impl/GMFMapPackageImpl.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.map/src/org/eclipse/gmf/mappings/impl/GMFMapPackageImpl.java,v retrieving revision 1.41 diff -u -r1.41 GMFMapPackageImpl.java --- src/org/eclipse/gmf/mappings/impl/GMFMapPackageImpl.java 25 Jun 2006 11:24:11 -0000 1.41 +++ src/org/eclipse/gmf/mappings/impl/GMFMapPackageImpl.java 24 Aug 2006 17:28:27 -0000 @@ -1829,7 +1829,7 @@ new String[] { "constraints", "http://www.eclipse.org/gmf/2005/constraints", "constraintsMeta", "http://www.eclipse.org/gmf/2005/constraints/meta" - }); + }); } /** @@ -1853,7 +1853,7 @@ new String[] { "def", "context", "ocl", "self.getDomainContext()" - }); + }); addAnnotation (constraintEClass, source, @@ -2061,6 +2061,20 @@ new String[] { "ocl", "not child.getDomainContext().oclIsUndefined() implies not containmentFeature.oclIsUndefined()", "description", "ChildReference to NodeMapping with domainElement should define \'containmentFeature\'" + }); + addAnnotation + (childReferenceEClass, + source, + new String[] { + "ocl", "let child:NodeMapping=(if ownedChild.oclIsUndefined() then referencedChild else ownedChild endif) in (((child.labelMappings->size() = 1) and child.labelMappings->forAll( soleLabel: LabelMapping | soleLabel.diagramLabel = child.diagramNode)) implies (child.diagramNode.affixedParentSide = gmfgraph::Direction::NSEW))", + "description", "Side-affixed children can not be pure labels" + }); + addAnnotation + (childReferenceEClass, + source, + new String[] { + "ocl", "let child:NodeMapping=(if ownedChild.oclIsUndefined() then referencedChild else ownedChild endif) in ((not compartment.oclIsUndefined()) implies (child.diagramNode.affixedParentSide = gmfgraph::Direction::NSEW))", + "description", "Side-affixed children can not be placed in compartments" }); addAnnotation (linkMappingEClass, Index: models/gmfmap.ecore =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.map/models/gmfmap.ecore,v retrieving revision 1.43 diff -u -r1.43 gmfmap.ecore --- models/gmfmap.ecore 25 Jun 2006 11:24:11 -0000 1.43 +++ models/gmfmap.ecore 24 Aug 2006 17:28:26 -0000 @@ -107,6 +107,14 @@
+ +
+
+ + +
+
+ extract to interface NotationInstanceAspect, and use it in CanvasMapping +} + +interface NeedsContainment { + @constraints( + ocl="not containmentFeature.oclIsUndefined() implies containmentFeature.containment", description="Containment EReference expected" + ) + ref ecore.EReference[?] containmentFeature; +} + +// Not feasible for pure design nodes: @constraints(ocl="not (child.domainMetaElement.oclIsUndefined() and containmentFeature.oclIsUndefined())", description="Either 'domainMetaElement' or 'containmentFeature' must be specified") +@constraints(ocl="not containmentFeature.oclIsUndefined() implies containmentFeature.eReferenceType.isSuperTypeOf(child.domainMetaElement)", description="'Containment Feature' must reference the same class or super type of 'Domain Meta Element' of the referenced node") +abstract class NodeReference extends NeedsContainment { + // extends NeedsContainment OR ref ecore.EReference[?] containmentFeature; + @constraints(ocl="not childrenFeature.oclIsUndefined() implies childrenFeature.eReferenceType.isSuperTypeOf(child.domainMetaElement)", description="'Children Feature' must reference the same class or super type of 'Domain Meta Element' of the referenced node") + ref ecore.EReference[?] childrenFeature; + + readonly unsettable derived volatile transient !resolve ref NodeMapping child; +} + +@constraints(ocl="not (ownedChild.oclIsUndefined() and referencedChild.oclIsUndefined())", description="Either 'ownedChild' or 'referencedChild' NodeMapping must be set") +@constraints(ocl="not childrenFeature.oclIsUndefined() implies childrenFeature.eContainingClass.isSuperTypeOf(parentNode.domainMetaElement)", description="'Children Feature' must be owned by 'Domain Meta Element' or its super type of this reference parent Node Mapping") +@constraints(ocl="not containmentFeature.oclIsUndefined() implies containmentFeature.eContainingClass.isSuperTypeOf(parentNode.domainMetaElement)", description="'Containment Feature' must be owned by 'Domain Meta Element' or its super type of this reference parent Node Mapping") +@constraints(ocl="not child.getDomainContext().oclIsUndefined() implies not containmentFeature.oclIsUndefined()", description="ChildReference to NodeMapping with domainElement should define 'containmentFeature'") +@constraints(ocl="let child:NodeMapping=(if ownedChild.oclIsUndefined() then referencedChild else ownedChild endif) in (((child.labelMappings->size() = 1) and child.labelMappings->forAll( soleLabel: LabelMapping | soleLabel.diagramLabel = child.diagramNode)) implies (child.diagramNode.affixedParentSide = gmfgraph::Direction::NSEW))", description="Side-affixed children can not be pure labels") +@constraints(ocl="let child:NodeMapping=(if ownedChild.oclIsUndefined() then referencedChild else ownedChild endif) in ((not compartment.oclIsUndefined()) implies (child.diagramNode.affixedParentSide = gmfgraph::Direction::NSEW))", description="Side-affixed children can not be placed in compartments") +class ChildReference extends NodeReference { + ref NodeMapping[1]#children parentNode; // TODO readonly, no much sense to setParentNode + + ref CompartmentMapping[?]#children compartment; + //ref gmfgraph.Node[?] overrideNode; + + // either one of these two must me set + val NodeMapping[?] ownedChild; + ref NodeMapping[?] referencedChild; + +} + +class TopNodeReference extends NodeReference { + val NodeMapping[1] ownedChild; +} + +@genmodel(documentation="Both top-level diagram node and any inner node") +class NodeMapping extends MappingEntry, MenuOwner, ToolOwner, AppearanceSteward { + ref gmfgraph.Node[1] diagramNode; + + ordered val ChildReference[*]#parentNode children; + + val CompartmentMapping[*]#parentNode compartments; +//FIXME no containment feature - persist in resource then. Was: @constraints(ocl="not containmentFeature.oclIsUndefined() ", description="The child node mapping containmentFeature must be set") +} + +class CompartmentMapping { + ref gmfgraph.Compartment[1] compartment; + + readonly ref NodeMapping[1]#compartments parentNode; + ref ChildReference[*]#compartment children; +} + +@genmodel(documentation="Connection element") +@constraints(ocl="domainMetaElement.oclIsUndefined() implies containmentFeature.oclIsUndefined() and sourceMetaFeature.oclIsUndefined()", description="Link mapping without 'Domain Element' class does not use 'Containment Feature' and 'Source Feature'") +@constraints(ocl="not domainMetaElement.oclIsUndefined() implies containmentFeature.eReferenceType.isSuperTypeOf(domainMetaElement)", description="'Containment Feature' must reference the same class or super type of 'Domain Element' EClass") +class LinkMapping extends MappingEntry, NeedsContainment, MenuOwner, ToolOwner, AppearanceSteward { + ref gmfgraph.Connection[1] diagramLink; + + @constraints( + ocl="not domainMetaElement.oclIsUndefined() implies sourceMetaFeature.oclIsUndefined() or sourceMetaFeature.eContainingClass.isSuperTypeOf(domainMetaElement)", description="'Source Feature' must be owned by the link 'Domain Element' or its super type" + ) + ref ecore.EStructuralFeature[?] sourceMetaFeature; + // rename linkMetaFeature to linkTargetMetaReference; + @constraints( + ocl="not(domainMetaElement.oclIsUndefined() or linkMetaFeature.oclIsUndefined()) implies linkMetaFeature.eContainingClass.isSuperTypeOf(domainMetaElement)", description="'Target Feature' must be owned by the link 'Domain Element' or its super type" + ) + ref ecore.EStructuralFeature[?] linkMetaFeature; // XXX EReference? Links only to classes, not to datatypes/enums (i.e. attributes) + // super.drtClass isSubtypeOf(diagramrt.DiagramLink) + @genmodel(documentation="Specifies additional restrictions on link creation") + val LinkConstraints#linkMapping creationConstraints; +} + +class CanvasMapping { + ref gmfgraph.Canvas[1] diagramCanvas; + ref ecore.EPackage domainModel; + @constraints( + ocl="not domainMetaElement.oclIsUndefined() implies not(domainMetaElement.abstract or domainMetaElement.interface)", + description="Top-level diagram container must be concrete" + ) + ref ecore.EClass domainMetaElement; + ref tooldef.Palette[?] palette; + ordered ref tooldef.MainMenu[*] menuContributions; + ordered ref tooldef.Toolbar[*] toolbarContributions; + // ref ecore.EPackage drtPackage; + // super.drtClass isSubtypeOf(diagramrt.DiagramCanvas) +} + +@genmodel(documentation="Label on diagram; either features or text should be specified") +class LabelMapping { + ref gmfgraph.DiagramLabel[1] diagramLabel; + @constraints(ocl="features->forAll(f | f.eContainingClass.isSuperTypeOf(mapEntry.domainMetaElement))", description="Label attributes must be available in 'Domain Element' EClass of the labeled mapping entry") + ref ecore.EAttribute[0..*] features; // if 0 then label text from graphdef should be used + attr boolean readOnly; // TODO gmfgraph.DiagramLabel#readOnly would be better place? + @genmodel(documentation="Pattern for java.text.MessageFormat to produce label on diagram") + attr String viewPattern; + @genmodel(documentation="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used") + attr String editPattern; + readonly ref MappingEntry[1]#labelMappings mapEntry; +} + +////////////// +// Constraints +// + +@genmodel(documentation="Boolean type value expression which is to be evaluated in a context") +@constraintsMeta(def="Constraint") +class Constraint extends ValueExpression { +} + +@genmodel(documentation="Groups constraints on the link source and target end") +@constraints(ocl="not (sourceEnd.oclIsUndefined() and targetEnd.oclIsUndefined())", description="Either 'sourceEnd' or 'targetEnd' constraint must be specified") +class LinkConstraints { + + @genmodel(documentation="References the link mapping restricted by these constraints") + readonly ref LinkMapping[1]#creationConstraints linkMapping; + + @genmodel(documentation="Restriction enforced by the the source end, may reference variable 'oppositeEnd' pointing to targetEnd domainMetaElement instance if available.") + @constraintsMeta(def="context", ocl="let lm:LinkMapping=linkMapping in if lm.sourceMetaFeature.oclIsUndefined() then (if lm.containmentFeature.oclIsUndefined() then lm.linkMetaFeature.eContainingClass else lm.containmentFeature.eContainingClass endif) else lm.sourceMetaFeature.oclAsType(ecore::EReference).eReferenceType endif") + @constraintsMeta(def="variable", name="oppositeEnd", type.ocl="linkMapping.linkMetaFeature.eType") + val Constraint sourceEnd; + + @genmodel(documentation="Restriction enforced by the the target end, may reference variable 'oppositeEnd' pointing to sourceEnd domainMetaElement instance.") + @constraintsMeta(def="context", ocl="linkMapping.linkMetaFeature.eType.oclAsType(ecore::EClass)") + @constraintsMeta(def="variable", name="oppositeEnd", type.ocl="let lm:LinkMapping=linkMapping in if lm.sourceMetaFeature.oclIsUndefined() then (if lm.containmentFeature.oclIsUndefined() then lm.linkMetaFeature.eContainingClass else lm.containmentFeature.eContainingClass endif) else lm.sourceMetaFeature.oclAsType(ecore::EReference).eReferenceType endif") + val Constraint targetEnd; +} + +@constraintsMeta(def="ValueSpec") +@genmodel(documentation="Expression as a textual statement which results in a value when evaluated in a context") +class ValueExpression { + @genmodel(documentation="The text of the expression") + @constraintsMeta(def="body") + attr String[1] body; + @genmodel(documentation="Specifies the language in which the expression is stated") + attr Language[1] language = "ocl"; + @constraintsMeta(def="lang") + readonly volatile transient derived attr String langName; +} +@genmodel(documentation="Base class for initializers of domain model elements") +interface ElementInitializer { + ref MappingEntry[1]#domainInitializer mappingEntry; +} + +@genmodel(documentation="Feature sequence initializer") +class FeatureSeqInitializer extends ElementInitializer { + @genmodel(documentation="Value specifications as initializers for individual features which should be initialized in the order given by this list") + val FeatureValueSpec[+]#featureSeqInitializer initializers; +} + +@genmodel(documentation="Value specification associated with a specific feature") +@constraintsMeta(def="ValueSpec") +class FeatureValueSpec extends ValueExpression { + @genmodel(documentation="Denotes the feature for which this value expression is specified. Its containing EClass is the context for evaluation.") + @constraintsMeta(def="type") + @constraints(ocl="feature.eContainingClass.isSuperTypeOf(featureSeqInitializer.mappingEntry.getDomainContext())", description="Initialized 'Feature' must be owned by 'Domain Element' or its super type") + ref ecore.EStructuralFeature[1] feature; + ref FeatureSeqInitializer[1]#initializers featureSeqInitializer; +} + +///////////////////////// +// Tooling Aspects/Facets +// + +interface MenuOwner { + ref tooldef.ContextMenu contextMenu; +} + +interface ToolOwner { + // constraint: canvasMapping.palette contains this tool + @genmodel(documentation="Way to create this element") + ref tooldef.AbstractTool tool; +} + +interface AppearanceSteward { + ref tooldef.StyleSelector appearanceStyle; +} + +///////// +// Audits +// + +@genmodel(documentation="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework") +class AuditContainer { + @genmodel(documentation="Identifier which is unique within the scope of its parent container.") + @constraints(ocl="not parentContainer.oclIsUndefined() implies parentContainer.childContainers->one(i | i.id = self.id)", description="Audit container with the same ID already exists") + attr String[1] ~id; + + @genmodel(documentation="A human readable name for the category of audits organized in this container") + attr String name; + @genmodel(documentation="The detailed description of this audit container") + attr String description; + + ref AuditContainer#childContainers parentContainer; + + @genmodel(documentation="The audit rules organized in this container") + val AuditRule[*]#container audits; + val AuditContainer[*]#parentContainer childContainers; +} + +@GenModel(documentation="Base class for rule like audit, metric rules...") +interface RuleBase { + @GenModel(documentation="A human readable name of this rule") + attr String name; + + @GenModel(documentation="The detailed description of this rule semantics") + attr String description; +} + +class AuditRule extends RuleBase { + @genmodel(documentation="Unique identifier of this audit rule") + @constraints(ocl="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)", description="Audit rule with the same ID already exists") + attr String[1] ~id; + + @genmodel(documentation="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target") + @constraintsMeta(def="context", "ref"="target") + val Constraint[1] rule; + + @GenModel(documentation="The target representing the context this audit is evaluated in") + val Auditable[1]#rule target; + + @genmodel(documentation="Describes the severity of this audit rule violation") + attr Severity severity = "ERROR"; + + @genmodel(documentation="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable") + attr boolean useInLiveMode = false; + + @genmodel(documentation="The text message to be reported in case of this audit violation") + attr String message; + + @genmodel(documentation="The containing audit container of this audit rule") + ref AuditContainer[1]#audits container; +} + +@GenModel(documentation="Target for rules applied on domain model elements") +@constraintsMeta(def="context", ocl="element") +class DomainElementTarget extends Auditable, Measurable { + + @GenModel(documentation="Targeted domain model element") + ref ecore.EClass[1] element; +} + +@GenModel(documentation="Represents value based target, useful for audit rules expression not capable of ecore meta-model access") +@constraintsMeta(def="context", ocl="attribute.eType") +class DomainAttributeTarget extends Auditable { + + @GenModel(documentation="The attribute the value of which is used as context in audit rule defining this target") + ref ecore.EAttribute[1] attribute; + + @GenModel(documentation="Indicates whether null value of the attribute is reported as audit failure or success") + attr boolean nullAsError; +} + +@GenModel(documentation="Target for rules applied on diagram notation model selectively, for specific visualized element") +@constraintsMeta(def="context", ocl="if element.oclIsKindOf(NodeMapping) then 'notation::Node' else 'notation::Edge' endif") +class DiagramElementTarget extends Auditable, Measurable { + + @GenModel(documentation="Targeted visualized element") + ref MappingEntry[1] element; +} + +@GenModel(documentation="Target for rules applied on diagram notation model elements") +@constraintsMeta(def="context", ocl="element") +class NotationElementTarget extends Auditable, Measurable { + + @GenModel(documentation="Targeted diagram notation model element") + @constraints(ocl="element.eAllSuperTypes->including(element)->one(ePackage.name = 'notation' and name = 'View')", description="'notation::View' or its sub-class must be set to NotationElement target") + ref ecore.EClass[1] element; +} + +class MetricContainer { + val MetricRule[+]#container metrics; +} + +@constraints(ocl="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit < highLimit", description="Metric value 'lowLimit' must be smaller then 'highLimit'") +class MetricRule extends RuleBase { + + @GenModel(documentation="Unique key identifying this metric an abbreviation for this metric") + @constraints(ocl="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)", description="Metric rule with the same 'key' already exists") + attr String[1] key; + + @GenModel(documentation="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives") + @constraintsMeta(def="context", "ref"="target") + @constraintsMeta(def="type", ocl="'ecore::EDoubleObject'") + val ValueExpression[1] rule; + + @GenModel(documentation="The target representing the context this metric is evaluated in") + val Measurable[1] target; + + @GenModel(documentation="The lowest acceptable value of the rule expression result") + attr Double lowLimit; + @GenModel(documentation="The highest acceptable value of the rule expression result") + attr Double highLimit; + + @GenModel(documentation="The containing metric container of this metric rule") + ref MetricContainer[1]#metrics container; +} + +@GenModel(documentation="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier") +@constraintsMeta(def="context", ocl="'ecore::EDoubleObject'") +class AuditedMetricTarget extends Auditable { + + @GenModel(documentation="Metric which can be checked by audit") + ref MetricRule[1] metric; +} + +@GenModel(documentation="Target suitable for auditing") +interface Auditable { +} + +@GenModel(documentation="Marker interface for anything that can be subject to metrics") +interface Measurable { +} + +enum Severity { + INFO = 0; + WARNING = 1; + ERROR = 2; +} + +enum Language { + ocl = 0; + java = 1; + regexp = 2; + nregexp = 3; +}