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 42545 Details for
Bug 143666
Runtime error if compartment is added into the content pane with layout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Changes RT tests to support compartments
patch_constraint_toolbar_layout___rt_test_for_compartments.txt (text/plain), 37.43 KB, created by
Michael Golubev
on 2006-05-25 03:18:11 EDT
(
hide
)
Description:
Changes RT tests to support compartments
Filename:
MIME Type:
Creator:
Michael Golubev
Created:
2006-05-25 03:18:11 EDT
Size:
37.43 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.tests >Index: src/org/eclipse/gmf/tests/gen/CodegenReconcileTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gen/CodegenReconcileTest.java,v >retrieving revision 1.6 >diff -u -r1.6 CodegenReconcileTest.java >--- src/org/eclipse/gmf/tests/gen/CodegenReconcileTest.java 17 May 2006 12:39:00 -0000 1.6 >+++ src/org/eclipse/gmf/tests/gen/CodegenReconcileTest.java 25 May 2006 05:46:48 -0000 >@@ -18,10 +18,7 @@ > import org.eclipse.emf.common.util.EList; > import org.eclipse.emf.ecore.EAttribute; > import org.eclipse.emf.ecore.EClass; >-import org.eclipse.emf.ecore.EReference; > import org.eclipse.emf.ecore.EStructuralFeature; >-import org.eclipse.emf.ecore.ETypedElement; >-import org.eclipse.emf.ecore.EcoreFactory; > import org.eclipse.emf.ecore.EcorePackage; > import org.eclipse.emf.ecore.util.EcoreUtil; > import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; >@@ -30,32 +27,17 @@ > import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; > import org.eclipse.gmf.codegen.gmfgen.GenNode; > import org.eclipse.gmf.codegen.gmfgen.GenPlugin; >-import org.eclipse.gmf.gmfgraph.Canvas; >-import org.eclipse.gmf.gmfgraph.Compartment; >-import org.eclipse.gmf.gmfgraph.Connection; >-import org.eclipse.gmf.gmfgraph.Figure; >-import org.eclipse.gmf.gmfgraph.FigureGallery; >-import org.eclipse.gmf.gmfgraph.GMFGraphFactory; >-import org.eclipse.gmf.gmfgraph.Node; > import org.eclipse.gmf.internal.codegen.GMFGenConfig; > import org.eclipse.gmf.internal.common.reconcile.DefaultDecisionMaker; > import org.eclipse.gmf.internal.common.reconcile.Reconciler; > import org.eclipse.gmf.internal.common.reconcile.ReconcilerConfigBase; >-import org.eclipse.gmf.mappings.ChildReference; >-import org.eclipse.gmf.mappings.CompartmentMapping; >-import org.eclipse.gmf.mappings.GMFMapFactory; >-import org.eclipse.gmf.mappings.NodeMapping; > import org.eclipse.gmf.tests.ConfiguredTestCase; >+import org.eclipse.gmf.tests.setup.CompartmentsSessionSetup; > import org.eclipse.gmf.tests.setup.DiaDefSetup; >-import org.eclipse.gmf.tests.setup.DiaDefSource; > import org.eclipse.gmf.tests.setup.DiaGenSetup; >-import org.eclipse.gmf.tests.setup.DomainModelSetup; >-import org.eclipse.gmf.tests.setup.DomainModelSource; > import org.eclipse.gmf.tests.setup.MapDefSource; > import org.eclipse.gmf.tests.setup.MapSetup; > import org.eclipse.gmf.tests.setup.ToolDefSetup; >-import org.eclipse.gmf.tests.setup.ToolDefSource; >-import org.eclipse.gmf.tests.setup.DomainModelSource.NodeData; > > public class CodegenReconcileTest extends ConfiguredTestCase { > >@@ -67,7 +49,7 @@ > > protected void setUp() throws Exception { > super.setUp(); >- MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup(null).init(), getSetup().getDomainModel(), new ToolDefSetup()); >+ MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup().init(), getSetup().getDomainModel(), new ToolDefSetup()); > DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); > myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); > } >@@ -140,105 +122,8 @@ > > checkUserChange(new GenPluginChange()); > } >- >- >- public void testReconcileCompartmentIsListlayout(){ >- class ConfigWithCompartments implements DiaDefSetup.Config { >- public void setupCanvasDef(Canvas canvasDef) { >- FigureGallery oneMoreGallery = GMFGraphFactory.eINSTANCE.createFigureGallery(); >- canvasDef.getFigures().add(oneMoreGallery); >- Figure compartmentFigure = GMFGraphFactory.eINSTANCE.createRectangle(); >- oneMoreGallery.getFigures().add(compartmentFigure); >- Compartment compartment = createCompartment(compartmentFigure, "CompartmentA", true, true); >- canvasDef.getCompartments().add(compartment); >- } >- >- public void setupLinkDef(Connection linkDef) { >- // >- } >- >- public void setupNodeDef(Node nodeDef) { >- // >- } >- >- private Compartment createCompartment(Figure figure, String name, boolean collapsible, boolean needsTitle){ >- Compartment result = GMFGraphFactory.eINSTANCE.createCompartment(); >- result.setCollapsible(true); >- result.setFigure(figure); >- result.setName(name); >- result.setNeedsTitle(needsTitle); >- return result; >- } >- } >- >- class DiaDefSetupWithCompartments extends DiaDefSetup { >- public DiaDefSetupWithCompartments(){ >- super(new ConfigWithCompartments()); >- } >- >- public Compartment getCompartment(){ >- return (Compartment)getCanvasDef().getCompartments().get(0); >- } >- } >- >- class DomainSetupWithChildren extends DomainModelSetup { >- private NodeData myChildOfA; >- >- public DomainModelSetup init() { >- DomainModelSetup result = super.init(); >- >- EClass childClass = EcoreFactory.eINSTANCE.createEClass(); >- childClass.setName("ChildOfA"); >- EAttribute childLabel = EcoreFactory.eINSTANCE.createEAttribute(); >- childLabel.setName("childLabel"); >- childLabel.setEType(EcorePackage.eINSTANCE.getEString()); >- childClass.getEStructuralFeatures().add(childLabel); >- result.getModel().getEClassifiers().add(childClass); >- >- EReference containment = EcoreFactory.eINSTANCE.createEReference(); >- containment.setContainment(true); >- containment.setName("childrenOfA"); >- containment.setEType(childClass); >- containment.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY); >- result.getNodeA().getEClass().getEStructuralFeatures().add(containment); >- >- myChildOfA = new NodeData(childClass, childLabel, containment); >- return result; >- } >- >- public NodeData getChildOfA() { >- return myChildOfA; >- } >- } >- >- class MapSetupWithCompartments extends MapSetup { >- public MapSetup init(DiaDefSource ddSource, DomainModelSource domainSource, ToolDefSource toolDef) { >- Assert.assertTrue(domainSource instanceof DomainSetupWithChildren); >- Assert.assertTrue(ddSource instanceof DiaDefSetupWithCompartments); >- >- DomainSetupWithChildren domainWithChildren = (DomainSetupWithChildren)domainSource; >- DiaDefSetupWithCompartments diaDefSetupWithCompartments = (DiaDefSetupWithCompartments)ddSource; >- Assert.assertNotNull(diaDefSetupWithCompartments.getCompartment()); >- >- MapSetup result = super.init(ddSource, domainSource, toolDef); >- >- NodeData childOfAData = domainWithChildren.getChildOfA(); >- NodeMapping childOfAMapping = createNodeMapping(ddSource.getNodeDef(), childOfAData.getEClass(), ddSource.getLabelDef(), childOfAData.getNameAttr(), childOfAData.getContainment(), false); >- >- ChildReference childOfAReference = GMFMapFactory.eINSTANCE.createChildReference(); >- childOfAReference.setOwnedChild(childOfAMapping); >- childOfAReference.setChildrenFeature(childOfAData.getContainment()); >- result.getNodeA().getChildren().add(childOfAReference); >- >- CompartmentMapping childOfACompartment = GMFMapFactory.eINSTANCE.createCompartmentMapping(); >- childOfACompartment.setCompartment(diaDefSetupWithCompartments.getCompartment()); >- childOfACompartment.getChildren().add(childOfAReference); >- result.getNodeA().getCompartments().add(childOfACompartment); >- >- return result; >- } >- } > >+ public void testReconcileCompartmentIsListlayout(){ > class CompartmentChange extends Assert implements UserChange { > private int myCompartmentsTotalCount; > private final EStructuralFeature myGenCompartmentFeature; >@@ -294,13 +179,7 @@ > } > } > >- DiaDefSetupWithCompartments ddSource = new DiaDefSetupWithCompartments(); >- DomainSetupWithChildren domainSetup = new DomainSetupWithChildren(); >- MapSetupWithCompartments mapDefSource = new MapSetupWithCompartments(); >- mapDefSource.init(ddSource.init(), domainSetup.init(), new ToolDefSetup()); >- >- assertFalse(mapDefSource.getNodeA().getCompartments().isEmpty()); >- >+ MapDefSource mapDefSource = CompartmentsSessionSetup.newInstance().getMapModel(); > DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); > myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); > >@@ -320,7 +199,7 @@ > } > > public void testReconcileGenNodes() throws Exception { >- MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup(null).init(), getSetup().getDomainModel(), new ToolDefSetup()); >+ MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup().init(), getSetup().getDomainModel(), new ToolDefSetup()); > DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); > myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); > >Index: src/org/eclipse/gmf/tests/gen/CompilationTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gen/CompilationTest.java,v >retrieving revision 1.13 >diff -u -r1.13 CompilationTest.java >--- src/org/eclipse/gmf/tests/gen/CompilationTest.java 24 May 2006 18:05:31 -0000 1.13 >+++ src/org/eclipse/gmf/tests/gen/CompilationTest.java 25 May 2006 05:46:48 -0000 >@@ -70,7 +70,7 @@ > domainModel.getNodeA().getNameAttr().setName("attribute"); > domainModel.getNodeB().getNameAttr().setName("class"); > domainModel.getDiagramElement().setName("Diagram"); >- MapDefSource mapSource = new MapSetup().init(new DiaDefSetup(null).init(), domainModel, new ToolDefSetup()); >+ MapDefSource mapSource = new MapSetup().init(new DiaDefSetup().init(), domainModel, new ToolDefSetup()); > DiaGenSource gmfGenSource = new DiaGenSetup().init(mapSource); > generateAndCompile(gmfGenSource); > } >@@ -83,7 +83,7 @@ > > public void testCompileMultiPackageDomain() throws Exception { > DomainModelSource ds = new MultiplePackagesDomainModelSetup().init(); >- MapDefSource ms = new MapSetup().init(new DiaDefSetup(null).init(), ds, new ToolDefSetup()); >+ MapDefSource ms = new MapSetup().init(new DiaDefSetup().init(), ds, new ToolDefSetup()); > > final HashSet additionalPacks = new HashSet(8); > additionalPacks.add(ds.getNodeA().getEClass().getEPackage()); >Index: src/org/eclipse/gmf/tests/gef/DiagramNodeTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gef/DiagramNodeTest.java,v >retrieving revision 1.12 >diff -u -r1.12 DiagramNodeTest.java >--- src/org/eclipse/gmf/tests/gef/DiagramNodeTest.java 22 May 2006 18:14:12 -0000 1.12 >+++ src/org/eclipse/gmf/tests/gef/DiagramNodeTest.java 25 May 2006 05:46:48 -0000 >@@ -18,15 +18,20 @@ > import org.eclipse.gef.RequestConstants; > import org.eclipse.gef.commands.Command; > import org.eclipse.gef.requests.ChangeBoundsRequest; >+import org.eclipse.gmf.codegen.gmfgen.GenCompartment; > import org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities; > import org.eclipse.gmf.runtime.notation.FillStyle; > import org.eclipse.gmf.runtime.notation.LineStyle; > import org.eclipse.gmf.runtime.notation.Location; > import org.eclipse.gmf.runtime.notation.Node; >+import org.eclipse.gmf.runtime.notation.NotationFactory; > import org.eclipse.gmf.runtime.notation.NotationPackage; > import org.eclipse.gmf.runtime.notation.Size; > import org.eclipse.gmf.runtime.notation.View; > import org.eclipse.gmf.tests.rt.GeneratedCanvasTest; >+import org.eclipse.gmf.tests.setup.DiaGenSource; >+import org.eclipse.gmf.tests.setup.RTSetup; >+import org.eclipse.gmf.tests.setup.RTSource; > import org.eclipse.swt.graphics.RGB; > > public class DiagramNodeTest extends GeneratedCanvasTest { >@@ -42,13 +47,27 @@ > protected EditPart getNodeEditPart() { > return myNodeEditPart; > } >- >+ > // TODO EditPartViewer[Source|Setup] > protected void setUp() throws Exception { > super.setUp(); > myNodeEditPart = findEditPart(getCanvasInstance().getNode()); > } >- >+ >+ protected RTSource createCanvasInstance() throws Exception { >+ class RTSetupExt extends RTSetup { >+ protected void initDiagramFileContents(DomainInstanceProducer instanceProducer, DiaGenSource genSource) { >+ super.initDiagramFileContents(instanceProducer, genSource); >+ Node compartment = NotationFactory.eINSTANCE.createNode(); >+ GenCompartment genCompartment = (GenCompartment) getSetup().getGenModel().getNodeA().getCompartments().get(0); >+ compartment.setType(String.valueOf(genCompartment.getVisualID())); >+ getNode().getTransientChildren().add(compartment); >+ assertTrue(getNode().getChildren().contains(compartment)); >+ } >+ } >+ return new RTSetupExt().init(getSetup().getGenProject().getBundle(), getSetup().getGenModel()); >+ } >+ > public void testChangeBounds() { > final Point originalLocation = getLocation(); > final Dimension originalSize = getSize(); >Index: src/org/eclipse/gmf/tests/setup/TestSetupTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/TestSetupTest.java,v >retrieving revision 1.19 >diff -u -r1.19 TestSetupTest.java >--- src/org/eclipse/gmf/tests/setup/TestSetupTest.java 22 May 2006 17:51:32 -0000 1.19 >+++ src/org/eclipse/gmf/tests/setup/TestSetupTest.java 25 May 2006 05:46:49 -0000 >@@ -71,7 +71,7 @@ > } > > public void testDiaDefSetupNoConfig() { >- DiaDefSource s = new DiaDefSetup(null).init(); >+ DiaDefSource s = new DiaDefSetup().init(); > doDiaDefTests(s); > } > >@@ -79,7 +79,7 @@ > final boolean[] setupCanvasDef = {false}; > final boolean[] setupLinkDef = {false}; > final boolean[] setupNodeDef = {false}; >- DiaDefSource s = new DiaDefSetup(new DiaDefSetup.Config() { >+ DiaDefSource s = new DiaDefSetup() { > public void setupCanvasDef(Canvas canvasDef) { > setupCanvasDef[0] = true; > } >@@ -89,7 +89,7 @@ > public void setupNodeDef(Node nodeDef) { > setupNodeDef[0] = true; > } >- }).init(); >+ }.init(); > assertTrue("DiaDefGenerateSetup.Config.setupNodeDef()", setupNodeDef[0]); > assertTrue("DiaDefGenerateSetup.Config.setupLinkDef()", setupLinkDef[0]); > assertTrue("DiaDefGenerateSetup.Config.setupCanvasDef()", setupCanvasDef[0]); >@@ -141,7 +141,7 @@ > > public void testDiaGenSetupMap() { > DomainModelSource ds = new DomainModelSetup().init(); >- MapDefSource ms = new MapSetup().init(new DiaDefSetup(null).init(), ds, new ToolDefSetup()); >+ MapDefSource ms = new MapSetup().init(new DiaDefSetup().init(), ds, new ToolDefSetup()); > doDiaGenTests(new DiaGenSetup().init(ms)); > } > >Index: src/org/eclipse/gmf/tests/setup/SessionSetup.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/SessionSetup.java,v >retrieving revision 1.10 >diff -u -r1.10 SessionSetup.java >--- src/org/eclipse/gmf/tests/setup/SessionSetup.java 17 May 2006 10:37:24 -0000 1.10 >+++ src/org/eclipse/gmf/tests/setup/SessionSetup.java 25 May 2006 05:46:49 -0000 >@@ -115,7 +115,7 @@ > } > > protected DiaDefSource createGraphDefModel() { >- return new DiaDefSetup(null); >+ return new DiaDefSetup(); > } > > public static RuntimeWorkspaceSetup getRuntimeWorkspaceSetup() throws Exception { >Index: src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java,v >retrieving revision 1.10 >diff -u -r1.10 GenProjectBaseSetup.java >--- src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java 18 May 2006 19:12:43 -0000 1.10 >+++ src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java 25 May 2006 05:46:49 -0000 >@@ -92,7 +92,7 @@ > Plugin.getInstance().getLog().log(generatorStatus); > } > if (generatorStatus.getSeverity() == IStatus.ERROR) { >- Assert.fail("GMF editor generation produced errors:" + generatorStatus.getMessage()); //$NON-NLS-1$ >+ Assert.fail("GMF editor generation produced errors:" + generatorStatus.toString()); //$NON-NLS-1$ > } > } > } >Index: src/org/eclipse/gmf/tests/setup/LinksSessionSetup.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/LinksSessionSetup.java,v >retrieving revision 1.15 >diff -u -r1.15 LinksSessionSetup.java >--- src/org/eclipse/gmf/tests/setup/LinksSessionSetup.java 24 May 2006 16:22:41 -0000 1.15 >+++ src/org/eclipse/gmf/tests/setup/LinksSessionSetup.java 25 May 2006 05:46:49 -0000 >@@ -95,7 +95,7 @@ > > protected MapDefSource createMapModel() { > MapSetup mapDefSource = new LinksMapSetup(); >- return mapDefSource.init(new DiaDefSetup(null).init(), getDomainModel(), new ToolDefSetup()); >+ return mapDefSource.init(new DiaDefSetup().init(), getDomainModel(), new ToolDefSetup()); > } > > /* >Index: src/org/eclipse/gmf/tests/setup/DiaDefSetup.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/DiaDefSetup.java,v >retrieving revision 1.5 >diff -u -r1.5 DiaDefSetup.java >--- src/org/eclipse/gmf/tests/setup/DiaDefSetup.java 23 May 2006 21:09:48 -0000 1.5 >+++ src/org/eclipse/gmf/tests/setup/DiaDefSetup.java 25 May 2006 05:46:48 -0000 >@@ -21,22 +21,18 @@ > import org.eclipse.gmf.gmfgraph.Label; > import org.eclipse.gmf.gmfgraph.Node; > >+/** >+ * This class is intended to be subclassed >+ * It is allowed to override setup* methods to tweak setup for managed gmfgraph instances. >+ */ > public class DiaDefSetup implements DiaDefSource { > private Canvas myCanvasDef; > private Node myNodeDef; > private Connection myLinkDef; >- private final Config myConfig; > private FigureGallery myFigureContainer; > private DiagramLabel myLabelDef; > > /** >- * @param config could be <code>null</code> >- */ >- public DiaDefSetup(Config config) { >- myConfig = config; >- } >- >- /** > * @return <code>this</code> for convenience > */ > public final DiaDefSetup init() { >@@ -50,10 +46,17 @@ > myCanvasDef.getNodes().add(myNodeDef); > myCanvasDef.getConnections().add(myLinkDef); > myCanvasDef.getLabels().add(myLabelDef); >+ >+ commonSetupCanvasDef(myCanvasDef); >+ commonSetupNodeDef(myNodeDef); >+ commonSetupLinkDef(myLinkDef); >+ commonSetupLabelDef(myLabelDef); >+ > setupCanvasDef(myCanvasDef); > setupNodeDef(myNodeDef); > setupLinkDef(myLinkDef); > setupLabelDef(myLabelDef); >+ > confineInResource(); > return this; > } >@@ -62,33 +65,25 @@ > new ResourceImpl(URI.createURI("uri://org.eclipse.gmf/tests/GMFGraphSetup")).getContents().add(myCanvasDef); > } > >- protected void setupCanvasDef(Canvas canvasDef) { >+ private void commonSetupCanvasDef(Canvas canvasDef) { > canvasDef.setName("Test-dd-canvas"); >- if (myConfig != null) { >- myConfig.setupCanvasDef(canvasDef); >- } > } > >- protected void setupNodeDef(Node nodeDef) { >+ private void commonSetupNodeDef(Node nodeDef) { > nodeDef.setName("Test-dd-node"); > nodeDef.setFigure(GMFGraphFactory.eINSTANCE.createRoundedRectangle()); > nodeDef.getNodeFigure().setName("nf1"); > myFigureContainer.getFigures().add(nodeDef.getFigure()); >- if (myConfig != null) { >- myConfig.setupNodeDef(nodeDef); >- } > } > >- protected void setupLinkDef(Connection linkDef) { >+ private void commonSetupLinkDef(Connection linkDef) { > linkDef.setName("Test-dd-link"); > linkDef.setFigure(GMFGraphFactory.eINSTANCE.createPolylineConnection()); > linkDef.getConnectionFigure().setName("lf1"); > myFigureContainer.getFigures().add(linkDef.getFigure()); >- if (myConfig != null) { >- myConfig.setupLinkDef(linkDef); >- } > } >- protected void setupLabelDef(DiagramLabel labelDef) { >+ >+ private void commonSetupLabelDef(DiagramLabel labelDef) { > labelDef.setName("TestLabel"); > Label figure; > labelDef.setFigure(figure = GMFGraphFactory.eINSTANCE.createLabel()); >@@ -96,6 +91,22 @@ > myFigureContainer.getFigures().add(labelDef.getFigure()); > } > >+ protected void setupCanvasDef(Canvas canvasDef) { >+ //hook for subclasses >+ } >+ >+ protected void setupNodeDef(Node nodeDef) { >+ //hook for subclasses >+ } >+ >+ protected void setupLinkDef(Connection linkDef) { >+ //hook for subclasses >+ } >+ >+ protected void setupLabelDef(DiagramLabel labelDef) { >+ //hook for subclasses >+ } >+ > public final Canvas getCanvasDef() { > return myCanvasDef; > } >@@ -116,9 +127,4 @@ > return myFigureContainer; > } > >- public interface Config { >- void setupCanvasDef(Canvas canvasDef); >- void setupNodeDef(Node nodeDef); >- void setupLinkDef(Connection linkDef); >- } > } >Index: src/org/eclipse/gmf/tests/setup/RTSetup.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/RTSetup.java,v >retrieving revision 1.21 >diff -u -r1.21 RTSetup.java >--- src/org/eclipse/gmf/tests/setup/RTSetup.java 13 Apr 2006 22:22:27 -0000 1.21 >+++ src/org/eclipse/gmf/tests/setup/RTSetup.java 25 May 2006 05:46:49 -0000 >@@ -55,33 +55,39 @@ > private Diagram myCanvas; > private Node myNode; > private Edge myLink; >+ >+ private EObject myDiagramElement; > > public RTSetup() { > } > > public final RTSetup init(Bundle b, DiaGenSource genSource) { >- return init(new CoolDomainInstanceProducer(b), genSource); >+ initDiagramFileContents(new CoolDomainInstanceProducer(b), genSource); >+ saveDiagramFile(); >+ return this; > } > > public final RTSetup init(DiaGenSource genSource) { >- return init(new NaiveDomainInstanceProducer(), genSource); >+ initDiagramFileContents(new NaiveDomainInstanceProducer(), genSource); >+ saveDiagramFile(); >+ return this; > } > > /** > * @return <code>this</code> for convenience > */ >- public final RTSetup init(DomainInstanceProducer instanceProducer, DiaGenSource genSource) { >+ protected void initDiagramFileContents(DomainInstanceProducer instanceProducer, DiaGenSource genSource) { > myCanvas = NotationFactory.eINSTANCE.createDiagram(); > myNode = NotationFactory.eINSTANCE.createNode(); > myLink = NotationFactory.eINSTANCE.createEdge(); > myCanvas.getPersistedChildren().add(myNode); > myCanvas.getPersistedEdges().add(myLink); > >- final EObject diagramElement = instanceProducer.createInstance(genSource.getGenDiagram().getDomainDiagramElement()); >- myCanvas.setElement(diagramElement); >+ myDiagramElement = instanceProducer.createInstance(genSource.getGenDiagram().getDomainDiagramElement()); >+ myCanvas.setElement(myDiagramElement); > myCanvas.setType(genSource.getGenDiagram().getEditorGen().getModelID()); > EObject nodeElement = instanceProducer.createInstance(genSource.getNodeA().getDomainMetaClass()); >- instanceProducer.setFeatureValue(diagramElement, nodeElement, genSource.getNodeA().getModelFacet().getContainmentMetaFeature()); >+ instanceProducer.setFeatureValue(myDiagramElement, nodeElement, genSource.getNodeA().getModelFacet().getContainmentMetaFeature()); > myNode.setElement(nodeElement); > myNode.setType(String.valueOf(genSource.getNodeA().getVisualID())); > //myNode.setVisualID(genSource.getGenNode().getVisualID()); >@@ -110,6 +116,9 @@ > nodeElement.eSet(genSource.getGenLink().getContainmentMetaFeature().getEcoreFeature(), linkElement); > } > */ >+ } >+ >+ private void saveDiagramFile(){ > TransactionalEditingDomain ted = DiagramEditingDomainFactory.getInstance().createEditingDomain(); > ResourceSet rs = ted.getResourceSet(); > URI uri = URI.createURI("uri://fake/z"); //$NON-NLS-1$ >@@ -123,7 +132,7 @@ > protected IStatus doExecute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { > diagramFile.getContents().clear(); > diagramFile.getContents().add(getCanvas()); >- diagramFile.getContents().add(diagramElement); >+ diagramFile.getContents().add(getDiagramElement()); > return Status.OK_STATUS; > }; > }; >@@ -134,8 +143,6 @@ > e.printStackTrace(); > Assert.fail("Failed to set diagram resource contents"); //$NON-NLS-1$ > } >- >- return this; > } > > public final Diagram getCanvas() { >@@ -149,11 +156,16 @@ > public Edge getLink() { > return myLink; > } >+ >+ protected EObject getDiagramElement(){ >+ return myDiagramElement; >+ } > >- private interface DomainInstanceProducer { >+ protected interface DomainInstanceProducer { > EObject createInstance(GenClass genClass); > void setFeatureValue(EObject src, EObject value, GenFeature genFeature); >- }; >+ } >+ > private static class NaiveDomainInstanceProducer implements DomainInstanceProducer { > public EObject createInstance(GenClass genClass) { > return createInstance(genClass.getEcoreClass()); >Index: src/org/eclipse/gmf/tests/tr/RunTimeModelTransformerTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/tr/RunTimeModelTransformerTest.java,v >retrieving revision 1.3 >diff -u -r1.3 RunTimeModelTransformerTest.java >--- src/org/eclipse/gmf/tests/tr/RunTimeModelTransformerTest.java 6 Dec 2005 22:24:50 -0000 1.3 >+++ src/org/eclipse/gmf/tests/tr/RunTimeModelTransformerTest.java 25 May 2006 05:46:49 -0000 >@@ -21,11 +21,26 @@ > import org.eclipse.gmf.bridge.genmodel.DiagramRunTimeModelTransformer; > import org.eclipse.gmf.gmfgraph.Node; > import org.eclipse.gmf.runtime.notation.NotationPackage; >+import org.eclipse.gmf.tests.setup.DiaDefSetup; > > public class RunTimeModelTransformerTest extends AbstractMappingTransformerTest { > public RunTimeModelTransformerTest(String name) { > super(name); > } >+ >+ protected DiaDefSetup createDiaDefSetup() { >+ return new DiaDefSetup(){ >+ protected void setupNodeDef(Node nodeDef) { >+ super.setupNodeDef(nodeDef); >+// RunTimeProperty rtp = DiagramDefinitionFactory.eINSTANCE.createRunTimeProperty(); >+// rtp.setName("someProp"); >+// nodeDef.getProperties().add(rtp); >+// rtp = DiagramDefinitionFactory.eINSTANCE.createRunTimeProperty(); >+// rtp.setName("prop1"); >+// nodeDef.getProperties().add(rtp); >+ } >+ }; >+ } > > public void testRunTimeModelTransform() { > DiagramRunTimeModelTransformer drtModelTransformer = new DiagramRunTimeModelTransformer("pack11", "uri://eclipse/gmf/tests"); >@@ -47,16 +62,6 @@ > assertTrue("rt model class for link definition should extend appropiate class from basic RT model", checkSuperclass(c, NotationPackage.eINSTANCE.getEdge())); > } > >- public void setupNodeDef(Node nodeDef) { >- super.setupNodeDef(nodeDef); >-// RunTimeProperty rtp = DiagramDefinitionFactory.eINSTANCE.createRunTimeProperty(); >-// rtp.setName("someProp"); >-// nodeDef.getProperties().add(rtp); >-// rtp = DiagramDefinitionFactory.eINSTANCE.createRunTimeProperty(); >-// rtp.setName("prop1"); >-// nodeDef.getProperties().add(rtp); >- } >- > private void doTestRunTimeModelPropertiesTransform(EClass nodeRTClass) { > EStructuralFeature sf = nodeRTClass.getEStructuralFeature("prop1"); > assertNotNull("There should be 'prop1' structural feature in generated diagramNode EClass", sf); >Index: src/org/eclipse/gmf/tests/tr/AbstractMappingTransformerTest.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/tr/AbstractMappingTransformerTest.java,v >retrieving revision 1.8 >diff -u -r1.8 AbstractMappingTransformerTest.java >--- src/org/eclipse/gmf/tests/tr/AbstractMappingTransformerTest.java 14 May 2006 16:22:37 -0000 1.8 >+++ src/org/eclipse/gmf/tests/tr/AbstractMappingTransformerTest.java 25 May 2006 05:46:49 -0000 >@@ -25,7 +25,7 @@ > import org.eclipse.gmf.tests.setup.MapSetup; > import org.eclipse.gmf.tests.setup.ToolDefSetup; > >-public abstract class AbstractMappingTransformerTest extends ConfiguredTestCase implements DiaDefSetup.Config { >+public abstract class AbstractMappingTransformerTest extends ConfiguredTestCase { > private MapDefSource myMapDef; > private DiaDefSetup myDiaDef; > >@@ -35,10 +35,15 @@ > > protected void setUp() throws Exception { > super.setUp(); >- myDiaDef = new DiaDefSetup(this); >+ myDiaDef = createDiaDefSetup(); > myDiaDef.init(); > myMapDef = initMapModel(myDiaDef); > } >+ >+ protected DiaDefSetup createDiaDefSetup(){ >+ return new DiaDefSetup(); >+ } >+ > protected MapDefSource initMapModel(DiaDefSource graphDef) { > return new MapSetup().init(graphDef, getSetup().getDomainModel(), new ToolDefSetup()); > } >@@ -71,15 +76,4 @@ > return myMapDef.getClassLink(); > } > >- // no-op >- public void setupCanvasDef(Canvas canvasDef) { >- } >- >- // no-op >- public void setupLinkDef(Connection linkDef) { >- } >- >- // no-op >- public void setupNodeDef(Node nodeDef) { >- } > } >Index: src/org/eclipse/gmf/tests/AllTests.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/AllTests.java,v >retrieving revision 1.45 >diff -u -r1.45 AllTests.java >--- src/org/eclipse/gmf/tests/AllTests.java 22 May 2006 18:14:12 -0000 1.45 >+++ src/org/eclipse/gmf/tests/AllTests.java 25 May 2006 05:46:48 -0000 >@@ -39,6 +39,7 @@ > import org.eclipse.gmf.tests.rt.ElementInitializerTest; > import org.eclipse.gmf.tests.rt.LinkCreationConstraintsTest; > import org.eclipse.gmf.tests.rt.MetricRulesTest; >+import org.eclipse.gmf.tests.setup.CompartmentsSessionSetup; > import org.eclipse.gmf.tests.setup.LinksSessionSetup; > import org.eclipse.gmf.tests.setup.SessionSetup; > import org.eclipse.gmf.tests.setup.TestSetupTest; >@@ -58,6 +59,7 @@ > > final SessionSetup sessionSetup = SessionSetup.newInstance(); > final LinksSessionSetup sessionSetup2 = (LinksSessionSetup) LinksSessionSetup.newInstance(); >+ final SessionSetup compartmentsSession = CompartmentsSessionSetup.newInstance(); > SessionSetup.disallowSingleTestCaseUse(); > > >@@ -87,7 +89,7 @@ > // fires new runtime workbench initialization > suite.addTestSuite(CompilationTest.class); > >- suite.addTest(feed(DiagramNodeTest.class, sessionSetup)); >+ suite.addTest(feed(DiagramNodeTest.class, compartmentsSession)); > suite.addTest(feed(NamingStrategyTest.class, sessionSetup)); > suite.addTest(feed(GenModelTransformerBasicRTTest.class, sessionSetup)); > >Index: src/org/eclipse/gmf/tests/setup/CompartmentsSessionSetup.java >=================================================================== >RCS file: src/org/eclipse/gmf/tests/setup/CompartmentsSessionSetup.java >diff -N src/org/eclipse/gmf/tests/setup/CompartmentsSessionSetup.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/tests/setup/CompartmentsSessionSetup.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,174 @@ >+/* >+ * Copyright (c) 2006 Borland Software Corporation >+ * >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Michael Golubev (Borland) - initial API and implementation >+ */ >+ >+package org.eclipse.gmf.tests.setup; >+ >+import junit.framework.Assert; >+ >+import org.eclipse.emf.ecore.EAttribute; >+import org.eclipse.emf.ecore.EClass; >+import org.eclipse.emf.ecore.EReference; >+import org.eclipse.emf.ecore.ETypedElement; >+import org.eclipse.emf.ecore.EcoreFactory; >+import org.eclipse.emf.ecore.EcorePackage; >+import org.eclipse.gmf.gmfgraph.Canvas; >+import org.eclipse.gmf.gmfgraph.Compartment; >+import org.eclipse.gmf.gmfgraph.Figure; >+import org.eclipse.gmf.gmfgraph.FigureGallery; >+import org.eclipse.gmf.gmfgraph.GMFGraphFactory; >+import org.eclipse.gmf.gmfgraph.Node; >+import org.eclipse.gmf.mappings.ChildReference; >+import org.eclipse.gmf.mappings.CompartmentMapping; >+import org.eclipse.gmf.mappings.GMFMapFactory; >+import org.eclipse.gmf.mappings.NodeMapping; >+import org.eclipse.gmf.tests.setup.DomainModelSource.NodeData; >+ >+public class CompartmentsSessionSetup extends SessionSetup { >+ protected CompartmentsSessionSetup() { >+ // >+ } >+ >+ public static SessionSetup newInstance() { >+ if (factoryClosed) { >+ return null; >+ } >+ return new CompartmentsSessionSetup(); >+ } >+ >+ protected DomainModelSource createDomainModel() { >+ return new DomainSetupWithChildren().init(); >+ } >+ >+ protected DiaDefSource createGraphDefModel() { >+ return new DiaDefSetupWithCompartments().init(); >+ } >+ >+ protected MapDefSource createMapModel() { >+ MapDefSource mapDefSource = new MapSetupWithCompartments().init(getGraphDefModel(), getDomainModel(), new ToolDefSetup()); >+ Assert.assertFalse(mapDefSource.getNodeA().getCompartments().isEmpty()); >+ CompartmentMapping compartmentMapping = (CompartmentMapping) mapDefSource.getNodeA().getCompartments().get(0); >+ Assert.assertSame(mapDefSource.getNodeA(), compartmentMapping.getParentNode()); >+ return mapDefSource; >+ } >+ >+ protected DiaGenSource createGenModel() { >+ DiaGenSource result = new DiaGenSetup().init(getMapModel()); >+ Assert.assertFalse(result.getNodeA().getCompartments().isEmpty()); >+ return result; >+ } >+ >+ public DomainModelSourceExtension getDomainModelExtension() { >+ return (DomainModelSourceExtension)getDomainModel(); >+ } >+ >+ public DiaDefSourceExtension getGraphDefModelExtension() { >+ return (DiaDefSourceExtension)getGraphDefModel(); >+ } >+ >+ public static interface DiaDefSourceExtension extends DiaDefSource { >+ public Compartment getCompartment(); >+ } >+ >+ public static interface DomainModelSourceExtension extends DomainModelSource { >+ public NodeData getChildOfA(); >+ } >+ >+ protected static class DiaDefSetupWithCompartments extends DiaDefSetup implements DiaDefSourceExtension { >+ public void setupCanvasDef(Canvas canvasDef) { >+ FigureGallery oneMoreGallery = GMFGraphFactory.eINSTANCE.createFigureGallery(); >+ canvasDef.getFigures().add(oneMoreGallery); >+ Figure compartmentFigure = GMFGraphFactory.eINSTANCE.createRectangle(); >+ oneMoreGallery.getFigures().add(compartmentFigure); >+ Compartment compartment = createCompartment(compartmentFigure, "CompartmentA", true, true); >+ canvasDef.getCompartments().add(compartment); >+ } >+ >+ protected void setupNodeDef(Node nodeDef) { >+ Figure figure = (Figure)nodeDef.getFigure(); >+ figure.setLayout(GMFGraphFactory.eINSTANCE.createBorderLayout()); >+ } >+ >+ public Compartment getCompartment(){ >+ return (Compartment)getCanvasDef().getCompartments().get(0); >+ } >+ >+ private Compartment createCompartment(Figure figure, String name, boolean collapsible, boolean needsTitle){ >+ Compartment result = GMFGraphFactory.eINSTANCE.createCompartment(); >+ result.setCollapsible(true); >+ result.setFigure(figure); >+ result.setName(name); >+ result.setNeedsTitle(needsTitle); >+ return result; >+ } >+ >+ } >+ >+ protected static class DomainSetupWithChildren extends DomainModelSetup implements DomainModelSourceExtension { >+ private NodeData myChildOfA; >+ >+ public DomainModelSetup init() { >+ DomainModelSetup result = super.init(); >+ >+ EClass childClass = EcoreFactory.eINSTANCE.createEClass(); >+ childClass.setName("ChildOfA"); >+ EAttribute childLabel = EcoreFactory.eINSTANCE.createEAttribute(); >+ childLabel.setName("childLabel"); >+ childLabel.setEType(EcorePackage.eINSTANCE.getEString()); >+ childClass.getEStructuralFeatures().add(childLabel); >+ result.getModel().getEClassifiers().add(childClass); >+ >+ EReference containment = EcoreFactory.eINSTANCE.createEReference(); >+ containment.setContainment(true); >+ containment.setName("childrenOfA"); >+ containment.setEType(childClass); >+ containment.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY); >+ result.getNodeA().getEClass().getEStructuralFeatures().add(containment); >+ >+ myChildOfA = new NodeData(childClass, childLabel, containment); >+ return result; >+ } >+ >+ public NodeData getChildOfA() { >+ return myChildOfA; >+ } >+ } >+ >+ protected static class MapSetupWithCompartments extends MapSetup { >+ public MapSetup init(DiaDefSource ddSource, DomainModelSource domainSource, ToolDefSource toolDef) { >+ Assert.assertTrue(domainSource instanceof DomainSetupWithChildren); >+ Assert.assertTrue(ddSource instanceof DiaDefSetupWithCompartments); >+ >+ DomainSetupWithChildren domainWithChildren = (DomainSetupWithChildren)domainSource; >+ DiaDefSetupWithCompartments diaDefSetupWithCompartments = (DiaDefSetupWithCompartments)ddSource; >+ Assert.assertNotNull(diaDefSetupWithCompartments.getCompartment()); >+ >+ MapSetup result = super.init(ddSource, domainSource, toolDef); >+ >+ NodeData childOfAData = domainWithChildren.getChildOfA(); >+ NodeMapping childOfAMapping = createNodeMapping(ddSource.getNodeDef(), childOfAData.getEClass(), ddSource.getLabelDef(), childOfAData.getNameAttr(), childOfAData.getContainment(), false); >+ >+ ChildReference childOfAReference = GMFMapFactory.eINSTANCE.createChildReference(); >+ childOfAReference.setOwnedChild(childOfAMapping); >+ childOfAReference.setChildrenFeature(childOfAData.getContainment()); >+ childOfAReference.setContainmentFeature(childOfAData.getContainment()); >+ result.getNodeA().getChildren().add(childOfAReference); >+ >+ CompartmentMapping childOfACompartment = GMFMapFactory.eINSTANCE.createCompartmentMapping(); >+ childOfACompartment.setCompartment(diaDefSetupWithCompartments.getCompartment()); >+ childOfACompartment.getChildren().add(childOfAReference); >+ result.getNodeA().getCompartments().add(childOfACompartment); >+ >+ return result; >+ } >+ } >+ >+}
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 143666
: 42545 |
42546