### Eclipse Workspace Patch 1.0
#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.35
diff -u -r1.35 GMFGenItemProviderAdapterFactory.java
--- src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java 24 May 2006 09:20:08 -0000 1.35
+++ src/org/eclipse/gmf/codegen/gmfgen/provider/GMFGenItemProviderAdapterFactory.java 24 May 2006 22:47:15 -0000
@@ -646,6 +646,28 @@
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes} instances.
+ *
+ *
+ * @generated
+ */
+ protected FigureAccessorAttributesItemProvider figureAccessorAttributesItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes}.
+ *
+ *
+ * @generated
+ */
+ public Adapter createFigureAccessorAttributesAdapter() {
+ if (figureAccessorAttributesItemProvider == null) {
+ figureAccessorAttributesItemProvider = new FigureAccessorAttributesItemProvider(this);
+ }
+
+ return figureAccessorAttributesItemProvider;
+ }
+
+ /**
* This keeps track of the one adapter used for all {@link org.eclipse.gmf.codegen.gmfgen.FigureViewmap} instances.
*
*
@@ -1317,6 +1339,7 @@
if (resizeConstraintsItemProvider != null) resizeConstraintsItemProvider.dispose();
if (defaultSizeAttributesItemProvider != null) defaultSizeAttributesItemProvider.dispose();
if (labelOffsetAttributesItemProvider != null) labelOffsetAttributesItemProvider.dispose();
+ if (figureAccessorAttributesItemProvider != null) figureAccessorAttributesItemProvider.dispose();
if (figureViewmapItemProvider != null) figureViewmapItemProvider.dispose();
if (snippetViewmapItemProvider != null) snippetViewmapItemProvider.dispose();
if (innerClassViewmapItemProvider != null) innerClassViewmapItemProvider.dispose();
Index: src/org/eclipse/gmf/codegen/gmfgen/provider/ViewmapItemProvider.java
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.edit/src/org/eclipse/gmf/codegen/gmfgen/provider/ViewmapItemProvider.java,v
retrieving revision 1.7
diff -u -r1.7 ViewmapItemProvider.java
--- src/org/eclipse/gmf/codegen/gmfgen/provider/ViewmapItemProvider.java 17 May 2006 14:22:35 -0000 1.7
+++ src/org/eclipse/gmf/codegen/gmfgen/provider/ViewmapItemProvider.java 24 May 2006 22:47:15 -0000
@@ -194,6 +194,11 @@
(createChildParameter
(GMFGenPackage.eINSTANCE.getViewmap_Attributes(),
GMFGenFactory.eINSTANCE.createLabelOffsetAttributes()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (GMFGenPackage.eINSTANCE.getViewmap_Attributes(),
+ GMFGenFactory.eINSTANCE.createFigureAccessorAttributes()));
}
/**
Index: plugin.properties
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen.edit/plugin.properties,v
retrieving revision 1.98
diff -u -r1.98 plugin.properties
--- plugin.properties 24 May 2006 09:20:08 -0000 1.98
+++ plugin.properties 24 May 2006 22:47:14 -0000
@@ -437,4 +437,5 @@
_UI_ParentAssignedViewmap_getterName_feature = Accesor to parent figure's chile
_UI_ParentAssignedViewmap_setterName_feature = Typed child.setFigure override
_UI_ParentAssignedViewmap_figureQualifiedClassName_feature = Figure Qualified Class Name
-
\ No newline at end of file
+
_UI_FigureAccessorAttributes_type = Figure Accessor Attributes
+_UI_FigureAccessorAttributes_figureGetterName_feature = Figure Getter Name
Index: src/org/eclipse/gmf/codegen/gmfgen/provider/FigureAccessorAttributesItemProvider.java
===================================================================
RCS file: src/org/eclipse/gmf/codegen/gmfgen/provider/FigureAccessorAttributesItemProvider.java
diff -N src/org/eclipse/gmf/codegen/gmfgen/provider/FigureAccessorAttributesItemProvider.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gmf/codegen/gmfgen/provider/FigureAccessorAttributesItemProvider.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,156 @@
+/**
+ *
+ *
+ *
+ * $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.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+
+import org.eclipse.gmf.codegen.gmfgen.presentation.EditorPlugin;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes} object.
+ *
+ *
+ * @generated
+ */
+public class FigureAccessorAttributesItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ *
+ *
+ * @generated
+ */
+ public FigureAccessorAttributesItemProvider(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);
+
+ addFigureGetterNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Figure Getter Name feature.
+ *
+ *
+ * @generated
+ */
+ protected void addFigureGetterNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_FigureAccessorAttributes_figureGetterName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_FigureAccessorAttributes_figureGetterName_feature", "_UI_FigureAccessorAttributes_type"),
+ GMFGenPackage.eINSTANCE.getFigureAccessorAttributes_FigureGetterName(),
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns FigureAccessorAttributes.gif.
+ *
+ *
+ * @generated
+ */
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/FigureAccessorAttributes"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ *
+ *
+ * @generated
+ */
+ public String getText(Object object) {
+ String label = ((FigureAccessorAttributes)object).getFigureGetterName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_FigureAccessorAttributes_type") :
+ getString("_UI_FigureAccessorAttributes_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(FigureAccessorAttributes.class)) {
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_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;
+ }
+
+}
#P org.eclipse.gmf.tests
Index: src/org/eclipse/gmf/tests/gen/ViewmapProducersTest.java
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gen/ViewmapProducersTest.java,v
retrieving revision 1.11
diff -u -r1.11 ViewmapProducersTest.java
--- src/org/eclipse/gmf/tests/gen/ViewmapProducersTest.java 24 May 2006 18:05:31 -0000 1.11
+++ src/org/eclipse/gmf/tests/gen/ViewmapProducersTest.java 24 May 2006 22:47:16 -0000
@@ -21,6 +21,7 @@
import org.eclipse.emf.codegen.util.CodeGenUtil;
import org.eclipse.gmf.bridge.genmodel.InnerClassViewmapProducer;
import org.eclipse.gmf.bridge.genmodel.ViewmapProducer;
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
import org.eclipse.gmf.codegen.gmfgen.InnerClassViewmap;
import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
@@ -45,6 +46,7 @@
import org.eclipse.gmf.gmfgraph.Node;
import org.eclipse.gmf.gmfgraph.util.FigureQualifiedNameSwitch;
import org.eclipse.gmf.gmfgraph.util.RuntimeFQNSwitch;
+import org.eclipse.gmf.graphdef.codegen.NamingStrategy;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ASTParser;
@@ -252,6 +254,41 @@
assertEquals(icv.getClassName(), innerClassGenName);
}
+ public void testPinnedCompartment(){
+ Node node = createNode("Root", GMFGraphFactory.eINSTANCE.createRectangle());
+ Figure rootFigure = (Figure)node.getFigure();
+ Figure compartmentPaneA = GMFGraphFactory.eINSTANCE.createRectangle();
+ compartmentPaneA.setName("CompartmentA");
+ rootFigure.getChildren().add(compartmentPaneA);
+
+ Figure intermediate = GMFGraphFactory.eINSTANCE.createEllipse();
+ rootFigure.getChildren().add(intermediate);
+ Figure compartmentPaneB = GMFGraphFactory.eINSTANCE.createRectangle();
+ compartmentPaneB.setName("CompartmentB");
+ intermediate.getChildren().add(compartmentPaneB);
+
+ Compartment compartmentA = createCompartment("CompartmentA", compartmentPaneA);
+ Compartment compartmentB = createCompartment("CompartmentB", compartmentPaneB);
+
+ FigureAccessorAttributes attributesA = (FigureAccessorAttributes) getProducer().create(compartmentA).find(FigureAccessorAttributes.class);
+ FigureAccessorAttributes attributesB = (FigureAccessorAttributes) getProducer().create(compartmentB).find(FigureAccessorAttributes.class);
+
+ assertNotNull(attributesA);
+ assertNotNull(attributesB);
+
+ assertEquals(attributesA.getFigureGetterName(), NamingStrategy.INSTANCE.getChildFigureGetterName(compartmentPaneA));
+ assertEquals(attributesB.getFigureGetterName(), NamingStrategy.INSTANCE.getChildFigureGetterName(compartmentPaneB));
+ }
+
+ public void testFloatingCompartment(){
+ Compartment compartment = createCompartment("Floating", GMFGraphFactory.eINSTANCE.createEllipse());
+ assertNull(getProducer().create(compartment).find(FigureAccessorAttributes.class));
+
+ Compartment noFigure = createCompartment("NoFigure", GMFGraphFactory.eINSTANCE.createCustomFigure());
+ noFigure.setFigure(null);
+ assertNull(getProducer().create(noFigure).find(FigureAccessorAttributes.class));
+ }
+
public void testResizeConstaintsSingleDiagonals(){
Figure f = GMFGraphFactory.eINSTANCE.createRoundedRectangle();
f.setName("Figure");
@@ -348,6 +385,15 @@
return createNode(name, figure, null);
}
+ private Compartment createCompartment(String name, Figure figure){
+ assertNotNull(name);
+ assertNotNull(figure);
+ Compartment result = GMFGraphFactory.eINSTANCE.createCompartment();
+ result.setName(name);
+ result.setFigure(figure);
+ return result;
+ }
+
private Node createNode(String name, Figure figure, Direction optionalConstaint){
assertNotNull(name);
assertNotNull(figure);
#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.127
diff -u -r1.127 GMFGenPackageImpl.java
--- src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java 24 May 2006 09:20:16 -0000 1.127
+++ src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenPackageImpl.java 24 May 2006 22:47:22 -0000
@@ -29,6 +29,7 @@
import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
import org.eclipse.gmf.codegen.gmfgen.FeatureLinkModelFacet;
import org.eclipse.gmf.codegen.gmfgen.FeatureModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
@@ -431,6 +432,13 @@
*
* @generated
*/
+ private EClass figureAccessorAttributesEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
private EClass figureViewmapEClass = null;
/**
@@ -2691,6 +2699,24 @@
*
* @generated
*/
+ public EClass getFigureAccessorAttributes() {
+ return figureAccessorAttributesEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getFigureAccessorAttributes_FigureGetterName() {
+ return (EAttribute)figureAccessorAttributesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
public EClass getFigureViewmap() {
return figureViewmapEClass;
}
@@ -3975,6 +4001,9 @@
createEAttribute(labelOffsetAttributesEClass, LABEL_OFFSET_ATTRIBUTES__X);
createEAttribute(labelOffsetAttributesEClass, LABEL_OFFSET_ATTRIBUTES__Y);
+ figureAccessorAttributesEClass = createEClass(FIGURE_ACCESSOR_ATTRIBUTES);
+ createEAttribute(figureAccessorAttributesEClass, FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME);
+
viewmapEClass = createEClass(VIEWMAP);
createEReference(viewmapEClass, VIEWMAP__ATTRIBUTES);
createEAttribute(viewmapEClass, VIEWMAP__REQUIRED_PLUGIN_IDS);
@@ -4197,6 +4226,7 @@
resizeConstraintsEClass.getESuperTypes().add(this.getAttributes());
defaultSizeAttributesEClass.getESuperTypes().add(this.getAttributes());
labelOffsetAttributesEClass.getESuperTypes().add(this.getAttributes());
+ figureAccessorAttributesEClass.getESuperTypes().add(this.getAttributes());
figureViewmapEClass.getESuperTypes().add(this.getViewmap());
snippetViewmapEClass.getESuperTypes().add(this.getViewmap());
innerClassViewmapEClass.getESuperTypes().add(this.getViewmap());
@@ -4637,6 +4667,9 @@
initEAttribute(getLabelOffsetAttributes_X(), ecorePackage.getEInt(), "x", null, 0, 1, LabelOffsetAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getLabelOffsetAttributes_Y(), ecorePackage.getEInt(), "y", null, 0, 1, LabelOffsetAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(figureAccessorAttributesEClass, FigureAccessorAttributes.class, "FigureAccessorAttributes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFigureAccessorAttributes_FigureGetterName(), ecorePackage.getEString(), "figureGetterName", null, 0, 1, FigureAccessorAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
initEClass(viewmapEClass, Viewmap.class, "Viewmap", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getViewmap_Attributes(), this.getAttributes(), null, "attributes", null, 0, -1, Viewmap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getViewmap_RequiredPluginIDs(), ecorePackage.getEString(), "requiredPluginIDs", null, 0, -1, Viewmap.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.50
diff -u -r1.50 GMFGenFactoryImpl.java
--- src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java 24 May 2006 09:20:16 -0000 1.50
+++ src/org/eclipse/gmf/codegen/gmfgen/impl/GMFGenFactoryImpl.java 24 May 2006 22:47:21 -0000
@@ -137,6 +137,7 @@
case GMFGenPackage.RESIZE_CONSTRAINTS: return createResizeConstraints();
case GMFGenPackage.DEFAULT_SIZE_ATTRIBUTES: return createDefaultSizeAttributes();
case GMFGenPackage.LABEL_OFFSET_ATTRIBUTES: return createLabelOffsetAttributes();
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES: return createFigureAccessorAttributes();
case GMFGenPackage.FIGURE_VIEWMAP: return createFigureViewmap();
case GMFGenPackage.SNIPPET_VIEWMAP: return createSnippetViewmap();
case GMFGenPackage.INNER_CLASS_VIEWMAP: return createInnerClassViewmap();
@@ -472,6 +473,16 @@
*
* @generated
*/
+ public FigureAccessorAttributes createFigureAccessorAttributes() {
+ FigureAccessorAttributesImpl figureAccessorAttributes = new FigureAccessorAttributesImpl();
+ return figureAccessorAttributes;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
public FigureViewmap createFigureViewmap() {
FigureViewmapImpl figureViewmap = new FigureViewmapImpl();
return figureViewmap;
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.84
diff -u -r1.84 NodeEditPartGenerator.java
--- src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java 24 May 2006 18:05:30 -0000 1.84
+++ src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java 24 May 2006 22:47:18 -0000
@@ -4,6 +4,7 @@
import org.eclipse.emf.codegen.ecore.genmodel.*;
import org.eclipse.gmf.codegen.gmfgen.*;
import org.eclipse.gmf.common.codegen.*;
+import org.eclipse.gmf.codegen.gmfgen.util.*;
public class NodeEditPartGenerator {
@@ -98,62 +99,78 @@
protected final String TEXT_79 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
protected final String TEXT_80 = " getPrimaryShape() {" + NL + "\t\treturn (";
protected final String TEXT_81 = ") primaryShape;" + NL + "\t}";
- protected final String TEXT_82 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean addFixedChild(EditPart childEditPart) {";
- protected final String TEXT_83 = NL + "\t\tif (childEditPart instanceof ";
- protected final String TEXT_84 = ") {" + NL + "\t\t\t((";
- protected final String TEXT_85 = ") childEditPart).";
- protected final String TEXT_86 = "(getPrimaryShape().";
- protected final String TEXT_87 = "());" + NL + "\t\t\treturn true;" + NL + "\t\t}";
- protected final String TEXT_88 = NL + "\t\treturn false;" + NL + "\t}";
- protected final String TEXT_89 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
- protected final String TEXT_90 = " createNodePlate() {";
- protected final String TEXT_91 = NL + "\t\treturn new ";
- protected final String TEXT_92 = "(getMapMode().DPtoLP(";
- protected final String TEXT_93 = "), getMapMode().DPtoLP(";
- protected final String TEXT_94 = "));" + NL + "\t}";
- protected final String TEXT_95 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditPolicy getPrimaryDragEditPolicy() {" + NL + "\t\t";
- protected final String TEXT_96 = " ep = (";
- protected final String TEXT_97 = ") super.getPrimaryDragEditPolicy();" + NL + "\t\t";
- protected final String TEXT_98 = NL + "\t\tep.setResizeDirections(";
- protected final String TEXT_99 = ".NONE);" + NL + "\t\t";
- protected final String TEXT_100 = NL + "\t\tep.setResizeDirections(";
- protected final String TEXT_101 = ".";
- protected final String TEXT_102 = " | ";
- protected final String TEXT_103 = ");" + NL + "\t\t";
- protected final String TEXT_104 = NL + "\t\treturn ep;" + NL + "\t}";
- protected final String TEXT_105 = 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_106 = " createNodeFigure() {" + NL + "\t\t";
- protected final String TEXT_107 = " 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_108 = NL + "\t\tnodeShape.setLayoutManager(new ";
- protected final String TEXT_109 = "() {" + 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_110 = "(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_111 = NL + "\t\t\t";
- protected final String TEXT_112 = " layout = new ";
- protected final String TEXT_113 = "();" + NL + "\t\t\tlayout.setSpacing(getMapMode().DPtoLP(5));" + NL + "\t\t\tnodeShape.setLayoutManager(layout);";
- protected final String TEXT_114 = 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_115 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
- protected final String TEXT_116 = " getPrimaryChildEditPart() {" + NL + "\t\treturn getChildBySemanticHint(";
- protected final String TEXT_117 = ".getType(";
- protected final String TEXT_118 = ".VISUAL_ID));" + NL + "\t}";
- protected final String TEXT_119 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual(";
- protected final String TEXT_120 = " childEditPart, int index) {" + NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = ((";
- protected final String TEXT_121 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().add(labelFigure);" + NL + "\t\t} else {";
- protected final String TEXT_122 = NL + "\t\t\tif (!addFixedChild(childEditPart)) {" + NL + "\t\t\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t\t\t}";
- protected final String TEXT_123 = NL + "\t\t\tsuper.addChildVisual(childEditPart, -1);";
- protected final String TEXT_124 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void removeChildVisual(";
- protected final String TEXT_125 = " childEditPart) {" + NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = ((";
- protected final String TEXT_126 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t} else {" + NL + "\t\t\tsuper.removeChildVisual(childEditPart);" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isExternalLabel(";
- protected final String TEXT_127 = " childEditPart) {";
- protected final String TEXT_128 = NL + "\t\tif (childEditPart instanceof ";
- protected final String TEXT_129 = ") {" + NL + "\t\t\treturn true;" + NL + "\t\t}";
- protected final String TEXT_130 = 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_131 = " root = (";
- protected final String TEXT_132 = ") getRoot();" + NL + "\t\treturn root.getLayer(";
- protected final String TEXT_133 = ".EXTERNAL_NODE_LABELS_LAYER);" + NL + "\t}" + NL;
- protected final String TEXT_134 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual(EditPart childEditPart, int index) {" + NL + "\t\tif (!addFixedChild(childEditPart)) {" + NL + "\t\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t\t}" + NL + "\t}";
- protected final String TEXT_135 = NL;
- protected final String TEXT_136 = NL + "}";
- protected final String TEXT_137 = NL;
+ protected final String TEXT_82 = NL;
+ protected final String TEXT_83 = NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean addFixedChild(EditPart childEditPart) {";
+ protected final String TEXT_84 = NL + "\t\tif (childEditPart instanceof ";
+ protected final String TEXT_85 = ") {" + NL + "\t\t\t((";
+ protected final String TEXT_86 = ") childEditPart).";
+ protected final String TEXT_87 = "(getPrimaryShape().";
+ protected final String TEXT_88 = "());" + NL + "\t\t\treturn true;" + NL + "\t\t}";
+ protected final String TEXT_89 = NL + "\t\tif (childEditPart instanceof ";
+ protected final String TEXT_90 = ") {" + NL + "\t\t\t";
+ protected final String TEXT_91 = " pane = getPrimaryShape().";
+ protected final String TEXT_92 = "();" + NL + "\t\t\tsetupContentPane(pane);" + NL + "\t\t\tpane.add(((";
+ protected final String TEXT_93 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t";
+ protected final String TEXT_94 = NL + "\t\treturn false;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean removeFixedChild(EditPart childEditPart) {";
+ protected final String TEXT_95 = "\t\t" + NL + "\t\tif (childEditPart instanceof ";
+ protected final String TEXT_96 = ") {" + NL + "\t\t\t";
+ protected final String TEXT_97 = " pane = getPrimaryShape().";
+ protected final String TEXT_98 = "();" + NL + "\t\t\tpane.remove(((";
+ protected final String TEXT_99 = ")childEditPart).getFigure());" + NL + "\t\t\treturn true;" + NL + "\t\t}\t";
+ protected final String TEXT_100 = NL + "\t\treturn false;" + NL + "\t}";
+ protected final String TEXT_101 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+ protected final String TEXT_102 = " createNodePlate() {";
+ protected final String TEXT_103 = NL + "\t\treturn new ";
+ protected final String TEXT_104 = "(getMapMode().DPtoLP(";
+ protected final String TEXT_105 = "), getMapMode().DPtoLP(";
+ protected final String TEXT_106 = "));" + NL + "\t}";
+ protected final String TEXT_107 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic EditPolicy getPrimaryDragEditPolicy() {" + NL + "\t\t";
+ protected final String TEXT_108 = " ep = (";
+ protected final String TEXT_109 = ") super.getPrimaryDragEditPolicy();" + NL + "\t\t";
+ protected final String TEXT_110 = NL + "\t\tep.setResizeDirections(";
+ protected final String TEXT_111 = ".NONE);" + NL + "\t\t";
+ protected final String TEXT_112 = NL + "\t\tep.setResizeDirections(";
+ protected final String TEXT_113 = ".";
+ protected final String TEXT_114 = " | ";
+ protected final String TEXT_115 = ");" + NL + "\t\t";
+ protected final String TEXT_116 = NL + "\t\treturn ep;" + NL + "\t}";
+ protected final String TEXT_117 = 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_118 = " createNodeFigure() {" + NL + "\t\t";
+ protected final String TEXT_119 = " 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_120 = NL + "\t\tnodeShape.setLayoutManager(new ";
+ protected final String TEXT_121 = "() {" + 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_122 = "(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_123 = NL + "\t\t\t";
+ protected final String TEXT_124 = " layout = new ";
+ protected final String TEXT_125 = "();" + NL + "\t\t\tlayout.setSpacing(getMapMode().DPtoLP(5));" + NL + "\t\t\tnodeShape.setLayoutManager(layout);";
+ protected final String TEXT_126 = 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_127 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_128 = " getPrimaryChildEditPart() {" + NL + "\t\treturn getChildBySemanticHint(";
+ protected final String TEXT_129 = ".getType(";
+ protected final String TEXT_130 = ".VISUAL_ID));" + NL + "\t}";
+ protected final String TEXT_131 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected boolean isExternalLabel(";
+ protected final String TEXT_132 = " childEditPart) {";
+ protected final String TEXT_133 = NL + "\t\tif (childEditPart instanceof ";
+ protected final String TEXT_134 = ") {" + NL + "\t\t\treturn true;" + NL + "\t\t}";
+ protected final String TEXT_135 = 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_136 = " root = (";
+ protected final String TEXT_137 = ") getRoot();" + NL + "\t\treturn root.getLayer(";
+ protected final String TEXT_138 = ".EXTERNAL_NODE_LABELS_LAYER);" + NL + "\t}" + NL;
+ protected final String TEXT_139 = NL + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void addChildVisual(";
+ protected final String TEXT_140 = " childEditPart, int index) {";
+ protected final String TEXT_141 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = ((";
+ protected final String TEXT_142 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().add(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} ";
+ protected final String TEXT_143 = "\t\t" + NL + "\t\tif (addFixedChild(childEditPart)) {" + NL + "\t\t\treturn;" + NL + "\t\t}";
+ protected final String TEXT_144 = NL + "\t\tsuper.addChildVisual(childEditPart, -1);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void removeChildVisual(";
+ protected final String TEXT_145 = " childEditPart) {";
+ protected final String TEXT_146 = NL + "\t\tif (isExternalLabel(childEditPart)) {" + NL + "\t\t\tIFigure labelFigure = ((";
+ protected final String TEXT_147 = ") childEditPart).getFigure();" + NL + "\t\t\tgetExternalLabelsContainer().remove(labelFigure);" + NL + "\t\t\treturn;" + NL + "\t\t} ";
+ protected final String TEXT_148 = NL + "\t\tif (removeFixedChild(childEditPart)){" + NL + "\t\t\treturn;" + NL + "\t\t}";
+ protected final String TEXT_149 = NL + "\t\tsuper.removeChildVisual(childEditPart);" + NL + "\t}";
+ protected final String TEXT_150 = "\t" + NL;
+ protected final String TEXT_151 = NL;
+ protected final String TEXT_152 = NL + "}";
+ protected final String TEXT_153 = NL;
protected final String getFeatureValueGetter(String containerName, GenFeature feature, boolean isContainerEObject, ImportAssistant importManager) {
StringBuffer result = new StringBuffer();
@@ -260,6 +277,8 @@
GenDiagram genDiagram = genNode.getDiagram();
boolean isXYLayout = ViewmapLayoutType.XY_LAYOUT_LITERAL.equals(genNode.getLayoutType());
+final NodeEditPartHelper myHelper = new NodeEditPartHelper(genNode);
+
stringBuffer.append(TEXT_1);
String copyrightText = genDiagram.getEditorGen().getCopyrightText();
@@ -300,17 +319,12 @@
stringBuffer.append(genNode.getEditPartClassName());
stringBuffer.append(TEXT_12);
-boolean hasChildrenInListCompartments = false;
-for (Iterator compartments = genNode.getCompartments().iterator(); compartments.hasNext();) {
- GenCompartment compartment = (GenCompartment) compartments.next();
- hasChildrenInListCompartments |= compartment.isListLayout() && !compartment.getChildNodes().isEmpty();
-}
-if (!genNode.getChildNodes().isEmpty() || hasChildrenInListCompartments) {
+if (!genNode.getChildNodes().isEmpty() || myHelper.hasChildrenInListCompartments()) {
stringBuffer.append(TEXT_13);
stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy"));
stringBuffer.append(TEXT_14);
- if (hasChildrenInListCompartments) {
+ if (myHelper.hasChildrenInListCompartments()) {
stringBuffer.append(TEXT_15);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.commands.Command"));
stringBuffer.append(TEXT_16);
@@ -435,7 +449,6 @@
} //switch
stringBuffer.append(TEXT_66);
-boolean hasFixedChildren = false;
String figureQualifiedClassName = null;
Viewmap viewmap = genNode.getViewmap();
if (viewmap instanceof FigureViewmap) {
@@ -477,43 +490,75 @@
stringBuffer.append(TEXT_80);
stringBuffer.append(figureQualifiedClassName);
stringBuffer.append(TEXT_81);
-
- List innerFixedLabels = new ArrayList(genNode.getLabels().size());
- for (Iterator it = genNode.getLabels().iterator(); it.hasNext(); ) {
- GenNodeLabel genLabel = (GenNodeLabel) it.next();
- if (!(genLabel instanceof GenExternalNodeLabel) && genLabel.getViewmap() instanceof ParentAssignedViewmap) {
- innerFixedLabels.add(genLabel);
- }
- }
- if (!innerFixedLabels.isEmpty()) {
- hasFixedChildren = true;
-
+ }
stringBuffer.append(TEXT_82);
- for (Iterator it = innerFixedLabels.iterator(); it.hasNext(); ) {
- final GenNodeLabel genLabel = (GenNodeLabel) it.next();
- final String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName());
- final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) genLabel.getViewmap();
- final String childSetterName = childViewmap.getSetterName() == null ? "setLabel" : childViewmap.getSetterName();
+if (myHelper.hasFixedChildren()) {
stringBuffer.append(TEXT_83);
- stringBuffer.append(labelEditPart);
+
+for (Iterator it = myHelper.getInnerFixedLabels(); it.hasNext(); ) {
+ GenNodeLabel genLabel = (GenNodeLabel) it.next();
+ final String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName());
+ final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) genLabel.getViewmap();
+ final String childSetterName = childViewmap.getSetterName() == null ? "setLabel" : childViewmap.getSetterName();
+
stringBuffer.append(TEXT_84);
stringBuffer.append(labelEditPart);
stringBuffer.append(TEXT_85);
- stringBuffer.append(childSetterName);
+ stringBuffer.append(labelEditPart);
stringBuffer.append(TEXT_86);
- stringBuffer.append(childViewmap.getGetterName());
+ stringBuffer.append(childSetterName);
stringBuffer.append(TEXT_87);
- }
+ stringBuffer.append(childViewmap.getGetterName());
stringBuffer.append(TEXT_88);
- }
}
+for (Iterator it = myHelper.getPinnedCompartments(); it.hasNext(); ) {
+ GenCompartment next = (GenCompartment)it.next();
+ FigureAccessorAttributes placement = myHelper.getFigureAccessorAttributes(next);
+ String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName());
+
stringBuffer.append(TEXT_89);
- stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure"));
+ stringBuffer.append(compartmentEditPartFQN);
stringBuffer.append(TEXT_90);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure"));
+ stringBuffer.append(TEXT_91);
+ stringBuffer.append(placement.getFigureGetterName());
+ stringBuffer.append(TEXT_92);
+ stringBuffer.append(compartmentEditPartFQN);
+ stringBuffer.append(TEXT_93);
+
+} // for pinned compartments
+
+ stringBuffer.append(TEXT_94);
+
+//XXX: ignore labels assuming that they never may be removed
+for (Iterator it = myHelper.getPinnedCompartments(); it.hasNext(); ) {
+ GenCompartment next = (GenCompartment)it.next();
+ FigureAccessorAttributes placement = myHelper.getFigureAccessorAttributes(next);
+ String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName());
+
+ stringBuffer.append(TEXT_95);
+ stringBuffer.append(compartmentEditPartFQN);
+ stringBuffer.append(TEXT_96);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.IFigure"));
+ stringBuffer.append(TEXT_97);
+ stringBuffer.append(placement.getFigureGetterName());
+ stringBuffer.append(TEXT_98);
+ stringBuffer.append(compartmentEditPartFQN);
+ stringBuffer.append(TEXT_99);
+
+} // for pinned compartments
+
+ stringBuffer.append(TEXT_100);
+
+} // if myHelper.hasFixedChildren()
+
+ stringBuffer.append(TEXT_101);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure"));
+ stringBuffer.append(TEXT_102);
int width = 40;
int height = 40;
@@ -523,134 +568,151 @@
height = defSizeAttrs.getHeight();
}
- stringBuffer.append(TEXT_91);
+ stringBuffer.append(TEXT_103);
stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure"));
- stringBuffer.append(TEXT_92);
+ stringBuffer.append(TEXT_104);
stringBuffer.append(width);
- stringBuffer.append(TEXT_93);
+ stringBuffer.append(TEXT_105);
stringBuffer.append(height);
- stringBuffer.append(TEXT_94);
+ stringBuffer.append(TEXT_106);
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_95);
+ stringBuffer.append(TEXT_107);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy"));
- stringBuffer.append(TEXT_96);
+ stringBuffer.append(TEXT_108);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy"));
- stringBuffer.append(TEXT_97);
+ stringBuffer.append(TEXT_109);
if (rc.getResizeHandleNames().isEmpty()) {
- stringBuffer.append(TEXT_98);
+ stringBuffer.append(TEXT_110);
stringBuffer.append(draw2dPC);
- stringBuffer.append(TEXT_99);
+ stringBuffer.append(TEXT_111);
} else {
- stringBuffer.append(TEXT_100);
+ stringBuffer.append(TEXT_112);
for (Iterator rcNamesIter = rc.getResizeHandleNames().iterator(); rcNamesIter.hasNext();) {
String nextConstantName = (String) rcNamesIter.next();
stringBuffer.append(draw2dPC);
- stringBuffer.append(TEXT_101);
+ stringBuffer.append(TEXT_113);
stringBuffer.append(nextConstantName);
if (rcNamesIter.hasNext()) {
- stringBuffer.append(TEXT_102);
+ stringBuffer.append(TEXT_114);
}}
- stringBuffer.append(TEXT_103);
+ stringBuffer.append(TEXT_115);
}
- stringBuffer.append(TEXT_104);
+ stringBuffer.append(TEXT_116);
}
- stringBuffer.append(TEXT_105);
+ stringBuffer.append(TEXT_117);
stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure"));
- stringBuffer.append(TEXT_106);
+ stringBuffer.append(TEXT_118);
stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure"));
- stringBuffer.append(TEXT_107);
+ stringBuffer.append(TEXT_119);
if (isXYLayout) {
- stringBuffer.append(TEXT_108);
+ stringBuffer.append(TEXT_120);
stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.FreeformLayout"));
- stringBuffer.append(TEXT_109);
+ stringBuffer.append(TEXT_121);
stringBuffer.append(importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle"));
- stringBuffer.append(TEXT_110);
+ stringBuffer.append(TEXT_122);
} else {
String layoutClassName = importManager.getImportedName("org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout");
- stringBuffer.append(TEXT_111);
+ stringBuffer.append(TEXT_123);
stringBuffer.append(layoutClassName);
- stringBuffer.append(TEXT_112);
+ stringBuffer.append(TEXT_124);
stringBuffer.append(layoutClassName);
- stringBuffer.append(TEXT_113);
+ stringBuffer.append(TEXT_125);
}
- stringBuffer.append(TEXT_114);
+ stringBuffer.append(TEXT_126);
-if (!genNode.getLabels().isEmpty()) {
- GenNodeLabel primaryLabel = (GenNodeLabel) genNode.getLabels().get(0);
+if (myHelper.getPrimaryLabel() != null) {
+ GenNodeLabel primaryLabel = myHelper.getPrimaryLabel();
- stringBuffer.append(TEXT_115);
+ stringBuffer.append(TEXT_127);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart"));
- stringBuffer.append(TEXT_116);
+ stringBuffer.append(TEXT_128);
stringBuffer.append(importManager.getImportedName(genDiagram.getVisualIDRegistryQualifiedClassName()));
- stringBuffer.append(TEXT_117);
+ stringBuffer.append(TEXT_129);
stringBuffer.append(importManager.getImportedName(primaryLabel.getEditPartQualifiedClassName()));
- stringBuffer.append(TEXT_118);
+ stringBuffer.append(TEXT_130);
}
-boolean hasExternalLabels = false;
-for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) {
- GenNodeLabel label = (GenNodeLabel) labels.next();
- if (label instanceof GenExternalNodeLabel) {
- hasExternalLabels = true;
- break;
+
+if (myHelper.hasExternalLabels()){
+
+ stringBuffer.append(TEXT_131);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart"));
+ stringBuffer.append(TEXT_132);
+
+ for (Iterator externalLabels = myHelper.getExternalLabels(); externalLabels.hasNext();) {
+ GenNodeLabel next = (GenNodeLabel) externalLabels.next();
+
+ stringBuffer.append(TEXT_133);
+ stringBuffer.append(importManager.getImportedName(next.getEditPartQualifiedClassName()));
+ stringBuffer.append(TEXT_134);
+
}
+
+ stringBuffer.append(TEXT_135);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart"));
+ stringBuffer.append(TEXT_136);
+ stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart"));
+ stringBuffer.append(TEXT_137);
+ stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName()));
+ stringBuffer.append(TEXT_138);
+
}
-if (hasExternalLabels) {
- stringBuffer.append(TEXT_119);
+if (myHelper.hasFixedChildren() || myHelper.hasExternalLabels()) {
+
+ stringBuffer.append(TEXT_139);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart"));
- stringBuffer.append(TEXT_120);
+ stringBuffer.append(TEXT_140);
+
+if (myHelper.hasExternalLabels()){
+
+ stringBuffer.append(TEXT_141);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart"));
- stringBuffer.append(TEXT_121);
- if (hasFixedChildren) {
- stringBuffer.append(TEXT_122);
- } else {
- stringBuffer.append(TEXT_123);
- }
- stringBuffer.append(TEXT_124);
+ stringBuffer.append(TEXT_142);
+
+}
+if (myHelper.hasFixedChildren()){
+
+ stringBuffer.append(TEXT_143);
+
+}
+
+ stringBuffer.append(TEXT_144);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart"));
- stringBuffer.append(TEXT_125);
+ stringBuffer.append(TEXT_145);
+
+if (myHelper.hasExternalLabels()){
+
+ stringBuffer.append(TEXT_146);
stringBuffer.append(importManager.getImportedName("org.eclipse.gef.GraphicalEditPart"));
- stringBuffer.append(TEXT_126);
- stringBuffer.append(importManager.getImportedName("org.eclipse.gef.EditPart"));
- stringBuffer.append(TEXT_127);
+ stringBuffer.append(TEXT_147);
- for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) {
- GenNodeLabel label = (GenNodeLabel) labels.next();
- if (label instanceof GenExternalNodeLabel) {
+}
+if (myHelper.hasFixedChildren()){
- stringBuffer.append(TEXT_128);
- stringBuffer.append(importManager.getImportedName(label.getEditPartQualifiedClassName()));
- stringBuffer.append(TEXT_129);
+ stringBuffer.append(TEXT_148);
- }
- }
+}
- stringBuffer.append(TEXT_130);
- stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart"));
- stringBuffer.append(TEXT_131);
- stringBuffer.append(importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart"));
- stringBuffer.append(TEXT_132);
- stringBuffer.append(importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName()));
- stringBuffer.append(TEXT_133);
+ stringBuffer.append(TEXT_149);
-} else if (hasFixedChildren) {
- stringBuffer.append(TEXT_134);
+} // if hasFixedChildren || hasExternalLabels
+
+ stringBuffer.append(TEXT_150);
-} /*else if hasFixedChildren && !hasExternalLabels*/
if (genNode.getViewmap() instanceof InnerClassViewmap) {
- stringBuffer.append(TEXT_135);
+ stringBuffer.append(TEXT_151);
stringBuffer.append(((InnerClassViewmap) genNode.getViewmap()).getClassBody());
}
- stringBuffer.append(TEXT_136);
+ stringBuffer.append(TEXT_152);
importManager.emitSortedImports();
- stringBuffer.append(TEXT_137);
+ stringBuffer.append(TEXT_153);
return stringBuffer.toString();
}
}
\ No newline at end of file
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.47
diff -u -r1.47 GMFGenSwitch.java
--- src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java 24 May 2006 09:20:16 -0000 1.47
+++ src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenSwitch.java 24 May 2006 22:47:23 -0000
@@ -493,6 +493,13 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES: {
+ FigureAccessorAttributes figureAccessorAttributes = (FigureAccessorAttributes)theEObject;
+ Object result = caseFigureAccessorAttributes(figureAccessorAttributes);
+ if (result == null) result = caseAttributes(figureAccessorAttributes);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case GMFGenPackage.VIEWMAP: {
Viewmap viewmap = (Viewmap)theEObject;
Object result = caseViewmap(viewmap);
@@ -1416,6 +1423,21 @@
}
/**
+ * Returns the result of interpretting the object as an instance of 'Figure Accessor Attributes'.
+ *
+ * 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 'Figure Accessor Attributes'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFigureAccessorAttributes(FigureAccessorAttributes object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpretting the object as an instance of 'Figure Viewmap'.
*
* 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.47
diff -u -r1.47 GMFGenAdapterFactory.java
--- src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java 24 May 2006 09:20:16 -0000 1.47
+++ src/org/eclipse/gmf/codegen/gmfgen/util/GMFGenAdapterFactory.java 24 May 2006 22:47:22 -0000
@@ -277,6 +277,9 @@
public Object caseLabelOffsetAttributes(LabelOffsetAttributes object) {
return createLabelOffsetAttributesAdapter();
}
+ public Object caseFigureAccessorAttributes(FigureAccessorAttributes object) {
+ return createFigureAccessorAttributesAdapter();
+ }
public Object caseViewmap(Viewmap object) {
return createViewmapAdapter();
}
@@ -1031,6 +1034,20 @@
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes Figure Accessor Attributes}'.
+ *
+ * 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.FigureAccessorAttributes
+ * @generated
+ */
+ public Adapter createFigureAccessorAttributesAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.gmf.codegen.gmfgen.FigureViewmap Figure Viewmap}'.
*
* This default implementation returns null so that we can easily ignore cases;
Index: models/gmfgen.genmodel
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/models/gmfgen.genmodel,v
retrieving revision 1.112
diff -u -r1.112 gmfgen.genmodel
--- models/gmfgen.genmodel 24 May 2006 09:20:16 -0000 1.112
+++ models/gmfgen.genmodel 24 May 2006 22:47:18 -0000
@@ -359,6 +359,9 @@
+
+
+
Index: models/gmfgen.ecore
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.codegen/models/gmfgen.ecore,v
retrieving revision 1.124
diff -u -r1.124 gmfgen.ecore
--- models/gmfgen.ecore 24 May 2006 09:20:16 -0000 1.124
+++ models/gmfgen.ecore 24 May 2006 22:47:18 -0000
@@ -808,6 +808,9 @@
+
+
+
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.106
diff -u -r1.106 GMFGenPackage.java
--- src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java 24 May 2006 09:20:16 -0000 1.106
+++ src/org/eclipse/gmf/codegen/gmfgen/GMFGenPackage.java 24 May 2006 22:47:20 -0000
@@ -4141,7 +4141,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getViewmap()
* @generated
*/
- int VIEWMAP = 44;
+ int VIEWMAP = 45;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.Attributes Attributes}' class.
@@ -4311,6 +4311,34 @@
int LABEL_OFFSET_ATTRIBUTES_FEATURE_COUNT = ATTRIBUTES_FEATURE_COUNT + 2;
/**
+ * The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.FigureAccessorAttributesImpl Figure Accessor Attributes}' class.
+ *
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.FigureAccessorAttributesImpl
+ * @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFigureAccessorAttributes()
+ * @generated
+ */
+ int FIGURE_ACCESSOR_ATTRIBUTES = 44;
+
+ /**
+ * The feature id for the 'Figure Getter Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME = ATTRIBUTES_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Figure Accessor Attributes' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int FIGURE_ACCESSOR_ATTRIBUTES_FEATURE_COUNT = ATTRIBUTES_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the 'Attributes' containment reference list.
*
*
@@ -4354,7 +4382,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getFigureViewmap()
* @generated
*/
- int FIGURE_VIEWMAP = 45;
+ int FIGURE_VIEWMAP = 46;
/**
* The feature id for the 'Attributes' containment reference list.
@@ -4409,7 +4437,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getSnippetViewmap()
* @generated
*/
- int SNIPPET_VIEWMAP = 46;
+ int SNIPPET_VIEWMAP = 47;
/**
* The feature id for the 'Attributes' containment reference list.
@@ -4464,7 +4492,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getInnerClassViewmap()
* @generated
*/
- int INNER_CLASS_VIEWMAP = 47;
+ int INNER_CLASS_VIEWMAP = 48;
/**
* The feature id for the 'Attributes' containment reference list.
@@ -4528,7 +4556,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getParentAssignedViewmap()
* @generated
*/
- int PARENT_ASSIGNED_VIEWMAP = 48;
+ int PARENT_ASSIGNED_VIEWMAP = 49;
/**
* The feature id for the 'Attributes' containment reference list.
@@ -4601,7 +4629,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getPalette()
* @generated
*/
- int PALETTE = 51;
+ int PALETTE = 52;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.EntryBaseImpl Entry Base}' class.
@@ -4611,7 +4639,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getEntryBase()
* @generated
*/
- int ENTRY_BASE = 52;
+ int ENTRY_BASE = 53;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ToolEntryImpl Tool Entry}' class.
@@ -4621,7 +4649,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolEntry()
* @generated
*/
- int TOOL_ENTRY = 53;
+ int TOOL_ENTRY = 54;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ToolGroupImpl Tool Group}' class.
@@ -4631,7 +4659,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolGroup()
* @generated
*/
- int TOOL_GROUP = 56;
+ int TOOL_GROUP = 57;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.impl.ValueExpressionImpl Value Expression}' class.
@@ -4641,7 +4669,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getValueExpression()
* @generated
*/
- int VALUE_EXPRESSION = 49;
+ int VALUE_EXPRESSION = 50;
/**
* The feature id for the 'Body' attribute.
@@ -4678,7 +4706,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenConstraint()
* @generated
*/
- int GEN_CONSTRAINT = 50;
+ int GEN_CONSTRAINT = 51;
/**
* The feature id for the 'Body' attribute.
@@ -4931,7 +4959,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getToolGroupItem()
* @generated
*/
- int TOOL_GROUP_ITEM = 54;
+ int TOOL_GROUP_ITEM = 55;
/**
* The number of structural features of the 'Tool Group Item' class.
@@ -4950,7 +4978,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getSeparator()
* @generated
*/
- int SEPARATOR = 55;
+ int SEPARATOR = 56;
/**
* The number of structural features of the 'Separator' class.
@@ -5059,7 +5087,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenElementInitializer()
* @generated
*/
- int GEN_ELEMENT_INITIALIZER = 57;
+ int GEN_ELEMENT_INITIALIZER = 58;
/**
* The feature id for the 'Type Model Facet' container reference.
@@ -5087,7 +5115,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenFeatureSeqInitializer()
* @generated
*/
- int GEN_FEATURE_SEQ_INITIALIZER = 58;
+ int GEN_FEATURE_SEQ_INITIALIZER = 59;
/**
* The feature id for the 'Type Model Facet' container reference.
@@ -5124,7 +5152,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenFeatureValueSpec()
* @generated
*/
- int GEN_FEATURE_VALUE_SPEC = 59;
+ int GEN_FEATURE_VALUE_SPEC = 60;
/**
* The feature id for the 'Body' attribute.
@@ -5170,7 +5198,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenLinkConstraints()
* @generated
*/
- int GEN_LINK_CONSTRAINTS = 60;
+ int GEN_LINK_CONSTRAINTS = 61;
/**
* The feature id for the 'Link' container reference.
@@ -5216,7 +5244,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleContainerBase()
* @generated
*/
- int GEN_RULE_CONTAINER_BASE = 61;
+ int GEN_RULE_CONTAINER_BASE = 62;
/**
* The feature id for the 'Editor' reference.
@@ -5244,7 +5272,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditContainer()
* @generated
*/
- int GEN_AUDIT_CONTAINER = 62;
+ int GEN_AUDIT_CONTAINER = 63;
/**
* The feature id for the 'Editor' reference.
@@ -5326,7 +5354,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleBase()
* @generated
*/
- int GEN_RULE_BASE = 63;
+ int GEN_RULE_BASE = 64;
/**
* The feature id for the 'Name' attribute.
@@ -5363,7 +5391,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditRule()
* @generated
*/
- int GEN_AUDIT_RULE = 64;
+ int GEN_AUDIT_RULE = 65;
/**
* The feature id for the 'Name' attribute.
@@ -5463,7 +5491,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenRuleTarget()
* @generated
*/
- int GEN_RULE_TARGET = 65;
+ int GEN_RULE_TARGET = 66;
/**
* The number of structural features of the 'Gen Rule Target' class.
@@ -5482,7 +5510,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditable()
* @generated
*/
- int GEN_AUDITABLE = 73;
+ int GEN_AUDITABLE = 74;
/**
* The number of structural features of the 'Gen Auditable' class.
@@ -5501,7 +5529,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDomainElementTarget()
* @generated
*/
- int GEN_DOMAIN_ELEMENT_TARGET = 66;
+ int GEN_DOMAIN_ELEMENT_TARGET = 67;
/**
* The feature id for the 'Element' reference.
@@ -5529,7 +5557,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDiagramElementTarget()
* @generated
*/
- int GEN_DIAGRAM_ELEMENT_TARGET = 67;
+ int GEN_DIAGRAM_ELEMENT_TARGET = 68;
/**
* The feature id for the 'Element' reference.
@@ -5557,7 +5585,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenDomainAttributeTarget()
* @generated
*/
- int GEN_DOMAIN_ATTRIBUTE_TARGET = 68;
+ int GEN_DOMAIN_ATTRIBUTE_TARGET = 69;
/**
* The feature id for the 'Attribute' reference.
@@ -5594,7 +5622,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenNotationElementTarget()
* @generated
*/
- int GEN_NOTATION_ELEMENT_TARGET = 69;
+ int GEN_NOTATION_ELEMENT_TARGET = 70;
/**
* The feature id for the 'Element' reference.
@@ -5622,7 +5650,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMetricContainer()
* @generated
*/
- int GEN_METRIC_CONTAINER = 70;
+ int GEN_METRIC_CONTAINER = 71;
/**
* The feature id for the 'Editor' reference.
@@ -5659,7 +5687,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMetricRule()
* @generated
*/
- int GEN_METRIC_RULE = 71;
+ int GEN_METRIC_RULE = 72;
/**
* The feature id for the 'Name' attribute.
@@ -5750,7 +5778,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenAuditedMetricTarget()
* @generated
*/
- int GEN_AUDITED_METRIC_TARGET = 72;
+ int GEN_AUDITED_METRIC_TARGET = 73;
/**
* The feature id for the 'Metric' reference.
@@ -5787,7 +5815,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenMeasurable()
* @generated
*/
- int GEN_MEASURABLE = 74;
+ int GEN_MEASURABLE = 75;
/**
* The number of structural features of the 'Gen Measurable' class.
@@ -5806,7 +5834,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionProviderContainer()
* @generated
*/
- int GEN_EXPRESSION_PROVIDER_CONTAINER = 75;
+ int GEN_EXPRESSION_PROVIDER_CONTAINER = 76;
/**
* The feature id for the 'Expressions Package Name' attribute.
@@ -5861,7 +5889,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionProviderBase()
* @generated
*/
- int GEN_EXPRESSION_PROVIDER_BASE = 76;
+ int GEN_EXPRESSION_PROVIDER_BASE = 77;
/**
* The feature id for the 'Expressions' reference list.
@@ -5898,7 +5926,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenJavaExpressionProvider()
* @generated
*/
- int GEN_JAVA_EXPRESSION_PROVIDER = 77;
+ int GEN_JAVA_EXPRESSION_PROVIDER = 78;
/**
* The feature id for the 'Expressions' reference list.
@@ -5935,7 +5963,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenExpressionInterpreter()
* @generated
*/
- int GEN_EXPRESSION_INTERPRETER = 78;
+ int GEN_EXPRESSION_INTERPRETER = 79;
/**
* The feature id for the 'Expressions' reference list.
@@ -5999,7 +6027,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getProviderPriority()
* @generated
*/
- int PROVIDER_PRIORITY = 79;
+ int PROVIDER_PRIORITY = 80;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.LinkLabelAlignment Link Label Alignment}' enum.
@@ -6009,7 +6037,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getLinkLabelAlignment()
* @generated
*/
- int LINK_LABEL_ALIGNMENT = 80;
+ int LINK_LABEL_ALIGNMENT = 81;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.ViewmapLayoutType Viewmap Layout Type}' enum.
@@ -6019,7 +6047,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getViewmapLayoutType()
* @generated
*/
- int VIEWMAP_LAYOUT_TYPE = 81;
+ int VIEWMAP_LAYOUT_TYPE = 82;
/**
* The meta object id for the '{@link org.eclipse.gmf.codegen.gmfgen.GenSeverity Gen Severity}' enum.
@@ -6029,7 +6057,7 @@
* @see org.eclipse.gmf.codegen.gmfgen.impl.GMFGenPackageImpl#getGenSeverity()
* @generated
*/
- int GEN_SEVERITY = 82;
+ int GEN_SEVERITY = 83;
/**
* Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator Gen Editor Generator}'.
@@ -8330,6 +8358,27 @@
EAttribute getLabelOffsetAttributes_Y();
/**
+ * Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes Figure Accessor Attributes}'.
+ *
+ *
+ * @return the meta object for class 'Figure Accessor Attributes'.
+ * @see org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes
+ * @generated
+ */
+ EClass getFigureAccessorAttributes();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes#getFigureGetterName Figure Getter Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Figure Getter Name'.
+ * @see org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes#getFigureGetterName()
+ * @see #getFigureAccessorAttributes()
+ * @generated
+ */
+ EAttribute getFigureAccessorAttributes_FigureGetterName();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.gmf.codegen.gmfgen.FigureViewmap Figure Viewmap}'.
*
*
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.34
diff -u -r1.34 GMFGenFactory.java
--- src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java 24 May 2006 09:20:16 -0000 1.34
+++ src/org/eclipse/gmf/codegen/gmfgen/GMFGenFactory.java 24 May 2006 22:47:18 -0000
@@ -260,6 +260,15 @@
LabelOffsetAttributes createLabelOffsetAttributes();
/**
+ * Returns a new object of class 'Figure Accessor Attributes'.
+ *
+ *
+ * @return a new object of class 'Figure Accessor Attributes'.
+ * @generated
+ */
+ FigureAccessorAttributes createFigureAccessorAttributes();
+
+ /**
* Returns a new object of class 'Figure Viewmap'.
*
*
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.76
diff -u -r1.76 NodeEditPart.javajet
--- templates/parts/NodeEditPart.javajet 24 May 2006 18:05:30 -0000 1.76
+++ templates/parts/NodeEditPart.javajet 24 May 2006 22:47:23 -0000
@@ -1,11 +1,13 @@
<%@ jet package="org.eclipse.gmf.codegen.templates.parts" class="NodeEditPartGenerator"
- imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"
+ imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.* org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.* org.eclipse.gmf.codegen.gmfgen.util.*"
skeleton="../common.skeleton"%>
<%
final GenNode genNode = (GenNode) ((Object[]) argument)[0];
final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1];
GenDiagram genDiagram = genNode.getDiagram();
boolean isXYLayout = ViewmapLayoutType.XY_LAYOUT_LITERAL.equals(genNode.getLayoutType());
+
+final NodeEditPartHelper myHelper = new NodeEditPartHelper(genNode);
%>
<%@ include file="../copyright4java.jetinc"%>
<%importManager.emitPackageStatement(stringBuffer);%>
@@ -55,15 +57,10 @@
*/
protected void createDefaultEditPolicies() {
<%
-boolean hasChildrenInListCompartments = false;
-for (Iterator compartments = genNode.getCompartments().iterator(); compartments.hasNext();) {
- GenCompartment compartment = (GenCompartment) compartments.next();
- hasChildrenInListCompartments |= compartment.isListLayout() && !compartment.getChildNodes().isEmpty();
-}
-if (!genNode.getChildNodes().isEmpty() || hasChildrenInListCompartments) {
+if (!genNode.getChildNodes().isEmpty() || myHelper.hasChildrenInListCompartments()) {
%>
installEditPolicy(EditPolicyRoles.CREATION_ROLE, new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy")%>()
-<% if (hasChildrenInListCompartments) {%>
+<% if (myHelper.hasChildrenInListCompartments()) {%>
{
public <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getCommand(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) {
@@ -188,7 +185,6 @@
*/
protected IFigure createNodeShape() {
<%
-boolean hasFixedChildren = false;
String figureQualifiedClassName = null;
Viewmap viewmap = genNode.getViewmap();
if (viewmap instanceof FigureViewmap) {
@@ -224,39 +220,69 @@
public <%=figureQualifiedClassName%> getPrimaryShape() {
return (<%=figureQualifiedClassName%>) primaryShape;
}
+<%}%>
+
<%
- List innerFixedLabels = new ArrayList(genNode.getLabels().size());
- for (Iterator it = genNode.getLabels().iterator(); it.hasNext(); ) {
- GenNodeLabel genLabel = (GenNodeLabel) it.next();
- if (!(genLabel instanceof GenExternalNodeLabel) && genLabel.getViewmap() instanceof ParentAssignedViewmap) {
- innerFixedLabels.add(genLabel);
- }
- }
- if (!innerFixedLabels.isEmpty()) {
- hasFixedChildren = true;
+if (myHelper.hasFixedChildren()) {
%>
-
/**
* @generated
*/
protected boolean addFixedChild(EditPart childEditPart) {
<%
- for (Iterator it = innerFixedLabels.iterator(); it.hasNext(); ) {
- final GenNodeLabel genLabel = (GenNodeLabel) it.next();
- final String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName());
- final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) genLabel.getViewmap();
- final String childSetterName = childViewmap.getSetterName() == null ? "setLabel" : childViewmap.getSetterName();
+for (Iterator it = myHelper.getInnerFixedLabels(); it.hasNext(); ) {
+ GenNodeLabel genLabel = (GenNodeLabel) it.next();
+ final String labelEditPart = importManager.getImportedName(genLabel.getEditPartQualifiedClassName());
+ final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) genLabel.getViewmap();
+ final String childSetterName = childViewmap.getSetterName() == null ? "setLabel" : childViewmap.getSetterName();
%>
if (childEditPart instanceof <%=labelEditPart%>) {
((<%=labelEditPart%>) childEditPart).<%=childSetterName%>(getPrimaryShape().<%=childViewmap.getGetterName()%>());
return true;
}
-<% }%>
+<%
+}
+
+for (Iterator it = myHelper.getPinnedCompartments(); it.hasNext(); ) {
+ GenCompartment next = (GenCompartment)it.next();
+ FigureAccessorAttributes placement = myHelper.getFigureAccessorAttributes(next);
+ String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName());
+%>
+ if (childEditPart instanceof <%=compartmentEditPartFQN%>) {
+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> pane = getPrimaryShape().<%=placement.getFigureGetterName()%>();
+ setupContentPane(pane);
+ pane.add(((<%=compartmentEditPartFQN%>)childEditPart).getFigure());
+ return true;
+ }
+<%
+} // for pinned compartments
+%>
return false;
}
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
<%
+//XXX: ignore labels assuming that they never may be removed
+for (Iterator it = myHelper.getPinnedCompartments(); it.hasNext(); ) {
+ GenCompartment next = (GenCompartment)it.next();
+ FigureAccessorAttributes placement = myHelper.getFigureAccessorAttributes(next);
+ String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName());
+%>
+ if (childEditPart instanceof <%=compartmentEditPartFQN%>) {
+ <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> pane = getPrimaryShape().<%=placement.getFigureGetterName()%>();
+ pane.remove(((<%=compartmentEditPartFQN%>)childEditPart).getFigure());
+ return true;
+ }
+<%
+} // for pinned compartments
+%>
+ return false;
}
-}
+<%
+} // if myHelper.hasFixedChildren()
%>
/**
@@ -351,8 +377,8 @@
return super.getContentPane();
}
<%
-if (!genNode.getLabels().isEmpty()) {
- GenNodeLabel primaryLabel = (GenNodeLabel) genNode.getLabels().get(0);
+if (myHelper.getPrimaryLabel() != null) {
+ GenNodeLabel primaryLabel = myHelper.getPrimaryLabel();
%>
/**
@@ -363,61 +389,22 @@
}
<%
}
-boolean hasExternalLabels = false;
-for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) {
- GenNodeLabel label = (GenNodeLabel) labels.next();
- if (label instanceof GenExternalNodeLabel) {
- hasExternalLabels = true;
- break;
- }
-}
-if (hasExternalLabels) {
-%>
- /**
- * @generated
- */
- protected void addChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart, int index) {
- if (isExternalLabel(childEditPart)) {
- IFigure labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure();
- getExternalLabelsContainer().add(labelFigure);
- } else {
-<% if (hasFixedChildren) {%>
- if (!addFixedChild(childEditPart)) {
- super.addChildVisual(childEditPart, -1);
- }
-<% } else {%>
- super.addChildVisual(childEditPart, -1);
-<% }%>
- }
- }
-
- /**
- * @generated
- */
- protected void removeChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) {
- if (isExternalLabel(childEditPart)) {
- IFigure labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure();
- getExternalLabelsContainer().remove(labelFigure);
- } else {
- super.removeChildVisual(childEditPart);
- }
- }
+if (myHelper.hasExternalLabels()){
+%>
/**
* @generated
*/
protected boolean isExternalLabel(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) {
<%
- for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) {
- GenNodeLabel label = (GenNodeLabel) labels.next();
- if (label instanceof GenExternalNodeLabel) {
+ for (Iterator externalLabels = myHelper.getExternalLabels(); externalLabels.hasNext();) {
+ GenNodeLabel next = (GenNodeLabel) externalLabels.next();
%>
- if (childEditPart instanceof <%=importManager.getImportedName(label.getEditPartQualifiedClassName())%>) {
+ if (childEditPart instanceof <%=importManager.getImportedName(next.getEditPartQualifiedClassName())%>) {
return true;
}
<%
- }
}
%>
return false;
@@ -432,18 +419,65 @@
}
<%
-} else if (hasFixedChildren) {%>
+}
+
+if (myHelper.hasFixedChildren() || myHelper.hasExternalLabels()) {
+%>
/**
* @generated
*/
- protected void addChildVisual(EditPart childEditPart, int index) {
- if (!addFixedChild(childEditPart)) {
- super.addChildVisual(childEditPart, -1);
+ protected void addChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart, int index) {
+<%
+if (myHelper.hasExternalLabels()){
+%>
+ if (isExternalLabel(childEditPart)) {
+ IFigure labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure();
+ getExternalLabelsContainer().add(labelFigure);
+ return;
+ }
+<%
+}
+if (myHelper.hasFixedChildren()){
+%>
+ if (addFixedChild(childEditPart)) {
+ return;
}
+<%
+}
+%>
+ super.addChildVisual(childEditPart, -1);
}
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) {
+<%
+if (myHelper.hasExternalLabels()){
+%>
+ if (isExternalLabel(childEditPart)) {
+ IFigure labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure();
+ getExternalLabelsContainer().remove(labelFigure);
+ return;
+ }
+<%
+}
+if (myHelper.hasFixedChildren()){
+%>
+ if (removeFixedChild(childEditPart)){
+ return;
+ }
+<%
+}
+%>
+ super.removeChildVisual(childEditPart);
+ }
+<%
+} // if hasFixedChildren || hasExternalLabels
+%>
+
<%
-} /*else if hasFixedChildren && !hasExternalLabels*/
if (genNode.getViewmap() instanceof InnerClassViewmap) {
%>
<%=((InnerClassViewmap) genNode.getViewmap()).getClassBody()%>
Index: src/org/eclipse/gmf/codegen/gmfgen/impl/FigureAccessorAttributesImpl.java
===================================================================
RCS file: src/org/eclipse/gmf/codegen/gmfgen/impl/FigureAccessorAttributesImpl.java
diff -N src/org/eclipse/gmf/codegen/gmfgen/impl/FigureAccessorAttributesImpl.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gmf/codegen/gmfgen/impl/FigureAccessorAttributesImpl.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,161 @@
+/**
+ *
+ *
+ *
+ * $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.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+
+/**
+ *
+ * An implementation of the model object 'Figure Accessor Attributes'.
+ *
+ *
+ * The following features are implemented:
+ *
+ * - {@link org.eclipse.gmf.codegen.gmfgen.impl.FigureAccessorAttributesImpl#getFigureGetterName Figure Getter Name}
+ *
+ *
+ *
+ * @generated
+ */
+public class FigureAccessorAttributesImpl extends EObjectImpl implements FigureAccessorAttributes {
+ /**
+ * The default value of the '{@link #getFigureGetterName() Figure Getter Name}' attribute.
+ *
+ *
+ * @see #getFigureGetterName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FIGURE_GETTER_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFigureGetterName() Figure Getter Name}' attribute.
+ *
+ *
+ * @see #getFigureGetterName()
+ * @generated
+ * @ordered
+ */
+ protected String figureGetterName = FIGURE_GETTER_NAME_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected FigureAccessorAttributesImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return GMFGenPackage.eINSTANCE.getFigureAccessorAttributes();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getFigureGetterName() {
+ return figureGetterName;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setFigureGetterName(String newFigureGetterName) {
+ String oldFigureGetterName = figureGetterName;
+ figureGetterName = newFigureGetterName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME, oldFigureGetterName, figureGetterName));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME:
+ return getFigureGetterName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME:
+ setFigureGetterName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME:
+ setFigureGetterName(FIGURE_GETTER_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GMFGenPackage.FIGURE_ACCESSOR_ATTRIBUTES__FIGURE_GETTER_NAME:
+ return FIGURE_GETTER_NAME_EDEFAULT == null ? figureGetterName != null : !FIGURE_GETTER_NAME_EDEFAULT.equals(figureGetterName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (figureGetterName: ");
+ result.append(figureGetterName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FigureAccessorAttributesImpl
Index: src/org/eclipse/gmf/codegen/gmfgen/util/NodeEditPartHelper.java
===================================================================
RCS file: src/org/eclipse/gmf/codegen/gmfgen/util/NodeEditPartHelper.java
diff -N src/org/eclipse/gmf/codegen/gmfgen/util/NodeEditPartHelper.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gmf/codegen/gmfgen/util/NodeEditPartHelper.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2006 Borland Software Corporation
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Michael Golubev (Borland) - initial API and implementation
+ */
+
+package org.eclipse.gmf.codegen.gmfgen.util;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+
+public class NodeEditPartHelper {
+ private final List myInnerLabels = new LinkedList();
+ private final List myExternalLabels = new LinkedList();
+ private final List myPinnedCompartments = new LinkedList();
+ private final List myFloatingCompartments = new LinkedList();
+ private GenNodeLabel myPrimaryLabel;
+ private boolean myHasChildrenInListCompartments = false;
+
+ public NodeEditPartHelper(GenNode genNode){
+ myPrimaryLabel = null;
+
+ for (Iterator labels = genNode.getLabels().iterator(); labels.hasNext();) {
+ GenNodeLabel next = (GenNodeLabel) labels.next();
+ if (myPrimaryLabel == null){
+ myPrimaryLabel = next;
+ }
+ if (next instanceof GenExternalNodeLabel) {
+ myExternalLabels.add(next);
+ } else if (next.getViewmap() instanceof ParentAssignedViewmap) {
+ myInnerLabels.add(next);
+ }
+ }
+
+ for (Iterator compartments = genNode.getCompartments().iterator(); compartments.hasNext();){
+ GenCompartment next = (GenCompartment) compartments.next();
+ if (isPinnedCompartment(next)){
+ myPinnedCompartments.add(next);
+ } else {
+ myFloatingCompartments.add(next);
+ }
+
+ myHasChildrenInListCompartments |= next.isListLayout() && !next.getChildNodes().isEmpty();
+ }
+ }
+
+ public boolean hasChildrenInListCompartments(){
+ return myHasChildrenInListCompartments;
+ }
+
+ public boolean hasInnerFixedLabels(){
+ return !myInnerLabels.isEmpty();
+ }
+
+ public boolean hasPinnedCompartments(){
+ return !myPinnedCompartments.isEmpty();
+ }
+
+ public boolean hasFixedChildren(){
+ return hasInnerFixedLabels() || hasPinnedCompartments();
+ }
+
+ public boolean hasExternalLabels(){
+ return !myExternalLabels.isEmpty();
+ }
+
+ public GenNodeLabel getPrimaryLabel(){
+ return myPrimaryLabel;
+ }
+
+ public Iterator getInnerFixedLabels(){
+ return myInnerLabels.iterator();
+ }
+
+ public Iterator getExternalLabels(){
+ return myExternalLabels.iterator();
+ }
+
+ public Iterator getPinnedCompartments(){
+ return myPinnedCompartments.iterator();
+ }
+
+ public boolean isPinnedCompartment(GenCompartment compartment){
+ return getFigureAccessorAttributes(compartment) != null;
+ }
+
+ public FigureAccessorAttributes getFigureAccessorAttributes(GenCompartment compartment){
+ Viewmap viewmap = compartment.getViewmap();
+ return (viewmap == null) ? null : (FigureAccessorAttributes)viewmap.find(FigureAccessorAttributes.class);
+ }
+
+}
Index: src/org/eclipse/gmf/codegen/gmfgen/FigureAccessorAttributes.java
===================================================================
RCS file: src/org/eclipse/gmf/codegen/gmfgen/FigureAccessorAttributes.java
diff -N src/org/eclipse/gmf/codegen/gmfgen/FigureAccessorAttributes.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gmf/codegen/gmfgen/FigureAccessorAttributes.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,53 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.codegen.gmfgen;
+
+
+/**
+ *
+ * A representation of the model object 'Figure Accessor Attributes'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ * - {@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes#getFigureGetterName Figure Getter Name}
+ *
+ *
+ *
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getFigureAccessorAttributes()
+ * @model
+ * @generated
+ */
+public interface FigureAccessorAttributes extends Attributes {
+ /**
+ * Returns the value of the 'Figure Getter Name' attribute.
+ *
+ *
+ * If the meaning of the 'Figure Getter Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Figure Getter Name' attribute.
+ * @see #setFigureGetterName(String)
+ * @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getFigureAccessorAttributes_FigureGetterName()
+ * @model
+ * @generated
+ */
+ String getFigureGetterName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes#getFigureGetterName Figure Getter Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Figure Getter Name' attribute.
+ * @see #getFigureGetterName()
+ * @generated
+ */
+ void setFigureGetterName(String value);
+
+} // FigureAccessorAttributes
#P org.eclipse.gmf.graphdef.codegen
Index: src/org/eclipse/gmf/graphdef/codegen/templates/FigureChildrenGenerator.java
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen/src/org/eclipse/gmf/graphdef/codegen/templates/FigureChildrenGenerator.java,v
retrieving revision 1.8
diff -u -r1.8 FigureChildrenGenerator.java
--- src/org/eclipse/gmf/graphdef/codegen/templates/FigureChildrenGenerator.java 2 May 2006 11:44:18 -0000 1.8
+++ src/org/eclipse/gmf/graphdef/codegen/templates/FigureChildrenGenerator.java 24 May 2006 22:47:24 -0000
@@ -33,7 +33,7 @@
protected final String TEXT_12 = NL + "\t\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate ";
protected final String TEXT_13 = " f";
protected final String TEXT_14 = "; " + NL + "" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
- protected final String TEXT_15 = " getFigure";
+ protected final String TEXT_15 = " ";
protected final String TEXT_16 = "() {" + NL + "\t\treturn f";
protected final String TEXT_17 = ";" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate void setFigure";
protected final String TEXT_18 = "(";
@@ -54,6 +54,7 @@
final Stack/*GraphDefDispatcher.LayoutArgs*/ contextStack = new Stack/*GraphDefDispatcher.LayoutArgs*/();
final LinkedList queue = new LinkedList();
final Object marker = new Object();
+final NamingStrategy namingStrategy = NamingStrategy.INSTANCE;
class FieldSupport {
private final Figure myRoot;
@@ -132,7 +133,7 @@
stringBuffer.append(TEXT_14);
stringBuffer.append(nextClassName);
stringBuffer.append(TEXT_15);
- stringBuffer.append(next.getName());
+ stringBuffer.append(namingStrategy.getChildFigureGetterName(next));
stringBuffer.append(TEXT_16);
stringBuffer.append(CodeGenUtil.capName(next.getName()));
stringBuffer.append(TEXT_17);
Index: templates/children/Figure.javajet
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.codegen/templates/children/Figure.javajet,v
retrieving revision 1.7
diff -u -r1.7 Figure.javajet
--- templates/children/Figure.javajet 2 May 2006 11:44:18 -0000 1.7
+++ templates/children/Figure.javajet 24 May 2006 22:47:24 -0000
@@ -10,6 +10,7 @@
final Stack/*GraphDefDispatcher.LayoutArgs*/ contextStack = new Stack/*GraphDefDispatcher.LayoutArgs*/();
final LinkedList queue = new LinkedList();
final Object marker = new Object();
+final NamingStrategy namingStrategy = NamingStrategy.INSTANCE;
class FieldSupport {
private final Figure myRoot;
@@ -83,7 +84,7 @@
/**
* @generated
*/
- public <%=nextClassName%> getFigure<%=next.getName()%>() {
+ public <%=nextClassName%> <%=namingStrategy.getChildFigureGetterName(next)%>() {
return f<%=CodeGenUtil.capName(next.getName())%>;
}
Index: src/org/eclipse/gmf/graphdef/codegen/NamingStrategy.java
===================================================================
RCS file: src/org/eclipse/gmf/graphdef/codegen/NamingStrategy.java
diff -N src/org/eclipse/gmf/graphdef/codegen/NamingStrategy.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gmf/graphdef/codegen/NamingStrategy.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2006 Borland Software Corporation
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Michael Golubev (Borland) - initial API and implementation
+ */
+
+package org.eclipse.gmf.graphdef.codegen;
+
+import org.eclipse.emf.codegen.util.CodeGenUtil;
+import org.eclipse.gmf.gmfgraph.Figure;
+
+public class NamingStrategy {
+ public static NamingStrategy INSTANCE = new NamingStrategy();
+
+ public String getChildFigureGetterName(Figure childFigure){
+ return "getFigure" + CodeGenUtil.capName(CodeGenUtil.validJavaIdentifier(childFigure.getName()));
+ }
+}
#P org.eclipse.gmf.bridge
Index: src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java
===================================================================
RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.bridge/src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java,v
retrieving revision 1.18
diff -u -r1.18 InnerClassViewmapProducer.java
--- src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java 24 May 2006 18:05:26 -0000 1.18
+++ src/org/eclipse/gmf/bridge/genmodel/InnerClassViewmapProducer.java 24 May 2006 22:47:25 -0000
@@ -22,6 +22,7 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.codegen.gmfgen.FigureAccessorAttributes;
import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
import org.eclipse.gmf.codegen.gmfgen.InnerClassViewmap;
@@ -42,6 +43,7 @@
import org.eclipse.gmf.gmfgraph.util.RuntimeFQNSwitch;
import org.eclipse.gmf.graphdef.codegen.FigureGenerator;
import org.eclipse.gmf.graphdef.codegen.MapModeCodeGenStrategy;
+import org.eclipse.gmf.graphdef.codegen.NamingStrategy;
import org.eclipse.gmf.internal.common.codegen.NullImportAssistant;
/**
@@ -91,11 +93,37 @@
public Viewmap create(Compartment compartment) {
Viewmap result = super.create(compartment);
+ setupPinnedCompartment(result, compartment);
if (compartment.getFigure() instanceof Figure){
setupPluginDependencies(result, (Figure) compartment.getFigure());
}
return result;
}
+
+ private void setupPinnedCompartment(Viewmap viewmap, Compartment compartment){
+ FigureHandle handle = compartment.getFigure();
+ if (handle == null){
+ return;
+ }
+ if (handle instanceof FigureAccessor){
+ FigureAccessor ghost = (FigureAccessor)handle;
+ FigureAccessorAttributes attributes = GMFGenFactory.eINSTANCE.createFigureAccessorAttributes();
+ attributes.setFigureGetterName(ghost.getAccessor());
+ viewmap.getAttributes().add(attributes);
+ } else if (handle instanceof Figure) {
+ Figure compartmentFigure = (Figure)handle;
+ Figure root = findRootFigure(compartmentFigure);
+ if (root != handle && !root.getReferencingElements().isEmpty()){
+ FigureAccessorAttributes attributes = GMFGenFactory.eINSTANCE.createFigureAccessorAttributes();
+ attributes.setFigureGetterName(NamingStrategy.INSTANCE.getChildFigureGetterName(compartmentFigure));
+ viewmap.getAttributes().add(attributes);
+ }
+ } else {
+ throw new IllegalArgumentException("Unknown FigureHandle :" + handle);
+ }
+ }
+
+
private Viewmap createViewmap(Figure figure) {
Viewmap result;
@@ -106,7 +134,7 @@
ParentAssignedViewmap v = GMFGenFactory.eINSTANCE.createParentAssignedViewmap();
// XXX yet another assumption - getter name
// FIXME introduce feedback to FigureGenerator to let us know exact names
- v.setGetterName("get" + CodeGenUtil.validJavaIdentifier(figure.getName()));
+ v.setGetterName(NamingStrategy.INSTANCE.getChildFigureGetterName(figure));
v.setFigureQualifiedClassName(fqnSwitch.get(figure));
result = v;
} else {
@@ -191,4 +219,20 @@
}
return true;
}
+
+ public static Figure findRootFigure(Figure figure){
+ Figure current = figure;
+ while (true){
+ EObject next = current.eContainer();
+ if (next instanceof Figure){
+ current = (Figure)next;
+ } else if (next == null || next instanceof FigureGallery){
+ return current;
+ } else {
+ throw new IllegalStateException("Ancestor for figure: " + figure + " is not FigureGallery but :" + next);
+ }
+ }
+ }
+
+
}