### Eclipse Workspace Patch 1.0 #P org.eclipse.gmf.tests Index: src/org/eclipse/gmf/tests/rt/RuntimeDiagramTestBase.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/rt/RuntimeDiagramTestBase.java,v retrieving revision 1.12 diff -u -r1.12 RuntimeDiagramTestBase.java --- src/org/eclipse/gmf/tests/rt/RuntimeDiagramTestBase.java 13 Apr 2006 22:22:27 -0000 1.12 +++ src/org/eclipse/gmf/tests/rt/RuntimeDiagramTestBase.java 4 May 2006 14:12:16 -0000 @@ -10,40 +10,18 @@ */ package org.eclipse.gmf.tests.rt; -import java.util.Arrays; - import junit.framework.Assert; -import org.eclipse.draw2d.geometry.Point; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.transaction.TransactionalEditingDomain; -import org.eclipse.gef.EditPart; -import org.eclipse.gef.RequestConstants; import org.eclipse.gef.commands.Command; import org.eclipse.gmf.codegen.gmfgen.GenCommonBase; -import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter; -import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; -import org.eclipse.gmf.runtime.diagram.ui.commands.EtoolsProxyCommand; -import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; -import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest; -import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest; -import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper; -import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest.ConnectionViewAndElementDescriptor; -import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; -import org.eclipse.gmf.runtime.emf.type.core.IElementType; -import org.eclipse.gmf.runtime.emf.type.core.IHintedType; -import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand; -import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; -import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; +import org.eclipse.gmf.codegen.gmfgen.GenLink; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.View; -import org.eclipse.gmf.tests.EPath; import org.eclipse.gmf.tests.setup.DiaGenSource; import org.eclipse.gmf.tests.setup.LinksSessionSetup; import org.eclipse.gmf.tests.setup.SessionSetup; @@ -69,7 +47,7 @@ return LinksSessionSetup.newInstance(); } - protected Node createNode(final IElementType metamodelType, View notationContainer) { + protected Node createNode(GenCommonBase nodeType, View notationContainer) { final Object[] newObjHolder = new Object[1]; Adapter adapter = new AdapterImpl() { @@ -84,12 +62,10 @@ return true; } }; + Command cmd = getViewerConfiguration().getCreateNodeCommand(notationContainer, nodeType); + Assert.assertNotNull("No command is available for request", cmd); //$NON-NLS-1$ notationContainer.eAdapters().add(adapter); - try { - CreateUnspecifiedTypeRequest req = new CreateUnspecifiedTypeRequest(Arrays.asList(new IElementType[] { metamodelType }), PreferencesHint.USE_DEFAULTS); - Command cmd = findEditPart(notationContainer).getCommand(req); - Assert.assertNotNull("No command is available for request", cmd); //$NON-NLS-1$ execute(cmd); } catch (Exception e) { e.printStackTrace(); @@ -100,14 +76,12 @@ return newObjHolder[0] instanceof Node ? (Node) newObjHolder[0] : null; } - protected boolean canStartLinkFrom(IElementType metamodelType, View source) { - CreateRelationshipRequest req = new CreateRelationshipRequest(source.getElement(), null, metamodelType); - EditCommandRequestWrapper wrapper = new EditCommandRequestWrapper(req); - Command cmd = findEditPart(source).getCommand(wrapper); + protected boolean canStartLinkFrom(GenLink linkType, View source) { + Command cmd = getViewerConfiguration().getStartLinkCommand(source, linkType); return cmd != null && cmd.canExecute(); } - protected Edge createLink(IElementType metamodelType, View source, View target) { + protected Edge createLink(GenLink linkType, View source, View target) { final Object[] newObjHolder = new Object[1]; Adapter adapter = new AdapterImpl() { @@ -125,37 +99,11 @@ Diagram diagram = getDiagram(); diagram.eAdapters().add(adapter); try { - CreateRelationshipRequest relationShipReq = new CreateRelationshipRequest(metamodelType); - relationShipReq.setSource(source.getElement()); - if (target != null) { - relationShipReq.setTarget(target.getElement()); - } - - ConnectionViewAndElementDescriptor desc = new ConnectionViewAndElementDescriptor(new CreateElementRequestAdapter(relationShipReq), metamodelType instanceof IHintedType ? ((IHintedType) metamodelType).getSemanticHint() : "", PreferencesHint.USE_DEFAULTS); - - CreateConnectionViewAndElementRequest req = new CreateConnectionViewAndElementRequest(desc); - req.setType(RequestConstants.REQ_CONNECTION_START); - - EditPart sourceEditPart = findEditPart(source); - req.setSourceEditPart(sourceEditPart); - // Note: initializes the sourceCommand in the request - Command sourceCmd = sourceEditPart.getCommand(req); - if (sourceCmd == null || !sourceCmd.canExecute()) { + Command targetCmd = getViewerConfiguration().getCreateLinkCommand(source, target, linkType); + if (targetCmd == null || !targetCmd.canExecute()) { return null; } - - EditPart targetEditPart = target != null ? findEditPart(target) : null; - if (targetEditPart != null) { - req.setType(RequestConstants.REQ_CONNECTION_END); - req.setTargetEditPart(targetEditPart); - req.setLocation(new Point(0, 0)); - sourceEditPart.getCommand(req); - Command targetCmd = targetEditPart.getCommand(req); - if (targetCmd == null || !targetCmd.canExecute()) { - return null; - } - execute(targetCmd); - } + execute(targetCmd); } catch (Exception e) { e.printStackTrace(); Assert.fail("Edge creation failure: " + e.getLocalizedMessage()); //$NON-NLS-1$ @@ -165,30 +113,6 @@ return newObjHolder[0] instanceof Edge ? (Edge) newObjHolder[0] : null; } - protected IElementType getElementType(GenCommonBase genElement) { - Class clazz = null; - try { - clazz = loadGeneratedClass(getGenModel().getGenDiagram().getElementTypesQualifiedClassName()); - } catch (Exception e) { - e.printStackTrace(); - fail("ElementTypes class not loaded. " + e.getLocalizedMessage()); //$NON-NLS-1$ - } - String identifier = genElement.getUniqueIdentifier(); - try { - Object type = clazz.getField(identifier).get(null); - assert type != null : "Metatype field in the ElementTypes class should be initialized"; //$NON-NLS-1$ - assert type instanceof IElementType : IElementType.class.getName() + ": metamodel type class required"; //$NON-NLS-1$ - return (IElementType) type; - } catch (NoSuchFieldException e) { - fail("Metamodel type " + identifier + " is not registered"); //$NON-NLS-1$ //$NON-NLS-2$ - } catch (Exception e) { - e.printStackTrace(); - fail("Can't access metamodel type " + identifier); //$NON-NLS-1$ - } - - return null; - } - /** * Sets structural feature value of the business element associated with the * given notation element. @@ -204,21 +128,6 @@ * if the given name does not refer existing feature */ protected void setBusinessElementStructuralFeature(View view, String featureName, Object value) { - EObject instance = view.getElement(); - assertNotNull("No business element bound to notation element", instance); //$NON-NLS-1$ - EObject resultObj = EPath.findLocalFeature(instance.eClass(), featureName); - if (!(resultObj instanceof EStructuralFeature)) { - throw new IllegalArgumentException("Not existing feature: " + featureName); //$NON-NLS-1$ - } - - EStructuralFeature feature = (EStructuralFeature) resultObj; - SetRequest setReq = new SetRequest(instance, feature, value); - EditPart editPart = findEditPart(view); - assertTrue("IGraphicalEditPart expected", editPart instanceof IGraphicalEditPart); //$NON-NLS-1$ - - TransactionalEditingDomain txEditDomain = ((IGraphicalEditPart) editPart).getEditingDomain(); - CompositeTransactionalCommand modelCmd = new CompositeTransactionalCommand(txEditDomain, "Set feature"); //$NON-NLS-1$ - modelCmd.compose(new SetValueCommand(setReq)); - new EtoolsProxyCommand(modelCmd).execute(); + getViewerConfiguration().setBusinessElementStructuralFeature(view, featureName, value); } } Index: src/org/eclipse/gmf/tests/rt/ElementInitializerTest.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/rt/ElementInitializerTest.java,v retrieving revision 1.3 diff -u -r1.3 ElementInitializerTest.java --- src/org/eclipse/gmf/tests/rt/ElementInitializerTest.java 13 Apr 2006 12:09:29 -0000 1.3 +++ src/org/eclipse/gmf/tests/rt/ElementInitializerTest.java 4 May 2006 14:12:16 -0000 @@ -17,7 +17,6 @@ import org.eclipse.emf.ecore.EEnumLiteral; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.gmf.runtime.notation.Node; /** @@ -33,14 +32,10 @@ protected void setUp() throws Exception { super.setUp(); - IElementType nodeAMetaType = getElementType(getGenModel().getNodeA()); - assertNotNull("NodeA element type is not registered", nodeAMetaType); - Node nodeA = createNode(nodeAMetaType, getDiagram()); + Node nodeA = createNode(getGenModel().getNodeA(), getDiagram()); this.nodeAElement = nodeA.getElement(); - IElementType nodeBMetaType = getElementType(getGenModel().getNodeB()); - assertNotNull("NodeB element type is not registered", nodeBMetaType); - Node nodeB = createNode(nodeBMetaType, getDiagram()); - this.nodeBElement = nodeB.getElement(); + Node nodeB = createNode(getGenModel().getNodeB(), getDiagram()); + this.nodeBElement = nodeB.getElement(); assertNotNull("Tested node A element not available", nodeAElement); //$NON-NLS-1$ assertNotNull("Tested node B element not available", nodeBElement); //$NON-NLS-1$ } Index: src/org/eclipse/gmf/tests/rt/LinkCreationConstraintsTest.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/rt/LinkCreationConstraintsTest.java,v retrieving revision 1.9 diff -u -r1.9 LinkCreationConstraintsTest.java --- src/org/eclipse/gmf/tests/rt/LinkCreationConstraintsTest.java 13 Apr 2006 12:09:29 -0000 1.9 +++ src/org/eclipse/gmf/tests/rt/LinkCreationConstraintsTest.java 4 May 2006 14:12:16 -0000 @@ -12,7 +12,6 @@ import org.eclipse.gmf.codegen.gmfgen.GenLink; import org.eclipse.gmf.codegen.gmfgen.GenNode; -import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.Node; @@ -23,58 +22,49 @@ super(name); } - public void testCreateConstrainedLinks() throws Exception { - IElementType nodeMetaType = getElementType(getTargetGenNode()); - assertNotNull("Node element type is not registered", nodeMetaType); - IElementType linkMetaType = getElementType(getClassGenLink()); - assertNotNull("Link element type is not registered", linkMetaType); - IElementType containerMetaType = getElementType(getSourceGenNode()); - assertNotNull("Container element type is not registered", containerMetaType); - IElementType referenceLinkMetaType = getElementType(getRefGenLink()); - assertNotNull("Reference link element type is not registered", referenceLinkMetaType); - + public void testCreateConstrainedLinks() throws Exception { Diagram diagram = (Diagram)getDiagramEditPart().getModel(); - Node sourceContainerNode = createNode(containerMetaType, diagram); + Node sourceContainerNode = createNode(getSourceGenNode(), diagram); setBusinessElementStructuralFeature(sourceContainerNode, "acceptLinkKind", null); //$NON-NLS-1$ - Node targetNode = createNode(nodeMetaType, diagram); + Node targetNode = createNode(getTargetGenNode(), diagram); assertNotNull(findEditPart(targetNode)); setBusinessElementStructuralFeature(sourceContainerNode, "acceptLinkKind", null); //$NON-NLS-1$ assertFalse("Can start link without acceptedLinkKind", //$NON-NLS-1$ - canStartLinkFrom(referenceLinkMetaType, sourceContainerNode)); + canStartLinkFrom(getRefGenLink(), sourceContainerNode)); String linkKind = "kind1"; //$NON-NLS-1$ setBusinessElementStructuralFeature(sourceContainerNode, "acceptLinkKind", linkKind); //$NON-NLS-1$ assertTrue("Allow start link with acceptedLinkKind", //$NON-NLS-1$ - canStartLinkFrom(referenceLinkMetaType, sourceContainerNode)); + canStartLinkFrom(getRefGenLink(), sourceContainerNode)); assertNull("Do not create link to node with different linkKind", //$NON-NLS-1$ - createLink(referenceLinkMetaType, sourceContainerNode, targetNode)); + createLink(getRefGenLink(), sourceContainerNode, targetNode)); // set the same link kind to target node setBusinessElementStructuralFeature(targetNode, "acceptLinkKind", linkKind); //$NON-NLS-1$ - Edge link = createLink(referenceLinkMetaType, sourceContainerNode, targetNode); + Edge link = createLink(getRefGenLink(), sourceContainerNode, targetNode); assertNotNull("Link start should be allowed", link); //$NON-NLS-1$ // once create, refect 2nd link creation due to multiplicity 0..1 assertNull("Do not create already existing link", //$NON-NLS-1$ - createLink(referenceLinkMetaType, sourceContainerNode, targetNode)); + createLink(getRefGenLink(), sourceContainerNode, targetNode)); assertFalse("Do allow start for 2nd link", //$NON-NLS-1$ - canStartLinkFrom(referenceLinkMetaType, sourceContainerNode)); + canStartLinkFrom(getRefGenLink(), sourceContainerNode)); // test link with Class assertNotNull("Should create link for nodes with equal acceptLinkKind", //$NON-NLS-1$ - createLink(linkMetaType, sourceContainerNode, targetNode)); + createLink(getClassGenLink(), sourceContainerNode, targetNode)); // set different acceptLinkKind setBusinessElementStructuralFeature(sourceContainerNode, "acceptLinkKind", null); //$NON-NLS-1$ assertTrue("Should start link with no restriction", //$NON-NLS-1$ - canStartLinkFrom(linkMetaType, sourceContainerNode)); + canStartLinkFrom(getClassGenLink(), sourceContainerNode)); assertNull("Should not create link for nodes with different acceptLinkKind", //$NON-NLS-1$ - createLink(linkMetaType, sourceContainerNode, targetNode)); + createLink(getClassGenLink(), sourceContainerNode, targetNode)); // set the same acceptLinkKind to target node setBusinessElementStructuralFeature(targetNode, "acceptLinkKind", "kind1"); //$NON-NLS-1$ //$NON-NLS-2$ setBusinessElementStructuralFeature(sourceContainerNode, "acceptLinkKind", "kind1"); //$NON-NLS-1$ //$NON-NLS-2$ - assertTrue(canStartLinkFrom(linkMetaType, sourceContainerNode)); + assertTrue(canStartLinkFrom(getClassGenLink(), sourceContainerNode)); assertNotNull("Should create link for nodes with equal acceptLinkKind", //$NON-NLS-1$ - createLink(linkMetaType, sourceContainerNode, targetNode)); + createLink(getClassGenLink(), sourceContainerNode, targetNode)); } private GenLink getRefGenLink() { Index: src/org/eclipse/gmf/tests/rt/AuditRulesTest.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/rt/AuditRulesTest.java,v retrieving revision 1.9 diff -u -r1.9 AuditRulesTest.java --- src/org/eclipse/gmf/tests/rt/AuditRulesTest.java 25 Apr 2006 19:15:52 -0000 1.9 +++ src/org/eclipse/gmf/tests/rt/AuditRulesTest.java 4 May 2006 14:12:16 -0000 @@ -44,7 +44,6 @@ import org.eclipse.gmf.mappings.MappingEntry; import org.eclipse.gmf.mappings.NodeMapping; import org.eclipse.gmf.mappings.NotationElementTarget; -import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.gmf.runtime.notation.NotationPackage; import org.eclipse.gmf.tests.setup.MapDefSource; @@ -103,9 +102,9 @@ EClass target = findCanonicalEClass(getTargetEClass(audit)); EObject validatedInstance = null; if(NotationPackage.eINSTANCE.getView().isSuperTypeOf(target)) { - IElementType nodeAMetaType = getElementType(getSetup().getGenModel().getNodeA()); - assertNotNull("Node element type is not registered", nodeAMetaType); - validatedInstance = createNode(nodeAMetaType, getDiagram()); +// IElementType nodeAMetaType = getElementType(getSetup().getGenModel().getNodeA()); +// assertNotNull("Node element type is not registered", nodeAMetaType); + validatedInstance = createNode(getSetup().getGenModel().getNodeA(), getDiagram()); } else { validatedInstance = target.getEPackage().getEFactoryInstance().create(target); } Index: src/org/eclipse/gmf/tests/rt/GeneratedCanvasTest.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/rt/GeneratedCanvasTest.java,v retrieving revision 1.2 diff -u -r1.2 GeneratedCanvasTest.java --- src/org/eclipse/gmf/tests/rt/GeneratedCanvasTest.java 28 Feb 2006 17:23:13 -0000 1.2 +++ src/org/eclipse/gmf/tests/rt/GeneratedCanvasTest.java 4 May 2006 14:12:16 -0000 @@ -11,33 +11,17 @@ */ package org.eclipse.gmf.tests.rt; -import java.util.Collections; -import java.util.List; - -import org.eclipse.draw2d.GraphicsSource; -import org.eclipse.draw2d.IFigure; -import org.eclipse.draw2d.LightweightSystem; -import org.eclipse.draw2d.UpdateManager; -import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.EditPart; -import org.eclipse.gef.EditPartFactory; -import org.eclipse.gef.EditPartViewer; import org.eclipse.gef.commands.Command; import org.eclipse.gef.commands.CommandStack; -import org.eclipse.gef.ui.parts.GraphicalViewerImpl; -import org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker; -import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; -import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack; -import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditDomain; -import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramEditDomain; -import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer; +import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.gmf.tests.ConfiguredTestCase; import org.eclipse.gmf.tests.setup.RTSetup; import org.eclipse.gmf.tests.setup.RTSource; +import org.eclipse.gmf.tests.setup.GeneratorConfiguration.ViewerConfiguration; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.osgi.framework.Bundle; @@ -46,7 +30,7 @@ */ public abstract class GeneratedCanvasTest extends ConfiguredTestCase { - private EditPartViewer myViewer; + private ViewerConfiguration myViewerConfiguration; private Composite myParentShell; private Bundle myGenProject; private RTSource myRTSource; @@ -58,14 +42,8 @@ protected void setUp() throws Exception { super.setUp(); myGenProject = getSetup().getGenProject().getBundle(); - String epFactoryClassName = getSetup().getGenModel().getGenDiagram().getEditPartFactoryQualifiedClassName(); - Class epFactory = loadGeneratedClass(epFactoryClassName); - assert EditPartFactory.class.isAssignableFrom(epFactory); - myViewer = createViewer(); - myViewer.setEditPartFactory((EditPartFactory) epFactory.newInstance()); - myRTSource = createCanvasInstance(); - myViewer.setContents(myRTSource.getCanvas()); + myViewerConfiguration = createViewerConfiguration(myRTSource.getCanvas()); } protected final RTSource getCanvasInstance() { @@ -77,19 +55,24 @@ } protected final EditPart getDiagramEditPart() { - return myViewer.getContents(); + return myViewerConfiguration.getViewer().getContents(); + } + + public ViewerConfiguration getViewerConfiguration() { + return myViewerConfiguration; } protected void tearDown() throws Exception { if (myParentShell != null) { myParentShell.dispose(); myParentShell = null; + myViewerConfiguration.dispose(); } super.tearDown(); } protected final EditPart findEditPart(View notationElement) { - return (EditPart) myViewer.getEditPartRegistry().get(notationElement); + return (EditPart) myViewerConfiguration.findEditPart(notationElement); } protected final Class loadGeneratedClass(String qualifiedClassName) throws ClassNotFoundException { @@ -105,71 +88,11 @@ } protected final CommandStack getCommandStack() { - return myViewer.getEditDomain().getCommandStack(); + return myViewerConfiguration.getViewer().getEditDomain().getCommandStack(); } - private EditPartViewer createViewer() { - // make sure there's display for current thread - Display.getDefault(); - - FakeViewer gv = new FakeViewer(); + protected ViewerConfiguration createViewerConfiguration(Diagram canvas) throws Exception { myParentShell = new Shell(SWT.NONE); - gv.createControl(myParentShell); - DiagramEditDomain ded = new DiagramEditDomain(null); - gv.setEditDomain(ded); - gv.getEditDomain().setCommandStack(new DiagramCommandStack(ded)); - return gv; - } - - - private static final class FakeViewer extends GraphicalViewerImpl implements IDiagramGraphicalViewer{ - - private FakeViewer() { - /* - * When extends DiagramGraphicalViewer, don't forget to - * super.hookWorkspacePreferenceStore(new PreferenceStore()); - */ - } - - public void setContents(Object contents) { - GraphicalEditPart epart = (GraphicalEditPart)getEditPartFactory().createEditPart(null, contents); - DiagramEventBroker.startListening(epart.getEditingDomain()); - super.setContents(epart); - } - - protected LightweightSystem createLightweightSystem() { - final UpdateManager NO_MANAGER = new UpdateManager() { - public void addDirtyRegion(IFigure figure, int x, int y, int w, int h) {} - public void addInvalidFigure(IFigure figure) {} - public void performUpdate() {} - public void performUpdate(Rectangle exposed) {} - public void setGraphicsSource(GraphicsSource gs) {} - public void setRoot(IFigure figure) {} - }; - - return new LightweightSystem() { - { - setUpdateManager(NO_MANAGER); - } - - public UpdateManager getUpdateManager() { - return NO_MANAGER; - } - }; - } - - public IDiagramEditDomain getDiagramEditDomain() { - return (IDiagramEditDomain) super.getEditDomain(); - } - - public List findEditPartsForElement(String elementIdStr, Class editPartClass) { - return Collections.EMPTY_LIST; - } - - public void registerEditPartForElement(String elementIdStr, EditPart ep) { - } - - public void unregisterEditPartForElement(String elementIdStr, EditPart ep) { - } + return getSetup().getGeneratorConfiguration().createViewerConfiguration(myParentShell, getSetup(), canvas); } } 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.9 diff -u -r1.9 SessionSetup.java --- src/org/eclipse/gmf/tests/setup/SessionSetup.java 8 Feb 2006 18:53:33 -0000 1.9 +++ src/org/eclipse/gmf/tests/setup/SessionSetup.java 4 May 2006 14:12:16 -0000 @@ -27,6 +27,7 @@ private int myUses; private static RuntimeWorkspaceSetup myRuntimeWorkspaceSetup; protected static boolean factoryClosed = false; + private GeneratorConfiguration myGeneratorConfiguration; /** * Use factory method {@link #newInstance()} instead @@ -81,7 +82,18 @@ } protected GenProjectSetup createGenProject() throws BundleException, Exception { - return new GenProjectSetup().init(getRuntimeWorkspaceSetup(), getGenModel()); + return new GenProjectSetup(getGeneratorConfiguration()).init(getRuntimeWorkspaceSetup(), getGenModel()); + } + + public GeneratorConfiguration getGeneratorConfiguration() { + if (myGeneratorConfiguration == null) { + myGeneratorConfiguration = createGeneratorConfiguration(); + } + return myGeneratorConfiguration; + } + + protected GeneratorConfiguration createGeneratorConfiguration() { + return new RuntimeBasedGeneratorConfiguration(); } public MapDefSource getMapModel() { 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.7 diff -u -r1.7 GenProjectBaseSetup.java --- src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java 8 Feb 2006 00:19:09 -0000 1.7 +++ src/org/eclipse/gmf/tests/setup/GenProjectBaseSetup.java 4 May 2006 14:12:16 -0000 @@ -26,9 +26,10 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.gmf.codegen.gmfgen.GenDiagram; -import org.eclipse.gmf.codegen.util.Generator; +import org.eclipse.gmf.common.codegen.GeneratorBase; import org.eclipse.gmf.tests.CompileUtil; import org.eclipse.gmf.tests.Plugin; +import org.eclipse.gmf.tests.setup.GeneratorConfiguration; /** * Generates and (by default) compiles gmf plugins. @@ -37,6 +38,11 @@ public class GenProjectBaseSetup { private final Set projectsToInit = new LinkedHashSet(); private CompileUtil compileUtil; + private GeneratorConfiguration myGeneratorFactory; + + public GenProjectBaseSetup(GeneratorConfiguration generatorFactory) { + myGeneratorFactory = generatorFactory; + } public void generateAndCompile(RuntimeWorkspaceSetup rtWorkspace, DiaGenSource diaGenSource) throws Exception { rtWorkspace.ensureJava14(); @@ -51,7 +57,7 @@ domainGenModel.generateEdit(new NullProgressMonitor()); projectsToInit.add(domainGenModel.getEditPluginID()); - Generator generator = new Generator(d); + GeneratorBase generator = myGeneratorFactory.createGenerator(d); generator.run(); hookGeneratorStatus(generator.getRunStatus()); final String gmfEditorId = d.getEditorGen().getPlugin().getID(); Index: src/org/eclipse/gmf/tests/setup/GenProjectSetup.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/GenProjectSetup.java,v retrieving revision 1.15 diff -u -r1.15 GenProjectSetup.java --- src/org/eclipse/gmf/tests/setup/GenProjectSetup.java 13 Apr 2006 14:20:49 -0000 1.15 +++ src/org/eclipse/gmf/tests/setup/GenProjectSetup.java 4 May 2006 14:12:16 -0000 @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.IRegistryChangeListener; import org.eclipse.core.runtime.RegistryFactory; import org.eclipse.gmf.tests.Plugin; +import org.eclipse.gmf.tests.setup.GeneratorConfiguration; import org.eclipse.swt.widgets.Display; import org.osgi.framework.Bundle; import org.osgi.framework.BundleException; @@ -32,7 +33,8 @@ private Bundle myBundle; - public GenProjectSetup() { + public GenProjectSetup(GeneratorConfiguration generatorFactory) { + super(generatorFactory); } /** 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.10 diff -u -r1.10 CompilationTest.java --- src/org/eclipse/gmf/tests/gen/CompilationTest.java 7 Mar 2006 16:41:23 -0000 1.10 +++ src/org/eclipse/gmf/tests/gen/CompilationTest.java 4 May 2006 14:12:16 -0000 @@ -18,11 +18,13 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.gmf.tests.Plugin; +import org.eclipse.gmf.tests.setup.RuntimeBasedGeneratorConfiguration; import org.eclipse.gmf.tests.setup.DiaDefSetup; import org.eclipse.gmf.tests.setup.DiaGenFileSetup; import org.eclipse.gmf.tests.setup.DiaGenSource; import org.eclipse.gmf.tests.setup.DomainModelSource; import org.eclipse.gmf.tests.setup.GenProjectBaseSetup; +import org.eclipse.gmf.tests.setup.GeneratorConfiguration; import org.eclipse.gmf.tests.setup.MapDefSource; import org.eclipse.gmf.tests.setup.MapSetup; import org.eclipse.gmf.tests.setup.MultiPackageGenSetup; @@ -46,13 +48,13 @@ public void testCompileDistinctModelAndDiagramFiles() throws Exception { DiaGenSource gmfGenSource = loadSource(); gmfGenSource.getGenDiagram().getEditorGen().setSameFileForDiagramAndModel(false); - new GenProjectBaseSetup().generateAndCompile(SessionSetup.getRuntimeWorkspaceSetup(), gmfGenSource); + generateAndCompile(gmfGenSource); } public void testCompileSingleDiagramFile() throws Exception { DiaGenSource gmfGenSource = loadSource(); gmfGenSource.getGenDiagram().getEditorGen().setSameFileForDiagramAndModel(true); - new GenProjectBaseSetup().generateAndCompile(SessionSetup.getRuntimeWorkspaceSetup(), gmfGenSource); + generateAndCompile(gmfGenSource); } private DiaGenSource loadSource() throws IOException { @@ -72,7 +74,15 @@ DiaGenSource gmfGenSource = new MultiPackageGenSetup(additionalPacks).init(ms); - new GenProjectBaseSetup().generateAndCompile(SessionSetup.getRuntimeWorkspaceSetup(), gmfGenSource); + generateAndCompile(gmfGenSource); + } + + protected void generateAndCompile(DiaGenSource genSource) throws Exception { + new GenProjectBaseSetup(getGeneratorConfiguration()).generateAndCompile(SessionSetup.getRuntimeWorkspaceSetup(), genSource); + } + + protected GeneratorConfiguration getGeneratorConfiguration() { + return new RuntimeBasedGeneratorConfiguration(); } protected void tearDown() throws Exception { Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/technology/org.eclipse.gmf/tests/org.eclipse.gmf.tests/META-INF/MANIFEST.MF,v retrieving revision 1.19 diff -u -r1.19 MANIFEST.MF --- META-INF/MANIFEST.MF 12 Apr 2006 18:16:38 -0000 1.19 +++ META-INF/MANIFEST.MF 4 May 2006 14:12:16 -0000 @@ -19,3 +19,9 @@ org.eclipse.gmf.codegen.ui;bundle-version="[1.0.0,2.0.0)" Bundle-Activator: org.eclipse.gmf.tests.Plugin Eclipse-LazyStart: true +Export-Package: org.eclipse.gmf.tests;x-friends:="org.eclipse.gmf.tests.lite", + org.eclipse.gmf.tests.gef;x-friends:="org.eclipse.gmf.tests.lite", + org.eclipse.gmf.tests.gen;x-friends:="org.eclipse.gmf.tests.lite", + org.eclipse.gmf.tests.rt;x-friends:="org.eclipse.gmf.tests.lite", + org.eclipse.gmf.tests.setup;x-friends:="org.eclipse.gmf.tests.lite", + org.eclipse.gmf.tests.tr;x-friends:="org.eclipse.gmf.tests.lite" Index: src/org/eclipse/gmf/tests/setup/NoUpdateViewer.java =================================================================== RCS file: src/org/eclipse/gmf/tests/setup/NoUpdateViewer.java diff -N src/org/eclipse/gmf/tests/setup/NoUpdateViewer.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/tests/setup/NoUpdateViewer.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2006 Eclipse.org + * + * 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: + * bblajer - initial API and implementation + */ +package org.eclipse.gmf.tests.setup; + +import org.eclipse.draw2d.GraphicsSource; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.LightweightSystem; +import org.eclipse.draw2d.UpdateManager; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.gef.ui.parts.GraphicalViewerImpl; + +public class NoUpdateViewer extends GraphicalViewerImpl { + protected LightweightSystem createLightweightSystem() { + final UpdateManager NO_MANAGER = new UpdateManager() { + public void addDirtyRegion(IFigure figure, int x, int y, int w, int h) {} + public void addInvalidFigure(IFigure figure) {} + public void performUpdate() {} + public void performUpdate(Rectangle exposed) {} + public void setGraphicsSource(GraphicsSource gs) {} + public void setRoot(IFigure figure) {} + }; + + return new LightweightSystem() { + { + setUpdateManager(NO_MANAGER); + } + + public UpdateManager getUpdateManager() { + return NO_MANAGER; + } + }; + } +} Index: src/org/eclipse/gmf/tests/setup/GeneratorConfiguration.java =================================================================== RCS file: src/org/eclipse/gmf/tests/setup/GeneratorConfiguration.java diff -N src/org/eclipse/gmf/tests/setup/GeneratorConfiguration.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/tests/setup/GeneratorConfiguration.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,30 @@ +package org.eclipse.gmf.tests.setup; + +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartViewer; +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.codegen.gmfgen.GenCommonBase; +import org.eclipse.gmf.codegen.gmfgen.GenDiagram; +import org.eclipse.gmf.common.codegen.GeneratorBase; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.widgets.Composite; + +public interface GeneratorConfiguration { + public GeneratorBase createGenerator(GenDiagram diagram); + + /** + * Encapsulates differences in the way viewer is created and operated in different configurations. + */ + public static interface ViewerConfiguration { + public EditPart findEditPart(View notationElement); + public EditPartViewer getViewer(); + public Command getCreateNodeCommand(View parentView, GenCommonBase nodeType); + public Command getStartLinkCommand(View source, GenCommonBase linkType); + public Command getCreateLinkCommand(View source, View target, GenCommonBase linkType); + public void setBusinessElementStructuralFeature(View view, String featureName, Object value); + public void dispose(); + } + + public ViewerConfiguration createViewerConfiguration(Composite parent, SessionSetup setup, Diagram canvas) throws Exception; +} Index: src/org/eclipse/gmf/tests/setup/RuntimeBasedGeneratorConfiguration.java =================================================================== RCS file: src/org/eclipse/gmf/tests/setup/RuntimeBasedGeneratorConfiguration.java diff -N src/org/eclipse/gmf/tests/setup/RuntimeBasedGeneratorConfiguration.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/gmf/tests/setup/RuntimeBasedGeneratorConfiguration.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,247 @@ +/* + * 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: + * Boris Blajer (Borland) - initial API and implementation + */ +package org.eclipse.gmf.tests.setup; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import junit.framework.Assert; + +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; +import org.eclipse.gef.EditPartViewer; +import org.eclipse.gef.RequestConstants; +import org.eclipse.gef.commands.Command; +import org.eclipse.gmf.codegen.gmfgen.GenCommonBase; +import org.eclipse.gmf.codegen.gmfgen.GenDiagram; +import org.eclipse.gmf.codegen.util.Generator; +import org.eclipse.gmf.common.codegen.GeneratorBase; +import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter; +import org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBroker; +import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint; +import org.eclipse.gmf.runtime.diagram.ui.commands.EtoolsProxyCommand; +import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack; +import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditDomain; +import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramEditDomain; +import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeRequest; +import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewAndElementRequest.ConnectionViewAndElementDescriptor; +import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; +import org.eclipse.gmf.runtime.emf.type.core.IElementType; +import org.eclipse.gmf.runtime.emf.type.core.IHintedType; +import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.gmf.tests.EPath; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.osgi.framework.Bundle; + +public class RuntimeBasedGeneratorConfiguration implements GeneratorConfiguration { + public GeneratorBase createGenerator(GenDiagram diagram) { + return new Generator(diagram.getEditorGen()); + } + + public ViewerConfiguration createViewerConfiguration(Composite parent, SessionSetup sessionSetup, Diagram canvas) throws Exception { + EditPartViewer viewer = createViewer(parent); + String epFactoryClassName = sessionSetup.getGenModel().getGenDiagram().getEditPartFactoryQualifiedClassName(); + Class epFactory = sessionSetup.getGenProject().getBundle().loadClass(epFactoryClassName); + assert EditPartFactory.class.isAssignableFrom(epFactory); + viewer.setEditPartFactory((EditPartFactory) epFactory.newInstance()); + viewer.setContents(canvas); + return createViewerConfiguration(sessionSetup, viewer); + } + + protected ViewerConfiguration createViewerConfiguration(SessionSetup sessionSetup, EditPartViewer viewer) throws Exception { + return new DefaultViewerConfiguration(sessionSetup, viewer); + } + + private EditPartViewer createViewer(Composite parent) { + // make sure there's display for current thread + Display.getDefault(); + + EditPartViewer gv = createViewerInstance(); + gv.createControl(parent); + DiagramEditDomain ded = new DiagramEditDomain(null); + gv.setEditDomain(ded); + gv.getEditDomain().setCommandStack(new DiagramCommandStack(ded)); + return gv; + } + + protected EditPartViewer createViewerInstance() { + return new FakeViewer(); + } + + protected static class DefaultViewerConfiguration implements ViewerConfiguration { + private EditPartViewer myViewer; + private Bundle myGenProject; + private SessionSetup mySessionSetup; + + public DefaultViewerConfiguration(SessionSetup sessionSetup, EditPartViewer viewer) throws Exception { + myViewer = viewer; + mySessionSetup = sessionSetup; + myGenProject = sessionSetup.getGenProject().getBundle(); + } + + public EditPartViewer getViewer() { + return myViewer; + } + + public EditPart findEditPart(View notationElement) { + return (EditPart) myViewer.getEditPartRegistry().get(notationElement); + } + + public void setBusinessElementStructuralFeature(View view, String featureName, Object value) { + EObject instance = view.getElement(); + Assert.assertNotNull("No business element bound to notation element", instance); //$NON-NLS-1$ + EObject resultObj = EPath.findLocalFeature(instance.eClass(), featureName); + if (!(resultObj instanceof EStructuralFeature)) { + throw new IllegalArgumentException("Not existing feature: " + featureName); //$NON-NLS-1$ + } + + EStructuralFeature feature = (EStructuralFeature) resultObj; + SetRequest setReq = new SetRequest(instance, feature, value); + EditPart editPart = findEditPart(view); + Assert.assertTrue("IGraphicalEditPart expected", editPart instanceof IGraphicalEditPart); //$NON-NLS-1$ + + TransactionalEditingDomain txEditDomain = ((IGraphicalEditPart) editPart).getEditingDomain(); + CompositeTransactionalCommand modelCmd = new CompositeTransactionalCommand(txEditDomain, "Set feature"); //$NON-NLS-1$ + modelCmd.compose(new SetValueCommand(setReq)); + new EtoolsProxyCommand(modelCmd).execute(); + } + + public void dispose() { + myViewer = null; + } + + public Command getCreateNodeCommand(View parentView, GenCommonBase nodeType) { + IElementType metamodelType = getElementType(nodeType); + CreateUnspecifiedTypeRequest req = new CreateUnspecifiedTypeRequest(Arrays.asList(new IElementType[] { metamodelType }), PreferencesHint.USE_DEFAULTS); + return findEditPart(parentView).getCommand(req); + } + + public Command getStartLinkCommand(View source, GenCommonBase linkType) { + IElementType metamodelType = getElementType(linkType); + CreateRelationshipRequest req = new CreateRelationshipRequest(source.getElement(), null, metamodelType); + EditCommandRequestWrapper wrapper = new EditCommandRequestWrapper(req); + return findEditPart(source).getCommand(wrapper); + } + + /* (non-Javadoc) + * @see org.eclipse.gmf.tests.setup.GeneratorConfiguration.ViewerConfiguration#getCreateLinkCommand(org.eclipse.gmf.runtime.notation.View, org.eclipse.gmf.runtime.notation.View, org.eclipse.gmf.codegen.gmfgen.GenCommonBase) + */ + public Command getCreateLinkCommand(View source, View target, GenCommonBase linkType) { + IElementType metamodelType = getElementType(linkType); + CreateRelationshipRequest relationShipReq = new CreateRelationshipRequest(metamodelType); + relationShipReq.setSource(source.getElement()); + if (target != null) { + relationShipReq.setTarget(target.getElement()); + } + + ConnectionViewAndElementDescriptor desc = new ConnectionViewAndElementDescriptor(new CreateElementRequestAdapter(relationShipReq), metamodelType instanceof IHintedType ? ((IHintedType) metamodelType).getSemanticHint() : "", PreferencesHint.USE_DEFAULTS); + + CreateConnectionViewAndElementRequest req = new CreateConnectionViewAndElementRequest(desc); + req.setType(RequestConstants.REQ_CONNECTION_START); + + EditPart sourceEditPart = findEditPart(source); + req.setSourceEditPart(sourceEditPart); + // Note: initializes the sourceCommand in the request + Command sourceCmd = sourceEditPart.getCommand(req); + if (sourceCmd == null || !sourceCmd.canExecute()) { + return null; + } + + EditPart targetEditPart = target != null ? findEditPart(target) : null; + if (targetEditPart != null) { + req.setType(RequestConstants.REQ_CONNECTION_END); + req.setTargetEditPart(targetEditPart); + req.setLocation(new Point(0, 0)); + sourceEditPart.getCommand(req); + Command targetCmd = targetEditPart.getCommand(req); + return targetCmd; + } + return null; + } + + protected final Class loadGeneratedClass(String qualifiedClassName) throws ClassNotFoundException { + return myGenProject.loadClass(qualifiedClassName); + } + + protected DiaGenSource getGenModel() { + return mySessionSetup.getGenModel(); + } + + private IElementType getElementType(GenCommonBase genElement) { + Class clazz = null; + try { + clazz = loadGeneratedClass(getGenModel().getGenDiagram().getElementTypesQualifiedClassName()); + } catch (Exception e) { + e.printStackTrace(); + Assert.fail("ElementTypes class not loaded. " + e.getLocalizedMessage()); //$NON-NLS-1$ + } + String identifier = genElement.getUniqueIdentifier(); + try { + Object type = clazz.getField(identifier).get(null); + assert type != null : "Metatype field in the ElementTypes class should be initialized"; //$NON-NLS-1$ + assert type instanceof IElementType : IElementType.class.getName() + ": metamodel type class required"; //$NON-NLS-1$ + return (IElementType) type; + } catch (NoSuchFieldException e) { + Assert.fail("Metamodel type " + identifier + " is not registered"); //$NON-NLS-1$ //$NON-NLS-2$ + } catch (Exception e) { + e.printStackTrace(); + Assert.fail("Can't access metamodel type " + identifier); //$NON-NLS-1$ + } + + return null; + } + } + + private static final class FakeViewer extends NoUpdateViewer implements IDiagramGraphicalViewer{ + private FakeViewer() { + /* + * When extends DiagramGraphicalViewer, don't forget to + * super.hookWorkspacePreferenceStore(new PreferenceStore()); + */ + } + + public void setContents(Object contents) { + GraphicalEditPart epart = (GraphicalEditPart)getEditPartFactory().createEditPart(null, contents); + DiagramEventBroker.startListening(epart.getEditingDomain()); + super.setContents(epart); + } + + public IDiagramEditDomain getDiagramEditDomain() { + return (IDiagramEditDomain) super.getEditDomain(); + } + + public List findEditPartsForElement(String elementIdStr, Class editPartClass) { + return Collections.EMPTY_LIST; + } + + public void registerEditPartForElement(String elementIdStr, EditPart ep) { + } + + public void unregisterEditPartForElement(String elementIdStr, EditPart ep) { + } + } +}