Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 58577 Details for
Bug 173496
Migrate org.eclipse.gmf.graphdef.editor to the new xPand templates engine and GMF2.0 models
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Only non-generated constant sources: metamodel and templates updated.
patch.txt (text/plain), 133.66 KB, created by
Anna Karjakina
on 2007-02-08 12:32:56 EST
(
hide
)
Description:
Only non-generated constant sources: metamodel and templates updated.
Filename:
MIME Type:
Creator:
Anna Karjakina
Created:
2007-02-08 12:32:56 EST
Size:
133.66 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.graphdef.editor >Index: templates/parts/setViewColor.javajet >=================================================================== >RCS file: templates/parts/setViewColor.javajet >diff -N templates/parts/setViewColor.javajet >--- templates/parts/setViewColor.javajet 14 Apr 2006 12:33:35 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,32 +0,0 @@ >-if (modelElement.get<%=modelColorProperty%>Color() != null) { >- final int rgbColor; >- if (modelElement.get<%=modelColorProperty%>Color() instanceof RGBColor) { >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%> modelColor = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%>) modelElement.get<%=modelColorProperty%>Color(); >- rgbColor = (modelColor.getRed()& 0xFF) | ((modelColor.getGreen() & 0xFF) << 8) | ((modelColor.getBlue() & 0xFF) << 16); >- } else { >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.ConstantColor")%> modelColor = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.ConstantColor")%>) modelElement.get<%=modelColorProperty%>Color(); >- switch (modelColor.getValue().getValue()) { >-/* >- case <nextValue>: { >- rgbColor = org.eclipse.draw2d.ColorConstants.<nextColorLiteral.getName()>.getRGB().hashCode(); >- break; >- } >-*/ >- default: >- rgbColor = -1; >- } >- } >- if (rgbColor != -1 && shapeStyle.get<%=viewColorProperty%>Color() != rgbColor) { >- <%=importManager.getImportedName("org.eclipse.emf.workspace.AbstractEMFOperation")%> setColorOperation = new <%=importManager.getImportedName("org.eclipse.emf.workspace.AbstractEMFOperation")%>(getEditingDomain(), "Synchronizing view <%=modelColorProperty%> color with the model", <%=importManager.getImportedName("java.util.Collections")%>.singletonMap(<%=importManager.getImportedName("org.eclipse.emf.transaction.Transaction")%>.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >- protected <%=importManager.getImportedName("org.eclipse.core.runtime.IStatus")%> doExecute(<%=importManager.getImportedName("org.eclipse.core.runtime.IProgressMonitor")%> monitor, <%=importManager.getImportedName("org.eclipse.core.runtime.IAdaptable")%> info) throws <%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> { >- shapeStyle.set<%=viewColorProperty%>Color(rgbColor); >- return <%=importManager.getImportedName("org.eclipse.core.runtime.Status")%>.OK_STATUS; >- } >- }; >- try { >- setColorOperation.execute(new <%=importManager.getImportedName("org.eclipse.core.runtime.NullProgressMonitor")%>(), null); >- } catch (<%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> e) { >- <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError("Unable to synchronize view <%=modelColorProperty%> background color with the model", e); //$NON-NLS-1$ >- } >- } >-} >\ No newline at end of file >Index: templates/parts/NodeEditPart.javajet >=================================================================== >RCS file: templates/parts/NodeEditPart.javajet >diff -N templates/parts/NodeEditPart.javajet >--- templates/parts/NodeEditPart.javajet 26 Jun 2006 18:38:20 -0000 1.9 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,1021 +0,0 @@ >-<%@ 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.*" >- 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()); >- >-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 (next.getViewmap() instanceof ParentAssignedViewmap){ >- 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(); >- } >-} >-final NodeEditPartHelper myHelper = new NodeEditPartHelper(genNode); >-// [graphdef++] >-GenClass metaclass = genNode.getModelFacet().getMetaClass(); >-boolean generateSyncronizationCode = genNode.getViewmap() instanceof InnerClassViewmap && metaclass.getEcoreClass().getEAllSuperTypes().contains(metaclass.getEcoreClass().getEPackage().getEClassifier("FigureMarker")); >-// [graphdef--] >-%> >-<%@ include file="../copyright4java.jetinc"%> >-<%importManager.emitPackageStatement(stringBuffer);%> >- >-<% >-if (genNode.getViewmap() instanceof InnerClassViewmap) { >-importManager.registerInnerClass(((InnerClassViewmap) genNode.getViewmap()).getClassName()); >-} >-importManager.addImport("org.eclipse.draw2d.IFigure"); >-importManager.addImport("org.eclipse.draw2d.StackLayout"); >-importManager.addImport("org.eclipse.gef.EditPolicy"); >-importManager.addImport("org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles"); >-importManager.addImport("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure"); >-importManager.addImport("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure"); >-importManager.addImport("org.eclipse.gmf.runtime.notation.View"); >-importManager.markImportLocation(stringBuffer); >-%> >- >-/** >- * @generated >- */ >-public class <%=genNode.getEditPartClassName()%> extends <%=/*[graphdef++]*/generateSyncronizationCode ? importManager.getImportedName(genDiagram.getEditPartsPackageName() + ".AbstractFigureEditPart") : importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart")/*[graphdef++]*/%> { >-<%{ >-GenCommonBase genCommonBase = genNode;%> >-<%@ include file="visualID.jetinc"%> >-<%}%> >- >- /** >- * @generated >- */ >- protected IFigure contentPane; >- >-<% >-// [graphdef++] >-if (generateSyncronizationCode) { >-%> >- /** >- * @generated >- */ >- private <%=((InnerClassViewmap) genNode.getViewmap()).getClassName()%> myFigure; >- >-// TODO: use myFigure? >- /** >- * @generated >- */ >- protected <%=importManager.getImportedName("org.eclipse.draw2d.Figure")%> myNodeFigure; >- >-<% >-} >-// [graphdef--] >-%> >- /** >- * @generated >- */ >- protected IFigure primaryShape; >- >- /** >- * @generated >- */ >- public <%=genNode.getEditPartClassName()%>(View view) { >- super(view); >- } >-<% >-// [graphdef++] >-if (generateSyncronizationCode) { >- String modelInterfaceName = importManager.getImportedName(metaclass.getQualifiedInterfaceName()); >-%> >- >- /** >- * @generated >- */ >- public void activate() { >- if (isActive()){ >- return; >- } >- View view = (View) getModel(); >- if (view.getElement() == null) { >- super.activate(); >- return; >- } >- >- final <%=modelInterfaceName%> modelElement = (<%=modelInterfaceName%>) view.getElement(); >- >-<% >- for (Iterator genFeatures = metaclass.getAllGenFeatures().iterator(); genFeatures.hasNext();) { >- GenFeature nextGenFeature = (GenFeature) genFeatures.next(); >- if (skip(nextGenFeature)) { >- continue; >- } >- String packageInterfaceName = metaclass.getGenPackage().getQualifiedPackageInterfaceName(); >- if (false == nextGenFeature.getTypeGenClassifier() instanceof GenDataType) { >-%> >- final <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener")%> <%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener")%>() { >- public void notifyChanged(Notification notification) { >- <%=getProcessChangesCall("modelElement", nextGenFeature)%>; >- } >- }; >-<%@ include file="addFeaturePropertyChangeListeners.jetinc"%> >-<% }%> >- addListenerFilter("<%=nextGenFeature.getFeatureAccessorName()%>_Listener", new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener")%>() { >- public void notifyChanged(<%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> notification) { >-<% if (false == nextGenFeature.getTypeGenClassifier() instanceof GenDataType) { >- if (nextGenFeature.isListType()) {%> >- int listSize = modelElement.<%=nextGenFeature.getGetAccessor()%>().size(); >- if (notification.getOldValue() instanceof <%=importManager.getImportedName("java.util.Collection")%>) { >- listSize += ((<%=importManager.getImportedName("java.util.Collection")%>) notification.getOldValue()).size(); >- } else { >- listSize++; >- } >- for (int i = 0; i < listSize; i++) { >- removeListenerFilter("<%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener#" + i); >- } >-<% } else {%> >- removeListenerFilter("<%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener"); >-<% }%> >-<%@ include file="addFeaturePropertyChangeListeners.jetinc"%> >-<% }%> >- <%=getProcessChangesCall("modelElement", nextGenFeature)%>; >- } >- }, modelElement, <%=importManager.getImportedName(nextGenFeature.getGenPackage().getQualifiedPackageInterfaceName())%>.eINSTANCE.get<%=nextGenFeature.getFeatureAccessorName()%>()); >- >-<% }%> >- final <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%> bounds = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%>) ((<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Node")%>) view).getLayoutConstraint(); >- final int sizeX; >- final int sizeY; >- if (modelElement.getPreferredSize() != null) { >- sizeX = getMapMode().DPtoLP(modelElement.getPreferredSize().getDx()); >- sizeY = getMapMode().DPtoLP(modelElement.getPreferredSize().getDy()); >- } else { >- sizeX = getMapMode().DPtoLP(20); >- sizeY = getMapMode().DPtoLP(20); >- } >- final int locationX; >- final int locationY; >- if (modelElement.getLocation() != null) { >- locationX = getMapMode().DPtoLP(modelElement.getLocation().getX()); >- locationY = getMapMode().DPtoLP(modelElement.getLocation().getY()); >- } else { >- locationX = bounds.getX(); >- locationY = bounds.getY(); >- } >- if (sizeX != bounds.getWidth() || sizeY != bounds.getHeight() || locationX != bounds.getX() || locationY != bounds.getY()) { >- try { >- new <%=importManager.getImportedName("org.eclipse.emf.workspace.AbstractEMFOperation")%>(getEditingDomain(), "Synchronizing view size with the model", <%=importManager.getImportedName("java.util.Collections")%>.singletonMap(<%=importManager.getImportedName("org.eclipse.emf.transaction.Transaction")%>.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >- protected <%=importManager.getImportedName("org.eclipse.core.runtime.IStatus")%> doExecute(<%=importManager.getImportedName("org.eclipse.core.runtime.IProgressMonitor")%> monitor, <%=importManager.getImportedName("org.eclipse.core.runtime.IAdaptable")%> info) throws <%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> { >- bounds.setX(locationX); >- bounds.setY(locationY); >- bounds.setWidth(sizeX); >- bounds.setHeight(sizeY); >- return <%=importManager.getImportedName("org.eclipse.core.runtime.Status")%>.OK_STATUS; >- } >- }.execute(new <%=importManager.getImportedName("org.eclipse.core.runtime.NullProgressMonitor")%>(), null); >- } catch (<%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> e) { >- <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError("Unable to synchronize view size with the model", e); //$NON-NLS-1$ >- } >- } >- addListenerFilter("BoundsListener", new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener")%>() { >- public void notifyChanged(final <%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> notification) { >- try { >- new <%=importManager.getImportedName("org.eclipse.emf.workspace.AbstractEMFOperation")%>(getEditingDomain(), "Synchronizing model size with the view", <%=importManager.getImportedName("java.util.Collections")%>.singletonMap(<%=importManager.getImportedName("org.eclipse.emf.transaction.Transaction")%>.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >- protected <%=importManager.getImportedName("org.eclipse.core.runtime.IStatus")%> doExecute(<%=importManager.getImportedName("org.eclipse.core.runtime.IProgressMonitor")%> monitor, <%=importManager.getImportedName("org.eclipse.core.runtime.IAdaptable")%> info) throws <%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> { >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%> bounds = (<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.Bounds")%>) notification.getNotifier(); >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Dimension")%> dim = modelElement.getPreferredSize(); >- if (dim == null) { >- dim = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createDimension(); >- modelElement.setPreferredSize(dim); >- } >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Point")%> location = modelElement.getLocation(); >- if (location == null) { >- location = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createPoint(); >- modelElement.setLocation(location); >- } >- >- int x = getMapMode().LPtoDP(bounds.getX()); >- int y = getMapMode().LPtoDP(bounds.getY()); >- int width = getMapMode().LPtoDP(bounds.getWidth()); >- int height = getMapMode().LPtoDP(bounds.getHeight()); >- if (location.getX() != x || location.getY() != y) { >- location.setX(x); >- location.setY(y); >- } >- if (dim.getDx() != width || dim.getDy() != height) { >- dim.setDx(width); >- dim.setDy(height); >- } >- >- myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight()); >- myNodeFigure.setLocation(new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%>(bounds.getX(), bounds.getY())); >- >- if (modelElement.getLayoutData() instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%> || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayout")%>)) { >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%> xyLayoutData = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%>) modelElement.getLayoutData(); >- if (xyLayoutData == null) { >- xyLayoutData = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createXYLayoutData(); >- modelElement.setLayoutData(xyLayoutData); >- xyLayoutData.setTopLeft(<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createPoint()); >- xyLayoutData.getTopLeft().setX(0); >- xyLayoutData.getTopLeft().setY(0); >- xyLayoutData.setSize(<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createDimension()); >- xyLayoutData.getSize().setDx(40); >- xyLayoutData.getSize().setDy(40); >- } >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Point")%> topLeft; >- if (xyLayoutData.getTopLeft() != null) { >- topLeft = xyLayoutData.getTopLeft(); >- } else { >- topLeft = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createPoint(); >- xyLayoutData.setTopLeft(topLeft); >- } >- if (topLeft.getX() != location.getX() || topLeft.getY() != location.getY()) { >- topLeft.setX(location.getX()); >- topLeft.setY(location.getY()); >- } >- >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Dimension")%> size; >- if (xyLayoutData.getSize() != null) { >- size = xyLayoutData.getSize(); >- } else { >- size = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createDimension(); >- xyLayoutData.setSize(size); >- } >- if (size.getDx() != dim.getDx() || size.getDy() != dim.getDy()) { >- size.setDx(dim.getDx()); >- size.setDy(dim.getDy()); >- } >- } >- return <%=importManager.getImportedName("org.eclipse.core.runtime.Status")%>.OK_STATUS; >- } >- }.execute(new <%=importManager.getImportedName("org.eclipse.core.runtime.NullProgressMonitor")%>(), null); >- } catch (<%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> e) { >- <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError("Unable to synchronize model size with the view", e); //$NON-NLS-1$ >- } >- if (getRoot() != null) { >- handleMajorSemanticChange(); >- } >- } >- }, bounds); >- >-<% >- String shapeStyleInterface = importManager.getImportedName("org.eclipse.gmf.runtime.notation.ShapeStyle"); >- String notationPackageInterfaceName = importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage"); >-%> >- final <%=shapeStyleInterface%> shapeStyle = (<%=shapeStyleInterface%>) view.getStyle(<%=notationPackageInterfaceName%>.eINSTANCE.getShapeStyle()); >-<% { >- String modelColorProperty = "Background"; >- String viewColorProperty = "Fill";%> >-<%@ include file = "setViewColor.javajet"%> >-<% }%> >-<% { >- String modelColorProperty = "Foreground"; >- String viewColorProperty = "Line";%> >-<%@ include file = "setViewColor.javajet"%> >-<% }%> >- addListenerFilter("ShapeStyleListener", new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener")%>() { >- public void notifyChanged(final <%=importManager.getImportedName("org.eclipse.emf.common.notify.Notification")%> notification) { >- try { >- new <%=importManager.getImportedName("org.eclipse.emf.workspace.AbstractEMFOperation")%>(getEditingDomain(), "Synchronizing model size with the view", <%=importManager.getImportedName("java.util.Collections")%>.singletonMap(<%=importManager.getImportedName("org.eclipse.emf.transaction.Transaction")%>.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >- protected <%=importManager.getImportedName("org.eclipse.core.runtime.IStatus")%> doExecute(<%=importManager.getImportedName("org.eclipse.core.runtime.IProgressMonitor")%> monitor, <%=importManager.getImportedName("org.eclipse.core.runtime.IAdaptable")%> info) throws <%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> { >- <%=shapeStyleInterface%> shapeStyle = (<%=shapeStyleInterface%>) notification.getNotifier(); >- switch (notification.getFeatureID(<%=shapeStyleInterface%>.class)) { >- case <%=notationPackageInterfaceName%>.SHAPE_STYLE__FILL_COLOR: >- { >- int color = shapeStyle.getFillColor(); >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%> modelColor; >- if (modelElement.getBackgroundColor() instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%>) { >- modelColor = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%>) modelElement.getBackgroundColor(); >- } else { >- modelColor = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createRGBColor(); >- modelElement.setBackgroundColor(modelColor); >- } >- if (modelColor.getRed() != (color & 0x000000FF) || modelColor.getGreen() != (color & 0x0000FF00) >> 8 || modelColor.getBlue() != (color & 0x00FF0000) >> 16) { >- modelColor.setRed(color & 0x000000FF); >- modelColor.setGreen((color & 0x0000FF00) >> 8); >- modelColor.setBlue((color & 0x00FF0000) >> 16); >- } >- break; >- } >- case <%=notationPackageInterfaceName%>.SHAPE_STYLE__LINE_COLOR: >- { >- int color = shapeStyle.getLineColor(); >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%> modelColor; >- if (modelElement.getForegroundColor() instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%>) { >- modelColor = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.RGBColor")%>) modelElement.getForegroundColor(); >- } else { >- modelColor = <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory")%>.eINSTANCE.createRGBColor(); >- modelElement.setForegroundColor(modelColor); >- } >- if (modelColor.getRed() != (color & 0x000000FF) || modelColor.getGreen() != (color & 0x0000FF00) >> 8 || modelColor.getBlue() != (color & 0x00FF0000) >> 16) { >- modelColor.setRed(color & 0x000000FF); >- modelColor.setGreen((color & 0x0000FF00) >> 8); >- modelColor.setBlue((color & 0x00FF0000) >> 16); >- } >- break; >- } >- } >- return <%=importManager.getImportedName("org.eclipse.core.runtime.Status")%>.OK_STATUS; >- } >- }.execute(new <%=importManager.getImportedName("org.eclipse.core.runtime.NullProgressMonitor")%>(), null); >- } catch (<%=importManager.getImportedName("org.eclipse.core.commands.ExecutionException")%> e) { >- <%=importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName())%>.getInstance().logError("Unable to synchronize model size with the view", e); //$NON-NLS-1$ >- } >- } >- }, shapeStyle); >- super.activate(); >- } >-<% >-} >-// [graphdef--] >-%> >- >- /** >- * @generated >- */ >- protected void createDefaultEditPolicies() { >-<% >-if (!genNode.getChildNodes().isEmpty() || myHelper.hasChildrenInListCompartments()) { >-%> >- installEditPolicy(EditPolicyRoles.CREATION_ROLE, new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy")%>() >-<% if (myHelper.hasChildrenInListCompartments()) {%> >- { >- >- public <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getCommand(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) { >- if (understandsRequest(request)) { >- if (request instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest")%>) { >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter")%> adapter = >- ((<%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest")%>) request).getViewAndElementDescriptor().getCreateElementRequestAdapter(); >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.type.core.IElementType")%> type = >- (<%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.type.core.IElementType")%>) adapter.getAdapter(<%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.type.core.IElementType")%>.class); >-<% >- for (Iterator compartments = genNode.getCompartments().iterator(); compartments.hasNext();) { >- GenCompartment compartment = (GenCompartment) compartments.next(); >- if (compartment.isListLayout() && !compartment.getChildNodes().isEmpty()) { >- for (Iterator children = compartment.getChildNodes().iterator(); children.hasNext(); ) { >- GenNode child = (GenNode) children.next(); >-%> >- if (type == <%=importManager.getImportedName(genDiagram.getElementTypesQualifiedClassName())%>.<%=child.getUniqueIdentifier()%>) { >- <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> compartmentEditPart = >- getChildBySemanticHint(<%=importManager.getImportedName(genDiagram.getVisualIDRegistryQualifiedClassName())%>.getType(<%=importManager.getImportedName(compartment.getEditPartQualifiedClassName())%>.VISUAL_ID)); >- return compartmentEditPart == null ? null : compartmentEditPart.getCommand(request); >- } >-<% >- } >- } >- } >-%> >- } >- return super.getCommand(request); >- } >- return null; >- } >-} >-<% }%> >- ); >-<%}%> >- super.createDefaultEditPolicies(); >- installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new <%=importManager.getImportedName(genNode.getItemSemanticEditPolicyQualifiedClassName())%>()); >- installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new <%=importManager.getImportedName(genNode.getGraphicalNodeEditPolicyQualifiedClassName())%>()); >-<%if (!genNode.getChildNodes().isEmpty()) {%> >- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy")%>()); >-<%} >- >-if (genDiagram.isSynchronized()) {%> >- installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new <%=importManager.getImportedName(genNode.getCanonicalEditPolicyQualifiedClassName())%>()); >-<%}%> >- installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy()); >- } >- >- /** >- * @generated >- */ >- protected <%=importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")%> createLayoutEditPolicy() { >-<% >-final String fqnEditPart = importManager.getImportedName("org.eclipse.gef.EditPart"); >-switch(genNode.getLayoutType().getValue()){ >- case ViewmapLayoutType.XY_LAYOUT: >-%> >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy")%> lep = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy")%>() { >-<% if (myHelper.hasExternalLabels()) {%> >- >- protected void decorateChild(EditPart child) { >- if (isExternalLabel(child)) { >- return; >- } >- super.decorateChild(child); >- } >-<% }%> >- >- protected EditPolicy createChildEditPolicy(<%=fqnEditPart%> child) { >- EditPolicy result = super.createChildEditPolicy(child); >- if (result == null) { >- return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy")%>(); >- } >- return result; >- } >- >-<% >-// [graphdef++] >- if (generateSyncronizationCode) { >-%> >- protected <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> getLayoutOrigin() { >- return ((<%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart")%>)getHost()).getContentPane().getClientArea().getLocation(); >- } >- >- protected <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> getCurrentConstraintFor(<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%> child) { >- <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%> result = super.getCurrentConstraintFor(child); >- if (result == null) { >- IFigure fig = child.getFigure(); >- result = fig.getBounds().getCopy(); >- } >- return result; >- } >- >-<% >- } >-// [graphdef--] >-%> >- }; >-<% if (myHelper.hasExternalLabels()) {%> >- <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%> xlep = new <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%>() { >- >- protected boolean isExternalLabel(EditPart editPart) { >- return <%=genNode.getEditPartClassName()%>.this.isExternalLabel(editPart); >- } >- }; >- xlep.setRealLayoutEditPolicy(lep); >- return xlep; >-<% } else {%> >- return lep; >-<% >- } >- break; >- case ViewmapLayoutType.TOOLBAR_LAYOUT: >-%> >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy")%> lep = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy")%>() { >-<% if (myHelper.hasExternalLabels()) {%> >- >- protected void decorateChild(EditPart child) { >- if (isExternalLabel(child)) { >- return; >- } >- super.decorateChild(child); >- } >-<% }%> >- >- protected EditPolicy createChildEditPolicy(<%=fqnEditPart%> child) { >- if (child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE) == null) { >- if (child instanceof <%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart")%>) { >- return new <%=importManager.getImportedName(genDiagram.getTextSelectionEditPolicyQualifiedClassName())%>(); >- } >- } >- return super.createChildEditPolicy(child); >- } >-<% >-// [graphdef++] >- if (generateSyncronizationCode) { >-%> >- protected <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Point")%> getLayoutOrigin() { >- return ((<%=importManager.getImportedName("org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart")%>)getHost()).getContentPane().getClientArea().getLocation(); >- } >-<% >- } >-// [graphdef--] >-%> >- >- }; >-<% if (myHelper.hasExternalLabels()) {%> >- <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%> xlep = new <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%>() { >- >- protected boolean isExternalLabel(EditPart editPart) { >- return <%=genNode.getEditPartClassName()%>.this.isExternalLabel(editPart); >- } >- }; >- xlep.setRealLayoutEditPolicy(lep); >- return xlep; >-<% } else {%> >- return lep; >-<% >- } >- break; >- case ViewmapLayoutType.FLOW_LAYOUT: >-%> >- <%=importManager.getImportedName("org.eclipse.gef.editpolicies.FlowLayoutEditPolicy")%> lep = new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.FlowLayoutEditPolicy")%>() { >-<% if (myHelper.hasExternalLabels()) {%> >- >- protected void decorateChild(EditPart child) { >- if (isExternalLabel(child)) { >- return; >- } >- super.decorateChild(child); >- } >-<% }%> >- >- protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createAddCommand(<%=fqnEditPart%> child, <%=fqnEditPart%> after) { >- return null; >- } >- >- protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> createMoveChildCommand(<%=fqnEditPart%> child, <%=fqnEditPart%> after) { >- return null; >- } >- >- protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getCreateCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")%> request) { >- return null; >- } >- }; >-<% if (myHelper.hasExternalLabels()) {%> >- <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%> xlep = new <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%>() { >- >- protected boolean isExternalLabel(EditPart editPart) { >- return <%=genNode.getEditPartClassName()%>.this.isExternalLabel(editPart); >- } >- }; >- xlep.setRealLayoutEditPolicy(lep); >- return xlep; >-<% } else {%> >- return lep; >-<% >- } >- break; >- default: >-%> >- <%=importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")%> lep = new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.LayoutEditPolicy")%>() { >-<% if (myHelper.hasExternalLabels()) {%> >- >- protected void decorateChild(EditPart child) { >- if (isExternalLabel(child)) { >- return; >- } >- super.decorateChild(child); >- } >-<% }%> >- >- protected EditPolicy createChildEditPolicy(<%=fqnEditPart%> child) { >- EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); >- if( result == null ){ >- result = new <%=importManager.getImportedName("org.eclipse.gef.editpolicies.NonResizableEditPolicy")%>(); >- } >- return result; >- } >- >- protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getMoveChildrenCommand(<%=importManager.getImportedName("org.eclipse.gef.Request")%> request) { >- return null; >- } >- >- protected <%=importManager.getImportedName("org.eclipse.gef.commands.Command")%> getCreateCommand(<%=importManager.getImportedName("org.eclipse.gef.requests.CreateRequest")%> request) { >- return null; >- } >- }; >-<% if (myHelper.hasExternalLabels()) {%> >- <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%> xlep = new <%=importManager.getImportedName(genDiagram.getExternalNodeLabelHostLayoutEditPolicyQualifiedClassName())%>() { >- >- protected boolean isExternalLabel(EditPart editPart) { >- return <%=genNode.getEditPartClassName()%>.this.isExternalLabel(editPart); >- } >- }; >- xlep.setRealLayoutEditPolicy(lep); >- return xlep; >-<% } else {%> >- return lep; >-<% >- } >-} //switch >-%> >- } >- >- /** >- * @generated >- */ >- protected IFigure createNodeShape() { >-<% >-String figureQualifiedClassName = null; >-Viewmap viewmap = genNode.getViewmap(); >-if (viewmap instanceof FigureViewmap) { >- figureQualifiedClassName = ((FigureViewmap) viewmap).getFigureQualifiedClassName(); >- if (figureQualifiedClassName == null || figureQualifiedClassName.trim().length() == 0) { >- figureQualifiedClassName = "org.eclipse.draw2d.RectangleFigure"; >- } >- figureQualifiedClassName = importManager.getImportedName(figureQualifiedClassName); >-%> >- return primaryShape = new <%=figureQualifiedClassName%>()<%if (isXYLayout) {%> { >- protected boolean useLocalCoordinates() { >- return true; >- } >- }<%} // if isXYLayout%>; >-<%} // instanceof FigureViewmap >- else if (viewmap instanceof SnippetViewmap) {%> >- return <%=((SnippetViewmap) viewmap).getBody()%>; >-<%} // instanceof SnippetViewmap; FIXME : obtain figure class name to generate getter >- else if (viewmap instanceof InnerClassViewmap) { >- figureQualifiedClassName = ((InnerClassViewmap) viewmap).getClassName(); >-%> >- <%=figureQualifiedClassName%> figure = new <%=figureQualifiedClassName%>(); >-<%if (!genNode.getChildNodes().isEmpty() && isXYLayout) { /*otherwise, leave to figure's default value*/%> >- figure.setUseLocalCoordinates(true); >-<%} >-// [graphdef++] >- if (generateSyncronizationCode) { >- String modelInterfaceName = importManager.getImportedName(metaclass.getQualifiedInterfaceName()); >-%> >- myFigure = figure; >- <%=modelInterfaceName%> modelElement = (<%=modelInterfaceName%>) ((View) getModel()).getElement(); >- if (modelElement != null) { >-<% >- for (Iterator genFeatures = metaclass.getAllGenFeatures().iterator(); genFeatures.hasNext();) { >- GenFeature nextGenFeature = (GenFeature) genFeatures.next(); >- if (skip(nextGenFeature)) { >- continue; >- } >-%> >- { >- <%=getProcessChangesCall("modelElement", nextGenFeature)%>; >- } >-<% }%> >- } >-<% >- } >-// [graphdef--] >-%> >- return primaryShape = figure; >-<%}%> >- } >-<%if (figureQualifiedClassName != null) {%> >- >- /** >- * @generated >- */ >- public <%=figureQualifiedClassName%> getPrimaryShape() { >- return (<%=figureQualifiedClassName%>) primaryShape; >- } >-<%}%> >- >-<% >-if (myHelper.hasFixedChildren()) { >-%> >- /** >- * @generated >- */ >- protected boolean addFixedChild(EditPart childEditPart) { >-<% >-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(); >- final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) next.getViewmap(); >- String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); >-%> >- if (childEditPart instanceof <%=compartmentEditPartFQN%>) { >- <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> pane = getPrimaryShape().<%=childViewmap.getGetterName()%>(); >- setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way >- 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(); >- final ParentAssignedViewmap childViewmap = (ParentAssignedViewmap) next.getViewmap(); >- String compartmentEditPartFQN = importManager.getImportedName(next.getEditPartQualifiedClassName()); >-%> >- if (childEditPart instanceof <%=compartmentEditPartFQN%>) { >- <%=importManager.getImportedName("org.eclipse.draw2d.IFigure")%> pane = getPrimaryShape().<%=childViewmap.getGetterName()%>(); >- pane.remove(((<%=compartmentEditPartFQN%>)childEditPart).getFigure()); >- return true; >- } >-<% >-} // for pinned compartments >-%> >- return false; >- } >-<% >-} // if myHelper.hasFixedChildren() >-%> >- >- /** >- * @generated >- */ >- protected <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure")%> createNodePlate() { >-<% >-int width = 40; >-int height = 40; >-DefaultSizeAttributes defSizeAttrs = (DefaultSizeAttributes) genNode.getViewmap().find(DefaultSizeAttributes.class); >-if (defSizeAttrs != null) { >- width = defSizeAttrs.getWidth(); >- height = defSizeAttrs.getHeight(); >-} >-%> >- return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure")%>(getMapMode().DPtoLP(<%=width%>), getMapMode().DPtoLP(<%=height%>)); >- } >-<%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");%> >- >- /** >- * @generated >- */ >- public EditPolicy getPrimaryDragEditPolicy() { >- <%=importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")%> ep = (<%=importManager.getImportedName("org.eclipse.gef.editpolicies.ResizableEditPolicy")%>) super.getPrimaryDragEditPolicy(); >- <%if (rc.getResizeHandleNames().isEmpty()) {%> >- ep.setResizeDirections(<%=draw2dPC%>.NONE); >- <% } else {%> >- ep.setResizeDirections(<%for (Iterator rcNamesIter = rc.getResizeHandleNames().iterator(); rcNamesIter.hasNext();) { >- String nextConstantName = (String) rcNamesIter.next();%><%=draw2dPC%>.<%=nextConstantName%><%if (rcNamesIter.hasNext()) {%> | <%}}%>); >- <%}%> >- return ep; >- } >-<%}%> >- /** >- * Creates figure for this edit part. >- * >- * Body of this method does not depend on settings in generation model >- * so you may safely remove <i>generated</i> tag and modify it. >- * >- * @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(); >-<% >-// [graphdef++] >-if (generateSyncronizationCode) { >-%> >- myNodeFigure = figure; >-<% >-} >-// [graphdef--] >-%> >- figure.setLayoutManager(new StackLayout()); >- IFigure shape = createNodeShape(); >- figure.add(shape); >- contentPane = setupContentPane(shape); >- return figure; >- } >- >- /** >- * Default implementation treats passed figure as content pane. >- * Respects layout one may have set for generated figure. >- * @param nodeShape instance of generated figure class >- * @generated >- */ >- protected IFigure setupContentPane(IFigure nodeShape) { >- if (nodeShape.getLayoutManager() == null) { >-<% >-if (isXYLayout) { >-%> >- nodeShape.setLayoutManager(new <%=importManager.getImportedName("org.eclipse.draw2d.FreeformLayout")%>() { >- >- public Object getConstraint(IFigure figure) { >- Object result = constraints.get(figure); >- if (result == null) { >- result = new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Rectangle")%>(0, 0, -1, -1); >- } >- return result; >- } >- }); >-<%} else { >- String layoutClassName = importManager.getImportedName("org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout"); >-%> >- <%=layoutClassName%> layout = new <%=layoutClassName%>(); >- layout.setSpacing(getMapMode().DPtoLP(5)); >- nodeShape.setLayoutManager(layout); >-<%}%> >-} >- return nodeShape; // use nodeShape itself as contentPane >- } >- >- /** >- * @generated >- */ >- public IFigure getContentPane() { >- if (contentPane != null) { >- return contentPane; >- } >- return super.getContentPane(); >- } >-<% >-if (myHelper.getPrimaryLabel() != null) { >- GenNodeLabel primaryLabel = myHelper.getPrimaryLabel(); >-%> >- >- /** >- * @generated >- */ >- public <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> getPrimaryChildEditPart() { >- return getChildBySemanticHint(<%=importManager.getImportedName(genDiagram.getVisualIDRegistryQualifiedClassName())%>.getType(<%=importManager.getImportedName(primaryLabel.getEditPartQualifiedClassName())%>.VISUAL_ID)); >- } >-<% >-} >-if (myHelper.hasExternalLabels()){ >-%> >- >- /** >- * @generated >- */ >- protected boolean isExternalLabel(<%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart) { >-<% >- for (Iterator externalLabels = myHelper.getExternalLabels(); externalLabels.hasNext();) { >- GenNodeLabel next = (GenNodeLabel) externalLabels.next(); >-%> >- if (childEditPart instanceof <%=importManager.getImportedName(next.getEditPartQualifiedClassName())%>) { >- return true; >- } >-<% }%> >- return false; >- } >- >- /** >- * @generated >- */ >- protected IFigure getExternalLabelsContainer() { >- <%=importManager.getImportedName("org.eclipse.gef.editparts.LayerManager")%> root = (<%=importManager.getImportedName("org.eclipse.gef.editparts.LayerManager")%>) getRoot(); >- return root.getLayer(<%=importManager.getImportedName(genDiagram.getEditPartFactoryQualifiedClassName())%>.EXTERNAL_NODE_LABELS_LAYER); >- } >- >-<% >-} >-if (myHelper.hasFixedChildren() || myHelper.hasExternalLabels()) { >-%> >- >- /** >- * @generated >- */ >- 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 (myHelper.hasExternalLabels()) {%> >- >- /** >- * @generated >- */ >- public void removeNotify() { >- for (<%=importManager.getImportedName("java.util.Iterator")%> it = getChildren().iterator(); it.hasNext();) { >- <%=importManager.getImportedName("org.eclipse.gef.EditPart")%> childEditPart = (<%=importManager.getImportedName("org.eclipse.gef.EditPart")%>) it.next(); >- if (isExternalLabel(childEditPart)) { >- IFigure labelFigure = ((<%=importManager.getImportedName("org.eclipse.gef.GraphicalEditPart")%>) childEditPart).getFigure(); >- getExternalLabelsContainer().remove(labelFigure); >- } >- } >- super.removeNotify(); >- } >-<% >- } >-} // if hasFixedChildren || hasExternalLabels >-%> >- >-<%if (genNode.getViewmap() instanceof InnerClassViewmap) {%> >-<%=((InnerClassViewmap) genNode.getViewmap()).getClassBody()%> >-<%}%> >-<% >-// [graphdef++] >-if (generateSyncronizationCode) {%> >- >- /** >- * @generated >- */ >- protected <%=importManager.getImportedName("org.eclipse.draw2d.LayoutManager")%> getFigureLayoutManager() { >- return myFigure.getLayoutManager(); >- } >- >- /** >- * @generated >- */ >- protected void setFigureLayoutManager(<%=importManager.getImportedName("org.eclipse.draw2d.LayoutManager")%> layoutManager) { >- myFigure.setLayoutManager(layoutManager); >- } >- >- /** >- * @generated >- */ >- protected void refreshBounds() { >- if (((<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.View")%>) getParent().getModel()).getElement() instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.FigureMarker")%>) { >- int width = ((Integer) getStructuralFeatureValue(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getSize_Width())).intValue(); >- int height = ((Integer) getStructuralFeatureValue(<%=importManager.getImportedName("org.eclipse.gmf.runtime.notation.NotationPackage")%>.eINSTANCE.getSize_Height())).intValue(); >- myNodeFigure.setPreferredSize(new <%=importManager.getImportedName("org.eclipse.draw2d.geometry.Dimension")%>(width, height)); >- } else { >- super.refreshBounds(); >- } >- } >-<% >-} >-// [graphdef--] >-%> >-} >-<%importManager.emitSortedImports();%> >Index: templates/parts/addFeaturePropertyChangeListeners.jetinc >=================================================================== >RCS file: templates/parts/addFeaturePropertyChangeListeners.jetinc >diff -N templates/parts/addFeaturePropertyChangeListeners.jetinc >--- templates/parts/addFeaturePropertyChangeListeners.jetinc 5 May 2006 16:31:18 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,7 +0,0 @@ >-<%if (nextGenFeature.isListType()) {%>for (int i = 0; i < modelElement.<%=nextGenFeature.getGetAccessor()%>().size(); i++) { >- addListenerFilter("<%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener#" + i, <%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener, (<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) modelElement.<%=nextGenFeature.getGetAccessor()%>().get(i)); >-} >-<%} else {%>if (modelElement.<%=nextGenFeature.getGetAccessor()%>() != null) { >- addListenerFilter("<%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener", <%=nextGenFeature.getFeatureAccessorName()%>_PropertiesListener, modelElement.<%=nextGenFeature.getGetAccessor()%>()); >-} >-<%}%> >\ No newline at end of file >Index: templates/providers/additionalPropertiesProvider.javajet >=================================================================== >RCS file: templates/providers/additionalPropertiesProvider.javajet >diff -N templates/providers/additionalPropertiesProvider.javajet >--- templates/providers/additionalPropertiesProvider.javajet 26 Jun 2006 18:38:20 -0000 1.3 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,118 +0,0 @@ >-if (element instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Layoutable")%>) { >- <%=importManager.getImportedName("org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource")%> compositeSource = new <%=importManager.getImportedName("org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource")%>(element); >- compositeSource.addPropertySource(super.getPropertySource(element)); >-<% >-String factoryAccessor = importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphFactory") + ".eINSTANCE"; >-String providerFactoryAccessor = importManager.getImportedName(genDiagram.getEditorGen().getPlugin().getActivatorQualifiedClassName()) + ".getInstance().getItemProvidersAdapterFactory()"; >-String packageAccessor = importManager.getImportedName("org.eclipse.gmf.gmfgraph.GMFGraphPackage") + ".eINSTANCE"; >-%> >- class ChildMetaclassItemPropertyDescriptor extends <%=importManager.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor")%> { >- >- private <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>[] myValues; >- >- ChildMetaclassItemPropertyDescriptor(<%=importManager.getImportedName("org.eclipse.emf.common.notify.AdapterFactory")%> adapterFactory, String displayName, String description, <%=importManager.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> feature, boolean isSettable, <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>[] valueInstances) { >- super(adapterFactory, displayName, description, feature, isSettable); >- myValues = valueInstances; >- } >- >- protected <%=importManager.getImportedName("java.util.Collection")%> getComboBoxObjects(Object object) { >- if (object instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) { >- <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> eObject = (<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) object; >- Object currentValue = getValue(eObject, feature); >- <%=importManager.getImportedName("java.util.Collection")%> result = new <%=importManager.getImportedName("java.util.ArrayList")%>(); >- result.add(currentValue); >- <%=importManager.getImportedName("org.eclipse.emf.ecore.EClass")%> valueEClass = currentValue instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%> ? ((<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) currentValue).eClass() : null; >- for (int i = 0; i < myValues.length; i++) { >- if (myValues[i].eClass() == valueEClass) { >- continue; >- } >- result.add(myValues[i]); >- } >- if (currentValue != null) { >- result.add(null); >- } >- return result; >- } >- return null; >- } >- >- public void setPropertyValue(Object object, Object value) { >- if (value instanceof <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) { >- <%=importManager.getImportedName("org.eclipse.emf.ecore.EClass")%> eClass = ((<%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>) value).eClass(); >- value = eClass.getEPackage().getEFactoryInstance().create(eClass); >- if (value instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%>) { >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%> xyLayoutData = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.XYLayoutData")%>) value; >- xyLayoutData.setTopLeft(<%=factoryAccessor%>.createPoint()); >- xyLayoutData.getTopLeft().setX(0); >- xyLayoutData.getTopLeft().setY(0); >- xyLayoutData.setSize(<%=factoryAccessor%>.createDimension()); >- xyLayoutData.getSize().setDx(40); >- xyLayoutData.getSize().setDy(40); >- } >- } >- super.setPropertyValue(object, value); >- } >- } >- >- class SingleDescriptorPropertySource implements <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertySource")%> { >- >- private <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> myPropertyDescriptor; >- >- private <%=importManager.getImportedName("java.util.List")%> myDescriptors = new <%=importManager.getImportedName("java.util.LinkedList")%>(); >- >- SingleDescriptorPropertySource(<%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> propertyDescriptor) { >- myPropertyDescriptor = propertyDescriptor; >- myDescriptors.add(myPropertyDescriptor); >- } >- >- public <%=importManager.getImportedName("java.util.List")%> getPropertyDescriptors(Object object) { >- return myDescriptors; >- } >- >- public <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> getPropertyDescriptor(Object object, Object propertyID) { >- return myPropertyDescriptor; >- } >- >- public Object getEditableValue(Object object) { >- return object; >- } >- >- } >- >- <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> layoutPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(<%=providerFactoryAccessor%>, "Layout Manager", "Layout Manager", <%=packageAccessor%>.getLayoutable_Layout(), true, new <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>[] {<%=factoryAccessor%>.createBorderLayout(), <%=factoryAccessor%>.createCustomLayout(), <%=factoryAccessor%>.createFlowLayout(), <%=factoryAccessor%>.createGridLayout(), <%=factoryAccessor%>.createStackLayout(), <%=factoryAccessor%>.createXYLayout()}); >- compositeSource.addPropertySource(new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource")%>(element, new SingleDescriptorPropertySource(layoutPropertyDescriptor), "EMF")); //$NON-NLS-1$ >- <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> layoutDataPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(<%=providerFactoryAccessor%>, "Layout Data", "Layout Data", <%=packageAccessor%>.getLayoutable_LayoutData(), true, new <%=importManager.getImportedName("org.eclipse.emf.ecore.EObject")%>[] {<%=factoryAccessor%>.createBorderLayoutData(), <%=factoryAccessor%>.createCustomLayoutData(), <%=factoryAccessor%>.createGridLayoutData(), <%=factoryAccessor%>.createXYLayoutData()}); >- compositeSource.addPropertySource(new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource")%>(element, new SingleDescriptorPropertySource(layoutDataPropertyDescriptor), "EMF")); //$NON-NLS-1$ >- >- if (element instanceof <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Polyline")%>) { >- int counter = 1; >- for (<%=importManager.getImportedName("java.util.Iterator")%> it = ((<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Polyline")%>) element).getTemplate().iterator(); it.hasNext(); counter++) { >- <%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Point")%> nextPoint = (<%=importManager.getImportedName("org.eclipse.gmf.gmfgraph.Point")%>) it.next(); >- final String titleX = "Point " + counter + " X"; >- <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> nextPointPropertyDescriptorX = new <%=importManager.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor")%>(<%=providerFactoryAccessor%>, titleX, titleX, <%=packageAccessor%>.getPoint_X(), true, "Template"); >- compositeSource.addPropertySource(new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource")%>(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorX), "EMF") { >- protected <%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertyDescriptor")%> newPropertyDescriptor(<%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> itemPropertyDescriptor) { >- return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor")%>(object, itemPropertyDescriptor, getCategory()) { >- public Object getId() { >- return titleX; >- } >- }; >- } >- }); >- >- final String titleY = "Point " + counter + " Y"; >- <%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> nextPointPropertyDescriptorY = new <%=importManager.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor")%>(<%=providerFactoryAccessor%>, titleY, titleY, <%=packageAccessor%>.getPoint_Y(), true, "Template"); >- compositeSource.addPropertySource(new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource")%>(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorY), "EMF") { >- protected <%=importManager.getImportedName("org.eclipse.ui.views.properties.IPropertyDescriptor")%> newPropertyDescriptor(<%=importManager.getImportedName("org.eclipse.emf.edit.provider.IItemPropertyDescriptor")%> itemPropertyDescriptor) { >- return new <%=importManager.getImportedName("org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor")%>(object, itemPropertyDescriptor, getCategory()) { >- public Object getId() { >- return titleY; >- } >- }; >- } >- }); >- } >- } >- >- return compositeSource; >-} >\ No newline at end of file >Index: templates/providers/PropertyProvider.javajet >=================================================================== >RCS file: templates/providers/PropertyProvider.javajet >diff -N templates/providers/PropertyProvider.javajet >--- templates/providers/PropertyProvider.javajet 22 May 2006 17:37:31 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,70 +0,0 @@ >-<%@ jet package="org.eclipse.gmf.codegen.templates.providers" class="PropertyProviderGenerator" >- imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.gmf.common.codegen.*"%> >-<% >-final GenDiagram genDiagram = (GenDiagram) ((Object[]) argument)[0]; >-final ImportAssistant importManager = (ImportAssistant) ((Object[]) argument)[1]; >-%> >-<%@ include file="../copyright4java.jetinc"%> >-<%importManager.emitPackageStatement(stringBuffer);%> >- >-import org.eclipse.emf.ecore.EObject; >-import org.eclipse.gef.EditPart; >-import org.eclipse.gmf.runtime.common.core.service.IOperation; >-import org.eclipse.gmf.runtime.common.ui.services.properties.GetPropertySourceOperation; >-import org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource; >-import org.eclipse.gmf.runtime.common.ui.services.properties.IPropertiesProvider; >-import org.eclipse.gmf.runtime.emf.ui.properties.providers.GenericEMFPropertiesProvider; >-import org.eclipse.gmf.runtime.notation.View; >-<%importManager.markImportLocation(stringBuffer);%> >- >-/** >- * @generated >- */ >-public class <%=genDiagram.getPropertyProviderClassName()%> extends GenericEMFPropertiesProvider implements IPropertiesProvider { >- >- /** >- * @generated >- */ >- public boolean provides(IOperation operation) { >- if (operation instanceof GetPropertySourceOperation) { >- Object object = ((GetPropertySourceOperation) operation).getObject(); >- return getSemanticElement(object) != null; >- } >- return false; >- } >- >- /** >- * @generated >- */ >- public ICompositePropertySource getPropertySource(Object object) { >- EObject element = getSemanticElement(object); >- if (element != null) { >-<%// [graphdef++]%> >-<%@ include file="additionalPropertiesProvider.javajet"%> >-<%// [graphdef--]%> >- return super.getPropertySource(element); >- } >- return null; >- } >- >- /** >- * @generated >- */ >- protected EObject getSemanticElement(Object object) { >- View view = null; >- if (object instanceof View) { >- view = (View) object; >- } else if (object instanceof EditPart) { >- EditPart editPart = (EditPart) object; >- if (editPart.getModel() instanceof View) { >- view = (View) editPart.getModel(); >- } >- } >- if (view != null && <%=importManager.getImportedName(genDiagram.getEditPartQualifiedClassName())%>.MODEL_ID.equals(<%=importManager.getImportedName(genDiagram.getVisualIDRegistryQualifiedClassName())%>.getModelID(view))) { >- return view.getElement(); >- } >- return null; >- } >- >-} >-<%importManager.emitSortedImports();%> >Index: models/graphdef.gmfmap >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/models/graphdef.gmfmap,v >retrieving revision 1.3 >diff -u -r1.3 graphdef.gmfmap >--- models/graphdef.gmfmap 30 May 2006 18:14:45 -0000 1.3 >+++ models/graphdef.gmfmap 8 Feb 2007 17:29:11 -0000 >@@ -3,7 +3,7 @@ > xmlns:xmi="http://www.omg.org/XMI" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" >- xmlns:gmfmap="http://www.eclipse.org/gmf/2005/mappings" >+ xmlns:gmfmap="http://www.eclipse.org/gmf/2005/mappings/2.0" > xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition"> > <nodes> > <containmentFeature >@@ -11,7 +11,8 @@ > <ownedChild> > <domainMetaElement > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Compartment"/> >- <labelMappings> >+ <labelMappings >+ xsi:type="gmfmap:FeatureLabelMapping"> > <diagramLabel > href="graphdef.gmfgraph#DiagramElementNode_Name"/> > <features >@@ -34,7 +35,8 @@ > <ownedChild> > <domainMetaElement > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Node"/> >- <labelMappings> >+ <labelMappings >+ xsi:type="gmfmap:FeatureLabelMapping"> > <diagramLabel > href="graphdef.gmfgraph#DiagramElementNode_Name"/> > <features >@@ -57,7 +59,8 @@ > <ownedChild> > <domainMetaElement > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//Connection"/> >- <labelMappings> >+ <labelMappings >+ xsi:type="gmfmap:FeatureLabelMapping"> > <diagramLabel > href="graphdef.gmfgraph#DiagramElementNode_Name"/> > <features >@@ -80,7 +83,8 @@ > <ownedChild> > <domainMetaElement > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.ecore#//FigureGallery"/> >- <labelMappings> >+ <labelMappings >+ xsi:type="gmfmap:FeatureLabelMapping"> > <diagramLabel > href="graphdef.gmfgraph#FigureGalleryNode_Name"/> > <features >Index: models/graphdef.gmfgen >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/models/graphdef.gmfgen,v >retrieving revision 1.17 >diff -u -r1.17 graphdef.gmfgen >--- models/graphdef.gmfgen 27 Jun 2006 13:44:47 -0000 1.17 >+++ models/graphdef.gmfgen 8 Feb 2007 17:29:11 -0000 >@@ -2,7 +2,7 @@ > <gmfgen:GenEditorGenerator xmi:version="2.0" > xmlns:xmi="http://www.omg.org/XMI" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >- xmlns:gmfgen="http://www.eclipse.org/gmf/2005/GenModel" packageNamePrefix="org.eclipse.gmf.graphdef.editor" >+ xmlns:gmfgen="http://www.eclipse.org/gmf/2005/GenModel/2.0" packageNamePrefix="org.eclipse.gmf.graphdef.editor" > modelID="GMFGraph" > dynamicTemplates="true" > templateDirectory="/org.eclipse.gmf.graphdef.editor/templates/" >@@ -12,8 +12,9 @@ > editPartClassName="CanvasEditPart" > itemSemanticEditPolicyClassName="CanvasItemSemanticEditPolicy" > notationViewFactoryClassName="CanvasViewFactory" >- iconProviderPriority="Low" > canonicalEditPolicyClassName="CanvasCanonicalEditPolicy" >+ iconProviderPriority="Low" >+ validationProviderPriority="Low" > creationWizardCategoryID="org.eclipse.ui.Examples/org.eclipse.gmf.examples"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/> >@@ -32,9 +33,10 @@ > editPartClassName="RectangleEditPart" > itemSemanticEditPolicyClassName="RectangleItemSemanticEditPolicy" > notationViewFactoryClassName="RectangleViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="RectangleCanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="RectangleGraphicalNodeEditPolicy" >+ createCommandClassName="RectangleCreateCommand" > containers="//@diagram/@compartments.3"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -67,9 +69,10 @@ > editPartClassName="Rectangle2EditPart" > itemSemanticEditPolicyClassName="Rectangle2ItemSemanticEditPolicy" > notationViewFactoryClassName="Rectangle2ViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="Rectangle2CanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="Rectangle2GraphicalNodeEditPolicy" >+ createCommandClassName="Rectangle2CreateCommand" > containers="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -103,9 +106,10 @@ > editPartClassName="EllipseEditPart" > itemSemanticEditPolicyClassName="EllipseItemSemanticEditPolicy" > notationViewFactoryClassName="EllipseViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="EllipseCanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="EllipseGraphicalNodeEditPolicy" >+ createCommandClassName="EllipseCreateCommand" > containers="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.1 //@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -138,9 +142,10 @@ > editPartClassName="RoundedRectangleEditPart" > itemSemanticEditPolicyClassName="RoundedRectangleItemSemanticEditPolicy" > notationViewFactoryClassName="RoundedRectangleViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="RoundedRectangleCanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="RoundedRectangleGraphicalNodeEditPolicy" >+ createCommandClassName="RoundedRectangleCreateCommand" > containers="//@diagram/@childNodes.3 //@diagram/@childNodes.2 //@diagram/@childNodes.1 //@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -175,6 +180,7 @@ > notationViewFactoryClassName="PolylineViewFactory" > canonicalEditPolicyClassName="PolylineCanonicalEditPolicy" > graphicalNodeEditPolicyClassName="PolylineGraphicalNodeEditPolicy" >+ createCommandClassName="PolylineCreateCommand" > containers="//@diagram/@childNodes.3 //@diagram/@childNodes.2 //@diagram/@childNodes.1 //@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -205,9 +211,10 @@ > editPartClassName="Ellipse2EditPart" > itemSemanticEditPolicyClassName="Ellipse2ItemSemanticEditPolicy" > notationViewFactoryClassName="Ellipse2ViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="Ellipse2CanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="Ellipse2GraphicalNodeEditPolicy" >+ createCommandClassName="Ellipse2CreateCommand" > containers="//@diagram/@compartments.3"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -241,9 +248,10 @@ > editPartClassName="RoundedRectangle2EditPart" > itemSemanticEditPolicyClassName="RoundedRectangle2ItemSemanticEditPolicy" > notationViewFactoryClassName="RoundedRectangle2ViewFactory" >- childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > canonicalEditPolicyClassName="RoundedRectangle2CanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.4" > graphicalNodeEditPolicyClassName="RoundedRectangle2GraphicalNodeEditPolicy" >+ createCommandClassName="RoundedRectangle2CreateCommand" > containers="//@diagram/@compartments.3"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -279,6 +287,7 @@ > notationViewFactoryClassName="Polyline2ViewFactory" > canonicalEditPolicyClassName="Polyline2CanonicalEditPolicy" > graphicalNodeEditPolicyClassName="Polyline2GraphicalNodeEditPolicy" >+ createCommandClassName="Polyline2CreateCommand" > containers="//@diagram/@compartments.3"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> >@@ -312,7 +321,8 @@ > notationViewFactoryClassName="CompartmentViewFactory" > canonicalEditPolicyClassName="CompartmentCanonicalEditPolicy" > compartments="//@diagram/@compartments.0" >- graphicalNodeEditPolicyClassName="CompartmentGraphicalNodeEditPolicy"> >+ graphicalNodeEditPolicyClassName="CompartmentGraphicalNodeEditPolicy" >+ createCommandClassName="CompartmentCreateCommand"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> > <elementType >@@ -347,7 +357,7 @@ > figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/> > <modelFacet > xsi:type="gmfgen:FeatureLabelModelFacet"> >- <metaFeature >+ <metaFeatures > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/> > </modelFacet> > </labels> >@@ -359,7 +369,8 @@ > notationViewFactoryClassName="NodeViewFactory" > canonicalEditPolicyClassName="NodeCanonicalEditPolicy" > compartments="//@diagram/@compartments.1" >- graphicalNodeEditPolicyClassName="NodeGraphicalNodeEditPolicy"> >+ graphicalNodeEditPolicyClassName="NodeGraphicalNodeEditPolicy" >+ createCommandClassName="NodeCreateCommand"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> > <elementType >@@ -394,7 +405,7 @@ > figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/> > <modelFacet > xsi:type="gmfgen:FeatureLabelModelFacet"> >- <metaFeature >+ <metaFeatures > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/> > </modelFacet> > </labels> >@@ -406,7 +417,8 @@ > notationViewFactoryClassName="ConnectionViewFactory" > canonicalEditPolicyClassName="ConnectionCanonicalEditPolicy" > compartments="//@diagram/@compartments.2" >- graphicalNodeEditPolicyClassName="ConnectionGraphicalNodeEditPolicy"> >+ graphicalNodeEditPolicyClassName="ConnectionGraphicalNodeEditPolicy" >+ createCommandClassName="ConnectionCreateCommand"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> > <elementType >@@ -441,7 +453,7 @@ > figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/> > <modelFacet > xsi:type="gmfgen:FeatureLabelModelFacet"> >- <metaFeature >+ <metaFeatures > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/> > </modelFacet> > </labels> >@@ -453,7 +465,8 @@ > notationViewFactoryClassName="FigureGalleryViewFactory" > canonicalEditPolicyClassName="FigureGalleryCanonicalEditPolicy" > compartments="//@diagram/@compartments.3" >- graphicalNodeEditPolicyClassName="FigureGalleryGraphicalNodeEditPolicy"> >+ graphicalNodeEditPolicyClassName="FigureGalleryGraphicalNodeEditPolicy" >+ createCommandClassName="FigureGalleryCreateCommand"> > <diagramRunTimeClass > href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/> > <elementType >@@ -488,7 +501,7 @@ > figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/> > <modelFacet > xsi:type="gmfgen:FeatureLabelModelFacet"> >- <metaFeature >+ <metaFeatures > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#//gmfgraph/Identity/name"/> > </modelFacet> > </labels> >@@ -572,8 +585,8 @@ > editPartClassName="FigureGalleryFiguresEditPart" > itemSemanticEditPolicyClassName="FigureGalleryFiguresItemSemanticEditPolicy" > notationViewFactoryClassName="FigureGalleryFiguresViewFactory" >- childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6 //@diagram/@childNodes.7" > canonicalEditPolicyClassName="FigureGalleryFiguresCanonicalEditPolicy" >+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.5 //@diagram/@childNodes.6 //@diagram/@childNodes.7" > title="Figures" > node="//@diagram/@topLevelNodes.3" > listLayout="false"> >@@ -647,11 +660,298 @@ > genNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.7"/> > </groups> > </palette> >+ <preferencePages >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.general" >+ name="GMFGraph Diagram"> >+ <children >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.appearance" >+ name="Appearance" >+ kind="Appearance"/> >+ <children >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.connections" >+ name="Connections" >+ kind="Connections"/> >+ <children >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.printing" >+ name="Printing" >+ kind="Printing"/> >+ <children >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.rulersAndGrid" >+ name="Rulers And Grid" >+ kind="RulersAndGrid"/> >+ <children >+ xsi:type="gmfgen:GenStandardPreferencePage" >+ iD="org.eclipse.gmf.graphdef.diagram.pathmaps" >+ name="Pathmaps" >+ kind="Pathmaps"/> >+ </preferencePages> > </diagram> > <plugin > iD="org.eclipse.gmf.graphdef.editor" > name="gmfgraph Plugin"/> > <editor/> >+ <navigator> >+ <childReferences >+ child="//@diagram"/> >+ <childReferences >+ parent="//@diagram" >+ child="//@diagram/@topLevelNodes.0"/> >+ <childReferences >+ parent="//@diagram" >+ child="//@diagram/@topLevelNodes.1"/> >+ <childReferences >+ parent="//@diagram" >+ child="//@diagram/@topLevelNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.1" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.2" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.2" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.3" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.3" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.3" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.3" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@childNodes.2" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.2" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@childNodes.1" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.1" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.1" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@childNodes.0" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.0" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.0" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.0" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.3" >+ child="//@diagram/@childNodes.0"/> >+ <childReferences >+ parent="//@diagram/@childNodes.5" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.5" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.5" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.5" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.3" >+ child="//@diagram/@childNodes.5"/> >+ <childReferences >+ parent="//@diagram/@childNodes.6" >+ child="//@diagram/@childNodes.1"/> >+ <childReferences >+ parent="//@diagram/@childNodes.6" >+ child="//@diagram/@childNodes.2"/> >+ <childReferences >+ parent="//@diagram/@childNodes.6" >+ child="//@diagram/@childNodes.3"/> >+ <childReferences >+ parent="//@diagram/@childNodes.6" >+ child="//@diagram/@childNodes.4"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.3" >+ child="//@diagram/@childNodes.6"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.3" >+ child="//@diagram/@childNodes.7"/> >+ <childReferences >+ parent="//@diagram" >+ child="//@diagram/@topLevelNodes.3"/> >+ <childReferences >+ parent="//@diagram" >+ child="//@diagram/@links.0" >+ groupName="links" >+ groupIcon="icons/linksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.0" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.0" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.1" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.1" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.2" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.2" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.3" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.3" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.4" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.4" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.5" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.5" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.6" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.6" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@childNodes.7" >+ referenceType="out_taget" >+ groupName="target" >+ groupIcon="icons/linkTargetNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@childNodes.7" >+ child="//@diagram/@links.0" >+ referenceType="in_source" >+ groupName="incoming links" >+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@topLevelNodes.0" >+ referenceType="in_source" >+ groupName="source" >+ groupIcon="icons/linkSourceNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.0" >+ child="//@diagram/@links.0" >+ referenceType="out_taget" >+ groupName="outgoing links" >+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@topLevelNodes.1" >+ referenceType="in_source" >+ groupName="source" >+ groupIcon="icons/linkSourceNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.1" >+ child="//@diagram/@links.0" >+ referenceType="out_taget" >+ groupName="outgoing links" >+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@links.0" >+ child="//@diagram/@topLevelNodes.2" >+ referenceType="in_source" >+ groupName="source" >+ groupIcon="icons/linkSourceNavigatorGroup.gif"/> >+ <childReferences >+ parent="//@diagram/@topLevelNodes.2" >+ child="//@diagram/@links.0" >+ referenceType="out_taget" >+ groupName="outgoing links" >+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/> >+ </navigator> >+ <propertySheet> >+ <tabs >+ xsi:type="gmfgen:GenStandardPropertyTab" >+ iD="appearance"/> >+ <tabs >+ xsi:type="gmfgen:GenStandardPropertyTab" >+ iD="diagram" >+ label="Rulers & Grid"/> >+ <tabs >+ xsi:type="gmfgen:GenCustomPropertyTab" >+ iD="domain" >+ label="Core"> >+ <filter >+ xsi:type="gmfgen:TypeTabFilter"> >+ <types>org.eclipse.gmf.runtime.notation.View</types> >+ <types>org.eclipse.gef.EditPart</types> >+ <generatedTypes>abstractNavigatorItem</generatedTypes> >+ </filter> >+ </tabs> >+ </propertySheet> > <domainGenModel > href="../../../plugin/org.eclipse.gmf.graphdef/models/gmfgraph.genmodel#/"/> > </gmfgen:GenEditorGenerator> >Index: templates/common.skeleton >=================================================================== >RCS file: templates/common.skeleton >diff -N templates/common.skeleton >--- templates/common.skeleton 5 May 2006 16:31:18 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,207 +0,0 @@ >-public class CLASS { >- >-// [graphdef++] >- private java.util.Map myMethodsMap; >- >- private java.util.Set mySkippedDataTypeFeatures; >- >- private java.util.Set myAllowedNonDataTypeFeatures; >- >- private java.util.Map getMethodsMap() { >- if (myMethodsMap == null) { >- myMethodsMap = new java.util.HashMap(); >- myMethodsMap.put("XorFill", "myFigure.setFillXOR"); >- myMethodsMap.put("XorOutline", "myFigure.setOutlineXOR"); >- myMethodsMap.put("LineKind", "myFigure.setLineStyle"); >- myMethodsMap.put("CornerWidth", "myFigure.setCornerDimensions"); >- myMethodsMap.put("CornerHeight", "myFigure.setCornerDimensions"); >- myMethodsMap.put("Template", "myFigure.setPoints"); >- } >- return myMethodsMap; >- } >- >- private java.util.Set getSkippedDataTypeFeatures() { >- if (mySkippedDataTypeFeatures == null) { >- mySkippedDataTypeFeatures = new java.util.HashSet(); >- mySkippedDataTypeFeatures.add("name"); >- } >- return mySkippedDataTypeFeatures; >- } >- >- private java.util.Set getAllowedNonDataTypeFeatures() { >- if (myAllowedNonDataTypeFeatures == null) { >- myAllowedNonDataTypeFeatures = new java.util.HashSet(); >- myAllowedNonDataTypeFeatures.add("layout"); >- myAllowedNonDataTypeFeatures.add("layoutData"); >- myAllowedNonDataTypeFeatures.add("layout"); >- myAllowedNonDataTypeFeatures.add("template"); >- } >- return myAllowedNonDataTypeFeatures; >- } >- >- protected final boolean skip(GenFeature feature) { >- if (feature.getTypeGenClassifier() instanceof GenDataType) { >- return getSkippedDataTypeFeatures().contains(feature.getName()); >- } >- return !getAllowedNonDataTypeFeatures().contains(feature.getName()); >- } >- >- private final StringBuffer getValue(String modelElementVariable, GenFeature feature) { >- StringBuffer result = new StringBuffer(); >- String featureName = feature.getName(); >- if ("cornerWidth".equals(featureName) || "cornerHeight".equals(featureName)) { >- result.append("getMapMode().DPtoLP("); >- result.append(modelElementVariable); >- result.append(".getCornerWidth()), getMapMode().DPtoLP("); >- result.append(modelElementVariable); >- result.append(".getCornerHeight())"); >- } else { >- result.append(modelElementVariable); >- result.append("."); >- result.append(feature.getGetAccessor()); >- result.append("()"); >- } >- return result; >- } >- >- private final void transform(StringBuffer value, GenFeature feature) { >- String featureName = feature.getName(); >- if ("cornerWidth".equals(featureName) || "cornerHeight".equals(featureName)) { >- value.insert(0, "new org.eclipse.draw2d.geometry.Dimension("); >- value.append(")"); >- } else if ("lineKind".equals(featureName)) { >- value.insert(0, "getLineStyle("); >- value.append(")"); >- } else if ("template".equals(featureName)) { >- value.insert(0, "getPointList("); >- value.append(")"); >- } >- } >- >- private final void setValue(StringBuffer value, GenFeature feature) { >- value.insert(0, "("); >- java.util.Map map = getMethodsMap(); >- String accessorName = feature.getAccessorName(); >- if (map.containsKey(accessorName)) { >- value.insert(0, (String) map.get(accessorName)); >- } else { >- if (feature.getTypeGenClassifier() instanceof GenDataType) { >- value.insert(0, accessorName); >- value.insert(0, "myFigure.set"); >- } else { >- value.insert(0, "Changed"); >- value.insert(0, feature.getName()); >- } >- } >- value.append(")"); >- } >- >- protected final String getProcessChangesCall(String modelElementVariable, GenFeature feature) { >- StringBuffer result = getValue(modelElementVariable, feature); >- transform(result, feature); >- setValue(result, feature); >- return result.toString(); >- } >-// [graphdef--] >- >- protected final String getFeatureValueGetter(String containerName, GenFeature feature, boolean isContainerEObject, ImportAssistant importManager) { >- StringBuffer result = new StringBuffer(); >- if (feature.getGenClass().isExternalInterface()) { >-// Using EMF reflective method to access feature value >- result.append("(("); >- if (feature.isListType()) { >- result.append(importManager.getImportedName("java.util.Collection")); >- } else { >- result.append(importManager.getImportedName(feature.getTypeGenClass().getQualifiedInterfaceName())); >- } >- result.append(")"); >- if (!isContainerEObject) { >-// Casting container to EObject - ExternalIntarfce could be not an instance of EObject >- result.append("(("); >- result.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >- result.append(")"); >- } >- result.append(containerName); >- if (!isContainerEObject) { >- result.append(")"); >- } >- result.append(".eGet("); >- result.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >- result.append(".eINSTANCE.get"); >- result.append(feature.getFeatureAccessorName()); >- result.append("()))"); >- } else { >- if (isContainerEObject) { >-// Casting container to the typed interface >- result.append("(("); >- result.append(importManager.getImportedName(feature.getGenClass().getQualifiedInterfaceName())); >- result.append(")"); >- } >- result.append(containerName); >- if (isContainerEObject) { >- result.append(")"); >- } >- result.append("."); >- result.append(feature.getGetAccessor()); >- result.append("()"); >- } >- return result.toString(); >- } >- >- protected final String getFeatureValueSetterPrefix(String containerName, GenFeature feature, boolean isContainerEObject, ImportAssistant importManager) { >- StringBuffer result = new StringBuffer(); >- if (feature.getGenClass().isExternalInterface()) { >-// Using EMF reflective method to access feature value >- if (!isContainerEObject) { >-// Casting container to EObject - ExternalIntarfce could be not an instance of EObject >- result.append("(("); >- result.append(importManager.getImportedName("org.eclipse.emf.ecore.EObject")); >- result.append(")"); >- } >- result.append(containerName); >- if (!isContainerEObject) { >- result.append(")"); >- } >- result.append(".eSet("); >- result.append(importManager.getImportedName(feature.getGenPackage().getQualifiedPackageInterfaceName())); >- result.append(".eINSTANCE.get"); >- result.append(feature.getFeatureAccessorName()); >- result.append("(), "); >- } else { >- if (isContainerEObject) { >-// Casting container to the typed interface >- result.append("(("); >- result.append(importManager.getImportedName(feature.getGenClass().getQualifiedInterfaceName())); >- result.append(")"); >- } >- result.append(containerName); >- if (isContainerEObject) { >- result.append(")"); >- } >- if (feature.isListType()) { >- result.append("."); >- result.append(feature.getGetAccessor()); >- result.append("().add("); >- } else { >- result.append(".set"); >- result.append(feature.getAccessorName()); >- result.append("("); >- } >- } >- return result.toString(); >- } >- >- protected final String getMetaClassAccessor(GenClass genClass, ImportAssistant importManager) { >- StringBuffer buf = new StringBuffer(); >- buf.append(importManager.getImportedName(genClass.getGenPackage().getQualifiedPackageInterfaceName())) >- .append(".eINSTANCE.get") //$NON-NLS-1$ >- .append(genClass.getName()) >- .append("()"); //$NON-NLS-1$ >- return buf.toString(); >- } >- >- public String generate(Object argument) { >- return ""; >- } >- >-} >\ No newline at end of file >Index: templates/aspects/xpt/diagram/editparts/Utils.ext >=================================================================== >RCS file: templates/aspects/xpt/diagram/editparts/Utils.ext >diff -N templates/aspects/xpt/diagram/editparts/Utils.ext >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/aspects/xpt/diagram/editparts/Utils.ext 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,118 @@ >+/* >+ * Copyright (c) 2007 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: >+ * Anna Karjakina (Borland) - initial API and implementation >+ */ >+ >+import "http://www.eclipse.org/gmf/2005/GraphicalDefinition"; >+import "http://www.eclipse.org/gmf/2005/GenModel/2.0"; >+import "http://www.eclipse.org/emf/2002/GenModel"; >+import "http://www.eclipse.org/emf/2002/Ecore"; >+ >+extension xpt::GenModelUtils; >+ >+cached List[genmodel::GenFeature] getAllGenFeatures(genmodel::GenClass genClass) : >+getAllBaseGenClasses(genClass).genFeatures.union(genClass.genFeatures) >+; >+ >+cached List[genmodel::GenClass] getAllBaseGenClasses(genmodel::GenClass genClass) : >+genClass.ecoreClass.eAllSuperTypes.findGenClassifier(genClass.genPackage.genModel) >+; >+ >+private genmodel::GenClass findGenClassifier(ecore::EClass eClass, genmodel::GenModel genModel) : >+findGenClassifier(genModel, eClass) >+; >+ >+cached genmodel::GenClassifier getTypeGenClassifier(genmodel::GenFeature genFeature) : >+null != genFeature.ecoreFeature.eType ? findGenClassifier(genFeature.genClass.genPackage.genModel, genFeature.ecoreFeature.eType) : null >+; >+ >+cached genmodel::GenClass metaclass(gmfgen::GenNode genNode) : >+genNode.getDomainMetaClass() >+; >+ >+cached boolean skip(genmodel::GenFeature genFeature) : >+skip(getTypeGenClassifier(genFeature), getName(genFeature)) >+; >+ >+private String getName(genmodel::GenFeature genFeature) : >+genFeature.ecoreFeature.name >+; >+ >+private boolean skip(genmodel::GenClassifier type, String genFeatureName) : >+!genFeatureName.matches("layoutData|layout|template") >+; >+ >+private boolean skip(genmodel::GenDataType type, String genFeatureName) : >+genFeatureName.matches("name") >+; >+ >+cached boolean generateSyncronizationCode(genmodel::GenClass metaclass) : >+metaclass.ecoreClass.eAllSuperTypes.contains(metaclass.ecoreClass.ePackage.getEClassifier("FigureMarker")) >+; >+ >+boolean isInnerClassViewmap(gmfgen::Viewmap viewmap) : >+false >+; >+ >+boolean isInnerClassViewmap(gmfgen::InnerClassViewmap viewmap) : >+true >+; >+ >+cached String getProcessChangesCall(genmodel::GenFeature genFeature, String modelElementVariable) : >+setValue(genFeature, transform(genFeature, getValue(genFeature, modelElementVariable))) >+; >+ >+private String getValue(genmodel::GenFeature genFeature, String modelElementVariable) : >+isCornerWidthOrHeight(genFeature) ? >+DPtoLPcall(modelElementVariable+".getCornerWidth()")+", "+DPtoLPcall(modelElementVariable+".getCornerHeight()") : >+modelElementVariable+"."+getGetAccessor(genFeature)+"()" >+; >+ >+private String DPtoLPcall(String variable) : >+"getMapMode().DPtoLP("+variable+")" >+; >+ >+private String transform(genmodel::GenFeature genFeature, String getValueString) : >+switch (getName(genFeature)) { >+case "cornerWidth": "new org.eclipse.draw2d.geometry.Dimension("+getValueString+")" >+case "cornerHeight": "new org.eclipse.draw2d.geometry.Dimension("+getValueString+")" >+case "lineKind": "getLineStyle("+getValueString+")" >+case "template": "getPointList("+getValueString+")" >+default : getValueString >+} >+; >+ >+private boolean isCornerWidthOrHeight(genmodel::GenFeature genFeature) : >+getName(genFeature).matches("cornerWidth|cornerHeight") >+; >+ >+private String getAccessorCall(genmodel::GenFeature genFeature) : >+switch (getAccessorName(genFeature)) { >+case "XorFill": "myFigure.setFillXOR" >+case "XorOutline": "myFigure.setOutlineXOR" >+case "LineKind": "myFigure.setLineStyle" >+case "CornerWidth": "myFigure.setCornerDimensions" >+case "CornerHeight": "myFigure.setCornerDimensions" >+case "Template": "myFigure.setPoints" >+default : getTypedAccessorCall(genFeature, getTypeGenClassifier(genFeature)) >+} >+; >+ >+private String getTypedAccessorCall(genmodel::GenFeature genFeature, genmodel::GenDataType type) : >+"myFigure.set"+getAccessorName(genFeature) >+; >+ >+private String getTypedAccessorCall(genmodel::GenFeature genFeature, genmodel::GenClassifier type) : >+getName(genFeature)+"Changed" >+; >+ >+private String setValue(genmodel::GenFeature genFeature, String transformedValueString) : >+getAccessorCall(genFeature)+"("+transformedValueString+")" >+; >Index: templates/aspects/xpt/propsheet/PropertySection.xpt >=================================================================== >RCS file: templates/aspects/xpt/propsheet/PropertySection.xpt >diff -N templates/aspects/xpt/propsheet/PropertySection.xpt >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/aspects/xpt/propsheet/PropertySection.xpt 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,191 @@ >+/* >+ * Copyright (c) 2007 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: >+ * Anna Karjakina (Borland) - initial API and implementation >+ */ >+«IMPORT "http://www.eclipse.org/gmf/2005/GenModel/2.0"» >+«IMPORT "http://www.eclipse.org/emf/2002/Ecore"» >+ >+«AROUND getPropertySourceMethod FOR gmfgen::GenCustomPropertyTab-» >+ «EXPAND xpt::Common::generatedMemberComment» >+ public org.eclipse.ui.views.properties.IPropertySource getPropertySource(Object object) { >+ «EXPAND additionalPropertiesProvider-» >+ if (object instanceof org.eclipse.ui.views.properties.IPropertySource) { >+ return (org.eclipse.ui.views.properties.IPropertySource) object; >+ } >+ org.eclipse.emf.common.notify.AdapterFactory af = getAdapterFactory(object); >+ if (af != null) { >+ org.eclipse.emf.edit.provider.IItemPropertySource ips = (org.eclipse.emf.edit.provider.IItemPropertySource) af.adapt(object, org.eclipse.emf.edit.provider.IItemPropertySource.class); >+ if (ips != null) { >+ return new org.eclipse.emf.edit.ui.provider.PropertySource(object, ips); >+ } >+ } >+ if (object instanceof org.eclipse.core.runtime.IAdaptable) { >+ return (org.eclipse.ui.views.properties.IPropertySource) ((org.eclipse.core.runtime.IAdaptable) object).getAdapter(org.eclipse.ui.views.properties.IPropertySource.class); >+ } >+ return null; >+ } >+«ENDAROUND» >+ >+«DEFINE additionalPropertiesProvider FOR gmfgen::GenCustomPropertyTab-» >+if (object instanceof org.eclipse.gmf.gmfgraph.Layoutable) { >+ org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource compositeSource = new org.eclipse.gmf.runtime.common.ui.services.properties.descriptors.CompositePropertySource(object); >+ >+ compositeSource.addPropertySource(adaptToOldCompositePropertySource(object)); >+ >+ org.eclipse.emf.edit.provider.IItemPropertyDescriptor layoutPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(«this.sheet.editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getItemProvidersAdapterFactory(), "Layout Manager", "Layout Manager", org.eclipse.gmf.gmfgraph.GMFGraphPackage.eINSTANCE.getLayoutable_Layout(), true, new org.eclipse.emf.ecore.EObject[] {org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createBorderLayout(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createCustomLayout(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createFlowLayout(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createGridLayout(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createStackLayout(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createXYLayout()}); >+ compositeSource.addPropertySource(new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource(object, new SingleDescriptorPropertySource(layoutPropertyDescriptor), "EMF")); //$NON-NLS-1$ >+ >+ org.eclipse.emf.edit.provider.IItemPropertyDescriptor layoutDataPropertyDescriptor = new ChildMetaclassItemPropertyDescriptor(«this.sheet.editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getItemProvidersAdapterFactory(), "Layout Data", "Layout Data", org.eclipse.gmf.gmfgraph.GMFGraphPackage.eINSTANCE.getLayoutable_LayoutData(), true, new org.eclipse.emf.ecore.EObject[] {org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createBorderLayoutData(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createCustomLayoutData(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createGridLayoutData(), org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createXYLayoutData()}); >+ compositeSource.addPropertySource(new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource(object, new SingleDescriptorPropertySource(layoutDataPropertyDescriptor), "EMF")); //$NON-NLS-1$ >+ >+ if (object instanceof org.eclipse.gmf.gmfgraph.Polyline) { >+ int counter = 1; >+ for (java.util.Iterator it = ((org.eclipse.gmf.gmfgraph.Polyline) object).getTemplate().iterator(); it.hasNext(); counter++) { >+ org.eclipse.gmf.gmfgraph.Point nextPoint = (org.eclipse.gmf.gmfgraph.Point) it.next(); >+ final String titleX = "Point " + counter + " X"; >+ org.eclipse.emf.edit.provider.IItemPropertyDescriptor nextPointPropertyDescriptorX = new org.eclipse.emf.edit.provider.ItemPropertyDescriptor(«this.sheet.editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getItemProvidersAdapterFactory(), titleX, titleX, org.eclipse.gmf.gmfgraph.GMFGraphPackage.eINSTANCE.getPoint_X(), true, "Template"); >+ compositeSource.addPropertySource(new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorX), "EMF") { >+ protected org.eclipse.ui.views.properties.IPropertyDescriptor newPropertyDescriptor(org.eclipse.emf.edit.provider.IItemPropertyDescriptor itemPropertyDescriptor) { >+ return new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) { >+ public Object getId() { >+ return titleX; >+ } >+ }; >+ } >+ }); >+ >+ final String titleY = "Point " + counter + " Y"; >+ org.eclipse.emf.edit.provider.IItemPropertyDescriptor nextPointPropertyDescriptorY = new org.eclipse.emf.edit.provider.ItemPropertyDescriptor(«this.sheet.editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getItemProvidersAdapterFactory(), titleY, titleY, org.eclipse.gmf.gmfgraph.GMFGraphPackage.eINSTANCE.getPoint_Y(), true, "Template"); >+ compositeSource.addPropertySource(new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource(nextPoint, new SingleDescriptorPropertySource(nextPointPropertyDescriptorY), "EMF") { >+ protected org.eclipse.ui.views.properties.IPropertyDescriptor newPropertyDescriptor(org.eclipse.emf.edit.provider.IItemPropertyDescriptor itemPropertyDescriptor) { >+ return new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositeSourcePropertyDescriptor(object, itemPropertyDescriptor, getCategory()) { >+ public Object getId() { >+ return titleY; >+ } >+ }; >+ } >+ }); >+ } >+ } >+ >+ return compositeSource; >+} >+«ENDDEFINE» >+ >+«AROUND additions FOR gmfgen::GenCustomPropertyTab-» >+«EXPAND xpt::Common::generatedMemberComment» >+private org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource adaptToOldCompositePropertySource(Object object) { >+ if (object instanceof org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource) { >+ return (org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource) object; >+ } >+ org.eclipse.emf.common.notify.AdapterFactory af = getAdapterFactory(object); >+ if (af != null) { >+ org.eclipse.emf.edit.provider.IItemPropertySource ips = (org.eclipse.emf.edit.provider.IItemPropertySource) af.adapt(object, org.eclipse.emf.edit.provider.IItemPropertySource.class); >+ if (ips != null) { >+ return new org.eclipse.gmf.runtime.emf.ui.properties.descriptors.EMFCompositePropertySource(object, ips, "EMF"); >+ } >+ } >+ if (object instanceof org.eclipse.core.runtime.IAdaptable) { >+ return (org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource) ((org.eclipse.core.runtime.IAdaptable) object).getAdapter(org.eclipse.gmf.runtime.common.ui.services.properties.ICompositePropertySource.class); >+ } >+ return null; >+} >+ >+«EXPAND SingleDescriptorPropertySourceClass-» >+«EXPAND ChildMetaclassItemPropertyDescriptorClass-» >+«ENDAROUND» >+ >+«DEFINE SingleDescriptorPropertySourceClass FOR gmfgen::GenCustomPropertyTab» >+«EXPAND xpt::Common::generatedMemberComment» >+public static class SingleDescriptorPropertySource implements org.eclipse.emf.edit.provider.IItemPropertySource { >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ private org.eclipse.emf.edit.provider.IItemPropertyDescriptor myPropertyDescriptor; >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ private java.util.List myDescriptors = new java.util.LinkedList(); >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ SingleDescriptorPropertySource(org.eclipse.emf.edit.provider.IItemPropertyDescriptor propertyDescriptor) { >+ myPropertyDescriptor = propertyDescriptor; >+ myDescriptors.add(myPropertyDescriptor); >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public java.util.List getPropertyDescriptors(Object object) { >+ return myDescriptors; >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public org.eclipse.emf.edit.provider.IItemPropertyDescriptor getPropertyDescriptor(Object object, Object propertyID) { >+ return myPropertyDescriptor; >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public Object getEditableValue(Object object) { >+ return object; >+ } >+} >+«ENDDEFINE» >+ >+«DEFINE ChildMetaclassItemPropertyDescriptorClass FOR gmfgen::GenCustomPropertyTab» >+«EXPAND xpt::Common::generatedMemberComment» >+public static class ChildMetaclassItemPropertyDescriptor extends org.eclipse.emf.edit.provider.ItemPropertyDescriptor { >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ private org.eclipse.emf.ecore.EObject[] myValues; >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ ChildMetaclassItemPropertyDescriptor(org.eclipse.emf.common.notify.AdapterFactory adapterFactory, String displayName, String description, org.eclipse.emf.ecore.EStructuralFeature feature, boolean isSettable, org.eclipse.emf.ecore.EObject[] valueInstances) { >+ super(adapterFactory, displayName, description, feature, isSettable); >+ myValues = valueInstances; >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected java.util.Collection getComboBoxObjects(Object object) { >+ if (object instanceof org.eclipse.emf.ecore.EObject) { >+ org.eclipse.emf.ecore.EObject eObject = (org.eclipse.emf.ecore.EObject) object; >+ Object currentValue = getValue(eObject, feature); >+ java.util.Collection result = new java.util.ArrayList(); >+ result.add(currentValue); >+ org.eclipse.emf.ecore.EClass valueEClass = currentValue instanceof org.eclipse.emf.ecore.EObject ? ((org.eclipse.emf.ecore.EObject) currentValue).eClass() : null; >+ for (int i = 0; i < myValues.length; i++) { >+ if (myValues[i].eClass() == valueEClass) { >+ continue; >+ } >+ result.add(myValues[i]); >+ } >+ if (currentValue != null) { >+ result.add(null); >+ } >+ return result; >+ } >+ return null; >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public void setPropertyValue(Object object, Object value) { >+ if (value instanceof org.eclipse.emf.ecore.EObject) { >+ org.eclipse.emf.ecore.EClass eClass = ((org.eclipse.emf.ecore.EObject) value).eClass(); >+ value = eClass.getEPackage().getEFactoryInstance().create(eClass); >+ if (value instanceof org.eclipse.gmf.gmfgraph.XYLayoutData) { >+ org.eclipse.gmf.gmfgraph.XYLayoutData xyLayoutData = (org.eclipse.gmf.gmfgraph.XYLayoutData) value; >+ xyLayoutData.setTopLeft(org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createPoint()); >+ xyLayoutData.getTopLeft().setX(0); >+ xyLayoutData.getTopLeft().setY(0); >+ xyLayoutData.setSize(org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createDimension()); >+ xyLayoutData.getSize().setDx(40); >+ xyLayoutData.getSize().setDy(40); >+ } >+ } >+ super.setPropertyValue(object, value); >+ } >+} >+«ENDDEFINE» >Index: templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt >=================================================================== >RCS file: templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt >diff -N templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,464 @@ >+/* >+ * Copyright (c) 2007 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: >+ * Anna Karjakina (Borland) - initial API and implementation >+ */ >+ >+«IMPORT "http://www.eclipse.org/gmf/2005/GraphicalDefinition"» >+«IMPORT "http://www.eclipse.org/gmf/2005/GenModel/2.0"» >+«IMPORT "http://www.eclipse.org/emf/2002/GenModel"» >+«IMPORT "http://www.eclipse.org/emf/2002/Ecore"» >+ >+«EXTENSION xpt::GenModelUtils» >+«EXTENSION xpt::diagram::editparts::Utils» >+«EXTENSION aspects::xpt::diagram::editparts::Utils» >+ >+«DEFINE addFeaturePropertyChangeListeners FOR genmodel::GenFeature-» >+«IF this.isListType()-» >+for (int i = 0; i < modelElement.«this.getGetAccessor()»().size(); i++) { >+ addListenerFilter("«this.getFeatureAccessorName()»_PropertiesListener#" + i, «this.getFeatureAccessorName()»_PropertiesListener, (org.eclipse.emf.ecore.EObject) modelElement.«this.getGetAccessor()»().get(i)); >+} >+«ELSE-» >+if (modelElement.«this.getGetAccessor()»() != null) { >+ addListenerFilter("«this.getFeatureAccessorName()»_PropertiesListener", «this.getFeatureAccessorName()»_PropertiesListener, modelElement.«this.getGetAccessor()»()); >+} >+«ENDIF-» >+«ENDDEFINE» >+ >+«DEFINE setViewColor(String modelColorProperty, String viewColorProperty) FOR gmfgen::GenNode-» >+if (modelElement.get«modelColorProperty»Color() != null) { >+ final int rgbColor; >+ if (modelElement.get«modelColorProperty»Color() instanceof org.eclipse.gmf.gmfgraph.RGBColor) { >+ org.eclipse.gmf.gmfgraph.RGBColor modelColor = (org.eclipse.gmf.gmfgraph.RGBColor) modelElement.get«modelColorProperty»Color(); >+ rgbColor = (modelColor.getRed()& 0xFF) | ((modelColor.getGreen() & 0xFF) << 8) | ((modelColor.getBlue() & 0xFF) << 16); >+ } else { >+ org.eclipse.gmf.gmfgraph.ConstantColor modelColor = (org.eclipse.gmf.gmfgraph.ConstantColor) modelElement.get«modelColorProperty»Color(); >+ switch (modelColor.getValue().getValue()) { >+/* >+ case <nextValue>: { >+ rgbColor = org.eclipse.draw2d.ColorConstants.<nextColorLiteral.getName()>.getRGB().hashCode(); >+ break; >+ } >+*/ >+ default: >+ rgbColor = -1; >+ } >+ } >+ if (rgbColor != -1 && shapeStyle.get«viewColorProperty»Color() != rgbColor) { >+ org.eclipse.emf.workspace.AbstractEMFOperation setColorOperation = new org.eclipse.emf.workspace.AbstractEMFOperation(getEditingDomain(), "Synchronizing view «modelColorProperty» color with the model", java.util.Collections.singletonMap(org.eclipse.emf.transaction.Transaction.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >+ protected org.eclipse.core.runtime.IStatus doExecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException { >+ shapeStyle.set«viewColorProperty»Color(rgbColor); >+ return org.eclipse.core.runtime.Status.OK_STATUS; >+ } >+ }; >+ try { >+ setColorOperation.execute(new org.eclipse.core.runtime.NullProgressMonitor(), null); >+ } catch (org.eclipse.core.commands.ExecutionException e) { >+ «getDiagram().editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Unable to synchronize view «modelColorProperty» background color with the model", e); //$NON-NLS-1$ >+ } >+ } >+} >+«ENDDEFINE» >+ >+«DEFINE listenerForDatatype FOR genmodel::GenFeature-» >+«EXPAND listenerForDatatype(getTypeGenClassifier())-» >+«ENDDEFINE» >+ >+«DEFINE listenerForDatatype(genmodel::GenClassifier type) FOR genmodel::GenFeature-» >+ final org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener «this.getFeatureAccessorName()»_PropertiesListener = new org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener() { >+ public void notifyChanged(org.eclipse.emf.common.notify.Notification notification) { >+ «getProcessChangesCall(this, "modelElement")»; >+ } >+ }; >+ «EXPAND addFeaturePropertyChangeListeners-» >+«ENDDEFINE» >+ >+«DEFINE listenerForDatatype(genmodel::GenDataType type) FOR genmodel::GenFeature-» >+«ENDDEFINE» >+ >+«DEFINE notifyBodyForDatatype FOR genmodel::GenFeature-» >+«EXPAND notifyBodyForDatatype(getTypeGenClassifier())-» >+«ENDDEFINE» >+ >+«DEFINE notifyBodyForDatatype(genmodel::GenClassifier type) FOR genmodel::GenFeature-» >+ «IF this.isListType()-» >+ int listSize = modelElement.«this.getGetAccessor()»().size(); >+ if (notification.getOldValue() instanceof java.util.Collection) { >+ listSize += ((java.util.Collection) notification.getOldValue()).size(); >+ } else { >+ listSize++; >+ } >+ for (int i = 0; i < listSize; i++) { >+ removeListenerFilter("«this.getFeatureAccessorName()»_PropertiesListener#" + i); >+ } >+ «ELSE-» >+ removeListenerFilter("«this.getFeatureAccessorName()»_PropertiesListener"); >+ «ENDIF-» >+ «EXPAND addFeaturePropertyChangeListeners-» >+«ENDDEFINE» >+ >+«DEFINE notifyBodyForDatatype(genmodel::GenDataType type) FOR genmodel::GenFeature-» >+«ENDDEFINE» >+ >+«AROUND extendsList FOR gmfgen::GenNode-» >+«IF generateSyncronizationCode(metaclass()) && isInnerClassViewmap(viewmap)-» >+«getDiagram().editPartsPackageName».AbstractFigureEditPart«ELSE»«targetDef.proceed()»«ENDIF» >+«ENDAROUND» >+ >+«AROUND additions FOR gmfgen::GenNode-» >+«IF generateSyncronizationCode(metaclass())-» >+«EXPAND additions(viewmap)-» >+«ELSE-» >+«targetDef.proceed()» >+«ENDIF-» >+«ENDAROUND» >+ >+«DEFINE additions(gmfgen::Viewmap innerViewmap) FOR gmfgen::GenNode-» >+«ENDDEFINE» >+ >+«DEFINE additions(gmfgen::InnerClassViewmap innerViewmap) FOR gmfgen::GenNode-» >+ «EXPAND xpt::Common::generatedMemberComment» >+ private «innerViewmap.className» myFigure; >+ >+// TODO: use myFigure? >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected org.eclipse.draw2d.Figure myNodeFigure; >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public void activate() { >+ if (isActive()){ >+ return; >+ } >+ org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View) getModel(); >+ if (view.getElement() == null) { >+ super.activate(); >+ return; >+ } >+ >+ final «metaclass().getQualifiedInterfaceName()» modelElement = («metaclass().getQualifiedInterfaceName()») view.getElement(); >+ >+ «FOREACH metaclass().getAllGenFeatures() AS nextGenFeature» >+ «IF !skip(nextGenFeature)-» >+ «EXPAND listenerForDatatype FOR nextGenFeature-» >+ addListenerFilter("«nextGenFeature.getFeatureAccessorName()»_Listener", new org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener() { >+ public void notifyChanged(org.eclipse.emf.common.notify.Notification notification) { >+ «EXPAND notifyBodyForDatatype FOR nextGenFeature-» >+ «getProcessChangesCall(nextGenFeature, "modelElement")»; >+ } >+ }, modelElement, «nextGenFeature.genClass.genPackage.getQualifiedPackageInterfaceName()».eINSTANCE.get«nextGenFeature.getFeatureAccessorName()»()); >+ «ENDIF-» >+ «ENDFOREACH» >+ >+ final org.eclipse.gmf.runtime.notation.Bounds bounds = (org.eclipse.gmf.runtime.notation.Bounds) ((org.eclipse.gmf.runtime.notation.Node) view).getLayoutConstraint(); >+ final int sizeX; >+ final int sizeY; >+ if (modelElement.getPreferredSize() != null) { >+ sizeX = getMapMode().DPtoLP(modelElement.getPreferredSize().getDx()); >+ sizeY = getMapMode().DPtoLP(modelElement.getPreferredSize().getDy()); >+ } else { >+ sizeX = getMapMode().DPtoLP(20); >+ sizeY = getMapMode().DPtoLP(20); >+ } >+ final int locationX; >+ final int locationY; >+ if (modelElement.getLocation() != null) { >+ locationX = getMapMode().DPtoLP(modelElement.getLocation().getX()); >+ locationY = getMapMode().DPtoLP(modelElement.getLocation().getY()); >+ } else { >+ locationX = bounds.getX(); >+ locationY = bounds.getY(); >+ } >+ if (sizeX != bounds.getWidth() || sizeY != bounds.getHeight() || locationX != bounds.getX() || locationY != bounds.getY()) { >+ try { >+ new org.eclipse.emf.workspace.AbstractEMFOperation(getEditingDomain(), "Synchronizing view size with the model", java.util.Collections.singletonMap(org.eclipse.emf.transaction.Transaction.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >+ protected org.eclipse.core.runtime.IStatus doExecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException { >+ bounds.setX(locationX); >+ bounds.setY(locationY); >+ bounds.setWidth(sizeX); >+ bounds.setHeight(sizeY); >+ return org.eclipse.core.runtime.Status.OK_STATUS; >+ } >+ }.execute(new org.eclipse.core.runtime.NullProgressMonitor(), null); >+ } catch (org.eclipse.core.commands.ExecutionException e) { >+ «getDiagram().editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Unable to synchronize view size with the model", e); //$NON-NLS-1$ >+ } >+ } >+ addListenerFilter("BoundsListener", new org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener() { >+ public void notifyChanged(final org.eclipse.emf.common.notify.Notification notification) { >+ try { >+ new org.eclipse.emf.workspace.AbstractEMFOperation(getEditingDomain(), "Synchronizing model size with the view", java.util.Collections.singletonMap(org.eclipse.emf.transaction.Transaction.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >+ protected org.eclipse.core.runtime.IStatus doExecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException { >+ org.eclipse.gmf.runtime.notation.Bounds bounds = (org.eclipse.gmf.runtime.notation.Bounds) notification.getNotifier(); >+ org.eclipse.gmf.gmfgraph.Dimension dim = modelElement.getPreferredSize(); >+ if (dim == null) { >+ dim = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createDimension(); >+ modelElement.setPreferredSize(dim); >+ } >+ org.eclipse.gmf.gmfgraph.Point location = modelElement.getLocation(); >+ if (location == null) { >+ location = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createPoint(); >+ modelElement.setLocation(location); >+ } >+ >+ int x = getMapMode().LPtoDP(bounds.getX()); >+ int y = getMapMode().LPtoDP(bounds.getY()); >+ int width = getMapMode().LPtoDP(bounds.getWidth()); >+ int height = getMapMode().LPtoDP(bounds.getHeight()); >+ if (location.getX() != x || location.getY() != y) { >+ location.setX(x); >+ location.setY(y); >+ } >+ if (dim.getDx() != width || dim.getDy() != height) { >+ dim.setDx(width); >+ dim.setDy(height); >+ } >+ >+ myNodeFigure.setPreferredSize(bounds.getWidth(), bounds.getHeight()); >+ myNodeFigure.setLocation(new org.eclipse.draw2d.geometry.Point(bounds.getX(), bounds.getY())); >+ >+ if (modelElement.getLayoutData() instanceof org.eclipse.gmf.gmfgraph.XYLayoutData || (modelElement.getParent() != null && modelElement.getParent().getLayout() instanceof org.eclipse.gmf.gmfgraph.XYLayout)) { >+ org.eclipse.gmf.gmfgraph.XYLayoutData xyLayoutData = (org.eclipse.gmf.gmfgraph.XYLayoutData) modelElement.getLayoutData(); >+ if (xyLayoutData == null) { >+ xyLayoutData = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createXYLayoutData(); >+ modelElement.setLayoutData(xyLayoutData); >+ xyLayoutData.setTopLeft(org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createPoint()); >+ xyLayoutData.getTopLeft().setX(0); >+ xyLayoutData.getTopLeft().setY(0); >+ xyLayoutData.setSize(org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createDimension()); >+ xyLayoutData.getSize().setDx(40); >+ xyLayoutData.getSize().setDy(40); >+ } >+ org.eclipse.gmf.gmfgraph.Point topLeft; >+ if (xyLayoutData.getTopLeft() != null) { >+ topLeft = xyLayoutData.getTopLeft(); >+ } else { >+ topLeft = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createPoint(); >+ xyLayoutData.setTopLeft(topLeft); >+ } >+ if (topLeft.getX() != location.getX() || topLeft.getY() != location.getY()) { >+ topLeft.setX(location.getX()); >+ topLeft.setY(location.getY()); >+ } >+ >+ org.eclipse.gmf.gmfgraph.Dimension size; >+ if (xyLayoutData.getSize() != null) { >+ size = xyLayoutData.getSize(); >+ } else { >+ size = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createDimension(); >+ xyLayoutData.setSize(size); >+ } >+ if (size.getDx() != dim.getDx() || size.getDy() != dim.getDy()) { >+ size.setDx(dim.getDx()); >+ size.setDy(dim.getDy()); >+ } >+ } >+ return org.eclipse.core.runtime.Status.OK_STATUS; >+ } >+ }.execute(new org.eclipse.core.runtime.NullProgressMonitor(), null); >+ } catch (org.eclipse.core.commands.ExecutionException e) { >+ «getDiagram().editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Unable to synchronize model size with the view", e); //$NON-NLS-1$ >+ } >+ if (getRoot() != null) { >+ handleMajorSemanticChange(); >+ } >+ } >+ }, bounds); >+ >+ final org.eclipse.gmf.runtime.notation.ShapeStyle shapeStyle = (org.eclipse.gmf.runtime.notation.ShapeStyle) view.getStyle(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getShapeStyle()); >+ «EXPAND setViewColor("Background", "Fill")-» >+ «EXPAND setViewColor("Foreground", "Line")-» >+ addListenerFilter("ShapeStyleListener", new org.eclipse.gmf.runtime.diagram.core.listener.NotificationListener() { >+ public void notifyChanged(final org.eclipse.emf.common.notify.Notification notification) { >+ try { >+ new org.eclipse.emf.workspace.AbstractEMFOperation(getEditingDomain(), "Synchronizing model size with the view", java.util.Collections.singletonMap(org.eclipse.emf.transaction.Transaction.OPTION_UNPROTECTED, Boolean.TRUE)) { //$NON-NLS-1$ >+ protected org.eclipse.core.runtime.IStatus doExecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException { >+ org.eclipse.gmf.runtime.notation.ShapeStyle shapeStyle = (org.eclipse.gmf.runtime.notation.ShapeStyle) notification.getNotifier(); >+ switch (notification.getFeatureID(org.eclipse.gmf.runtime.notation.ShapeStyle.class)) { >+ case org.eclipse.gmf.runtime.notation.NotationPackage.SHAPE_STYLE__FILL_COLOR: >+ { >+ int color = shapeStyle.getFillColor(); >+ org.eclipse.gmf.gmfgraph.RGBColor modelColor; >+ if (modelElement.getBackgroundColor() instanceof org.eclipse.gmf.gmfgraph.RGBColor) { >+ modelColor = (org.eclipse.gmf.gmfgraph.RGBColor) modelElement.getBackgroundColor(); >+ } else { >+ modelColor = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createRGBColor(); >+ modelElement.setBackgroundColor(modelColor); >+ } >+ if (modelColor.getRed() != (color & 0x000000FF) || modelColor.getGreen() != (color & 0x0000FF00) >> 8 || modelColor.getBlue() != (color & 0x00FF0000) >> 16) { >+ modelColor.setRed(color & 0x000000FF); >+ modelColor.setGreen((color & 0x0000FF00) >> 8); >+ modelColor.setBlue((color & 0x00FF0000) >> 16); >+ } >+ break; >+ } >+ case org.eclipse.gmf.runtime.notation.NotationPackage.SHAPE_STYLE__LINE_COLOR: >+ { >+ int color = shapeStyle.getLineColor(); >+ org.eclipse.gmf.gmfgraph.RGBColor modelColor; >+ if (modelElement.getForegroundColor() instanceof org.eclipse.gmf.gmfgraph.RGBColor) { >+ modelColor = (org.eclipse.gmf.gmfgraph.RGBColor) modelElement.getForegroundColor(); >+ } else { >+ modelColor = org.eclipse.gmf.gmfgraph.GMFGraphFactory.eINSTANCE.createRGBColor(); >+ modelElement.setForegroundColor(modelColor); >+ } >+ if (modelColor.getRed() != (color & 0x000000FF) || modelColor.getGreen() != (color & 0x0000FF00) >> 8 || modelColor.getBlue() != (color & 0x00FF0000) >> 16) { >+ modelColor.setRed(color & 0x000000FF); >+ modelColor.setGreen((color & 0x0000FF00) >> 8); >+ modelColor.setBlue((color & 0x00FF0000) >> 16); >+ } >+ break; >+ } >+ } >+ return org.eclipse.core.runtime.Status.OK_STATUS; >+ } >+ }.execute(new org.eclipse.core.runtime.NullProgressMonitor(), null); >+ } catch (org.eclipse.core.commands.ExecutionException e) { >+ «getDiagram().editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Unable to synchronize model size with the view", e); //$NON-NLS-1$ >+ } >+ } >+ }, shapeStyle); >+ super.activate(); >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected org.eclipse.draw2d.LayoutManager getFigureLayoutManager() { >+ return myFigure.getLayoutManager(); >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected void setFigureLayoutManager(org.eclipse.draw2d.LayoutManager layoutManager) { >+ myFigure.setLayoutManager(layoutManager); >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected void refreshBounds() { >+ if (((org.eclipse.gmf.runtime.notation.View) getParent().getModel()).getElement() instanceof org.eclipse.gmf.gmfgraph.FigureMarker) { >+ int width = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Width())).intValue(); >+ int height = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Height())).intValue(); >+ myNodeFigure.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(width, height)); >+ } else { >+ super.refreshBounds(); >+ } >+ } >+«ENDDEFINE» >+ >+«DEFINE overrideGetCurrentConstraintFor(gmfgen::Viewmap innerViewmap) FOR gmfgen::GenNode-»«ENDDEFINE» >+ >+«DEFINE overrideGetCurrentConstraintFor(gmfgen::InnerClassViewmap innerViewmap) FOR gmfgen::GenNode-» >+ >+protected org.eclipse.draw2d.geometry.Rectangle getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart child) { >+ org.eclipse.draw2d.geometry.Rectangle result = super.getCurrentConstraintFor(child); >+ if (result == null) { >+ org.eclipse.draw2d.IFigure fig = child.getFigure(); >+ result = fig.getBounds().getCopy(); >+ } >+ return result; >+} >+«ENDDEFINE» >+ >+«DEFINE overrideGetLayoutOrigin(gmfgen::Viewmap innerViewmap) FOR gmfgen::GenNode-»«ENDDEFINE» >+ >+«DEFINE overrideGetLayoutOrigin(gmfgen::InnerClassViewmap innerViewmap) FOR gmfgen::GenNode-» >+ >+protected org.eclipse.draw2d.geometry.Point getLayoutOrigin() { >+ return ((org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart)getHost()).getContentPane().getClientArea().getLocation(); >+} >+«ENDDEFINE» >+ >+«AROUND createLayoutEditPolicyMethodBody FOR gmfgen::GenNode-» >+«IF generateSyncronizationCode(metaclass())-» >+ «IF gmfgen::ViewmapLayoutType::XY_LAYOUT.value == getLayoutType().value-» >+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy lep = >+ new org.eclipse.gmf.runtime.diagram.ui.editpolicies.XYLayoutEditPolicy() { >+ >+ protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) { >+ «IF hasBorderItems()-» >+ if (child instanceof org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart) { >+ return new org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy(); >+ } >+ «ENDIF-» >+ org.eclipse.gef.EditPolicy result = super.createChildEditPolicy(child); >+ if (result == null) { >+ return new org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableShapeEditPolicy(); >+ } >+ return result; >+ } >+ «EXPAND overrideGetLayoutOrigin(viewmap)-» >+ «EXPAND overrideGetCurrentConstraintFor(viewmap)-» >+ >+ }; >+ return lep; >+ «ELSEIF gmfgen::ViewmapLayoutType::TOOLBAR_LAYOUT.value == getLayoutType().value» >+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy lep = >+ new org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConstrainedToolbarLayoutEditPolicy() { >+ >+ protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) { >+ «IF hasBorderItems()-» >+ if (child instanceof org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart) { >+ return new org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy(); >+ } >+ «ENDIF-» >+ if (child.getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE) == null) { >+ if (child instanceof org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart) { >+ return new «getDiagram().getTextSelectionEditPolicyQualifiedClassName()»(); >+ } >+ } >+ return super.createChildEditPolicy(child); >+ } >+ «EXPAND overrideGetLayoutOrigin(this.viewmap)-» >+ >+ }; >+ return lep; >+ «ELSE-» >+ «targetDef.proceed()» >+ «ENDIF-» >+«ELSE» >+«targetDef.proceed()» >+«ENDIF-» >+«ENDAROUND» >+ >+«AROUND createNodeShape(gmfgen::GenNode node) FOR gmfgen::InnerClassViewmap» >+«IF generateSyncronizationCode(node.metaclass()) && isInnerClassViewmap(node.viewmap)» >+ «EXPAND xpt::Common::generatedMemberComment» >+ protected org.eclipse.draw2d.IFigure createNodeShape() { >+ «className» figure = new «className»(); >+ «IF node.childNodes.size() > 0 && node.getLayoutType().value == gmfgen::ViewmapLayoutType::XY_LAYOUT.value-» >+ figure.setUseLocalCoordinates(true); >+ «ENDIF-» >+ «EXPAND processChanges(node)-» >+ return primaryShape = figure; >+ } >+ >+ «EXPAND xpt::Common::generatedMemberComment» >+ public «className» getPrimaryShape() { >+ return («className») primaryShape; >+ } >+«ELSE» >+«targetDef.proceed()» >+«ENDIF» >+«ENDAROUND» >+ >+«DEFINE processChanges(gmfgen::GenNode node) FOR gmfgen::InnerClassViewmap-» >+ myFigure = figure; >+ «node.metaclass().getQualifiedInterfaceName()» modelElement = («node.metaclass().getQualifiedInterfaceName()») ((org.eclipse.gmf.runtime.notation.View) getModel()).getElement(); >+ if (modelElement != null) { >+ «FOREACH node.metaclass().getAllGenFeatures() AS nextGenFeature-» >+ «IF !skip(nextGenFeature)-» >+ { >+ «getProcessChangesCall(nextGenFeature, "modelElement")»; >+ } >+ «ENDIF-» >+ «ENDFOREACH-» >+ } >+«ENDDEFINE» >+ >+«AROUND setupNodePlate FOR gmfgen::GenNode-» >+«IF generateSyncronizationCode(metaclass()) && isInnerClassViewmap(viewmap)»myNodeFigure = result;«ELSE»«targetDef.proceed()»«ENDIF-» >+«ENDAROUND» >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 173496
: 58577 |
58578