Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoratischenko2014-09-01 19:04:54 +0000
committerCamille Letavernier2014-09-12 15:53:15 +0000
commitbd31548ee1271a0eb812d3f2710b9cad4cb46265 (patch)
tree8f1b63d017f08af1f208a2b2d5338b03ed30d38c
parent52d5de5e53a95c09a55d7dc070a178f375cb4051 (diff)
downloadorg.eclipse.papyrus-bd31548ee1271a0eb812d3f2710b9cad4cb46265.tar.gz
org.eclipse.papyrus-bd31548ee1271a0eb812d3f2710b9cad4cb46265.tar.xz
org.eclipse.papyrus-bd31548ee1271a0eb812d3f2710b9cad4cb46265.zip
[406430] - ExpansionNodes cannot be drag&drop on its expansionRegion in
diagram from modelExplorer Signed-off-by: atischenko <ticher777@gmail.com>
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/activitygroup/editpolicy/ExpansionRegionCompartmentDnDEditPolicy.java77
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.gmfgen2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.java4
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/AllCanonicalTests.java3
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/TestDropObjects.java193
5 files changed, 275 insertions, 4 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/activitygroup/editpolicy/ExpansionRegionCompartmentDnDEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/activitygroup/editpolicy/ExpansionRegionCompartmentDnDEditPolicy.java
new file mode 100644
index 00000000000..434d6b32b88
--- /dev/null
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/activitygroup/editpolicy/ExpansionRegionCompartmentDnDEditPolicy.java
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST and others.
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.activity.activitygroup.editpolicy;
+
+import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.CreateCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionNodeAsInEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionNodeAsOutEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.policies.ActivityGroupCustomDragAndDropEditPolicy;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.ExpansionNode;
+
+
+public class ExpansionRegionCompartmentDnDEditPolicy extends ActivityGroupCustomDragAndDropEditPolicy {
+
+ @Override
+ protected IUndoableOperation getDropObjectCommand(DropObjectsRequest dropRequest, EObject droppedObject) {
+ if (isExpansionNode(droppedObject)) {
+ return dropExpansionNode((ExpansionNode) droppedObject);
+ }
+ return super.getDropObjectCommand(dropRequest, droppedObject);
+ }
+
+ public IUndoableOperation dropExpansionNode(ExpansionNode expNode) {
+ int visualID = 0;
+ if (expNode.getRegionAsInput() != null) {
+ visualID = ExpansionNodeAsInEditPart.VISUAL_ID;
+ } else {
+ visualID = ExpansionNodeAsOutEditPart.VISUAL_ID;
+ }
+ CompositeCommand wrapCommand = new CompositeCommand("Wrap drop command");
+ IGraphicalEditPart graphicalParent;
+ if (getHost() instanceof ShapeCompartmentEditPart) {
+ graphicalParent = (IGraphicalEditPart) getHost().getParent();
+ } else {
+ graphicalParent = (IGraphicalEditPart) getHost();
+ }
+ wrapCommand.add(getCreateViewCommand(graphicalParent, expNode, visualID));
+ return wrapCommand;
+ }
+
+ protected ICommand getCreateViewCommand(IGraphicalEditPart parent, Element droppedElement, int nodeVISUALID) {
+ IAdaptable elementAdapter = new EObjectAdapter(droppedElement);
+ ViewDescriptor descriptor = new ViewDescriptor(elementAdapter, Node.class, ((IHintedType) getUMLElementType(nodeVISUALID)).getSemanticHint(), ViewUtil.APPEND, true, getDiagramPreferencesHint());
+
+ CreateCommand c = new CreateCommand(getEditingDomain(), descriptor, parent.getPrimaryView());
+
+ return c.canExecute() ? c : org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand.INSTANCE;
+ }
+
+ private boolean isExpansionNode(EObject droppedElement) {
+ return droppedElement instanceof ExpansionNode;
+ }
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.gmfgen b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.gmfgen
index a003a279c10..5aa284933f9 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.gmfgen
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.gmfgen
@@ -3564,7 +3564,7 @@
<compartments visualID="7009" editPartClassName="ExpansionRegionStructuredActivityNodeContentCompartmentEditPart" itemSemanticEditPolicyClassName="ExpansionRegionStructuredActivityNodeContentCompartmentItemSemanticEditPolicy" notationViewFactoryClassName="ExpansionRegionStructuredActivityNodeContentCompartmentViewFactory" canonicalEditPolicyClassName="ExpansionRegionStructuredActivityNodeContentCompartmentCanonicalEditPolicy" childNodes="/0/@diagram/@childNodes.3 /0/@diagram/@childNodes.4 /0/@diagram/@childNodes.5 /0/@diagram/@childNodes.6 /0/@diagram/@childNodes.11 /0/@diagram/@childNodes.16 /0/@diagram/@childNodes.32 /0/@diagram/@childNodes.33 /0/@diagram/@childNodes.34 /0/@diagram/@childNodes.35 /0/@diagram/@childNodes.36 /0/@diagram/@childNodes.37 /0/@diagram/@childNodes.44 /0/@diagram/@childNodes.52 /0/@diagram/@childNodes.54 /0/@diagram/@childNodes.56 /0/@diagram/@childNodes.57 /0/@diagram/@childNodes.60 /0/@diagram/@childNodes.64 /0/@diagram/@childNodes.65 /0/@diagram/@childNodes.70 /0/@diagram/@childNodes.24 /0/@diagram/@childNodes.25 /0/@diagram/@childNodes.26 /0/@diagram/@childNodes.27 /0/@diagram/@childNodes.28 /0/@diagram/@childNodes.29 /0/@diagram/@childNodes.30 /0/@diagram/@childNodes.31 /0/@diagram/@childNodes.73 /0/@diagram/@childNodes.76 /0/@diagram/@childNodes.79 /0/@diagram/@childNodes.83 /0/@diagram/@childNodes.85 /0/@diagram/@childNodes.87 /0/@diagram/@childNodes.90 /0/@diagram/@childNodes.92 /0/@diagram/@childNodes.69 /0/@diagram/@childNodes.93" title="StructuredActivityNodeContentCompartment" canCollapse="false" needsTitle="false" node="/0/@diagram/@childNodes.57" listLayout="false">
<diagramRunTimeClass href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
<viewmap xsi:type="gmfgen:ParentAssignedViewmap" getterName="getStructuredActivityNodeCompartment" figureQualifiedClassName="org.eclipse.draw2d.RoundedRectangle"/>
- <behaviour xsi:type="gmfgen:CustomBehaviour" key="EditPolicyRoles.DRAG_DROP_ROLE" editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.activity.edit.policies.ActivityGroupCustomDragAndDropEditPolicy"/>
+ <behaviour xsi:type="gmfgen:CustomBehaviour" key="EditPolicyRoles.DRAG_DROP_ROLE" editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.activity.activitygroup.editpolicy.ExpansionRegionCompartmentDnDEditPolicy"/>
<behaviour xsi:type="gmfgen:CustomBehaviour" key="&quot;RemoveOrphanView&quot;" editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.activity.edit.policies.RemoveOrphanViewPolicy"/>
<behaviour xsi:type="gmfgen:CustomBehaviour" key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.SEMANTIC_ROLE" editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.activity.edit.policies.CustomExpansionRegionStructuredActivityNodeContentCompartmentItemSemanticEditPolicy"/>
<behaviour xsi:type="gmfgen:CustomBehaviour" key="org.eclipse.gef.EditPolicy.GRAPHICAL_NODE_ROLE" editPolicyQualifiedClassName="org.eclipse.papyrus.uml.diagram.common.editpolicies.CustomContainerEditPolicy"/>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.java
index f8a4427c9f4..e9eda154aee 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.java
@@ -27,7 +27,7 @@ import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.uml.diagram.activity.edit.policies.ActivityGroupCustomDragAndDropEditPolicy;
+import org.eclipse.papyrus.uml.diagram.activity.activitygroup.editpolicy.ExpansionRegionCompartmentDnDEditPolicy;
import org.eclipse.papyrus.uml.diagram.activity.edit.policies.CustomExpansionRegionStructuredActivityNodeContentCompartmentItemSemanticEditPolicy;
import org.eclipse.papyrus.uml.diagram.activity.edit.policies.ExpansionRegionStructuredActivityNodeContentCompartmentItemSemanticEditPolicy;
import org.eclipse.papyrus.uml.diagram.activity.edit.policies.RemoveOrphanViewPolicy;
@@ -85,7 +85,7 @@ public class ExpansionRegionStructuredActivityNodeContentCompartmentEditPart ext
installEditPolicy(DuplicatePasteEditPolicy.PASTE_ROLE, new DuplicatePasteEditPolicy());
// in Papyrus diagrams are not strongly synchronised
// installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CANONICAL_ROLE, new org.eclipse.papyrus.uml.diagram.activity.edit.policies.ExpansionRegionStructuredActivityNodeContentCompartmentCanonicalEditPolicy());
- installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new ActivityGroupCustomDragAndDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new ExpansionRegionCompartmentDnDEditPolicy());
installEditPolicy("RemoveOrphanView", new RemoveOrphanViewPolicy()); //$NON-NLS-1$
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new CustomExpansionRegionStructuredActivityNodeContentCompartmentItemSemanticEditPolicy());
installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new CustomContainerEditPolicy());
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/AllCanonicalTests.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/AllCanonicalTests.java
index 8991c541710..e9d34866f20 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/AllCanonicalTests.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/AllCanonicalTests.java
@@ -25,7 +25,8 @@ import org.junit.runners.Suite.SuiteClasses;
TestActivityDiagramChildNode.class,
// TestActivityDiagramChildWithOtherCreationNode.class,
TestActivityChildNodeInStructuredActivity.class,
-TestActivityGroup.class
+TestActivityGroup.class,
+TestDropObjects.class
})
public class AllCanonicalTests {
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/TestDropObjects.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/TestDropObjects.java
new file mode 100644
index 00000000000..398e1ace59c
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity.tests/src/org/eclipse/papyrus/uml/diagram/activity/tests/canonical/TestDropObjects.java
@@ -0,0 +1,193 @@
+package org.eclipse.papyrus.uml.diagram.activity.tests.canonical;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequestFactory;
+import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.tooling.runtime.update.DiagramUpdater;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityActivityContentCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionNodeAsInEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionRegionEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.edit.parts.ExpansionRegionStructuredActivityNodeContentCompartmentEditPart;
+import org.eclipse.papyrus.uml.diagram.activity.part.UMLDiagramUpdater;
+import org.eclipse.papyrus.uml.diagram.activity.part.UMLVisualIDRegistry;
+import org.eclipse.papyrus.uml.diagram.activity.providers.UMLElementTypes;
+import org.eclipse.papyrus.uml.diagram.activity.tests.IActivityDiagramTestsConstants;
+import org.junit.Test;
+
+/**
+ * Testing drop action.
+ */
+public class TestDropObjects extends AbstractPapyrusTestCase {
+
+ @Override
+ protected String getProjectName() {
+ return IActivityDiagramTestsConstants.PROJECT_NAME;
+ }
+
+ @Override
+ protected String getFileName() {
+ return IActivityDiagramTestsConstants.FILE_NAME;
+ }
+
+ public DiagramUpdater getDiagramUpdater() {
+ return UMLDiagramUpdater.TYPED_INSTANCE;
+ }
+
+ /**
+ * create childNodeEditPart in parentEditPart
+ */
+ protected IGraphicalEditPart createChild(int childVID, IGraphicalEditPart container) {
+ final IElementType childType = UMLElementTypes.getElementType(childVID);
+ final CreateViewRequest requestcreation = CreateViewRequestFactory.getCreateShapeRequest(childType, container.getDiagramPreferencesHint());
+ requestcreation.setSize(new Dimension(1, 1));
+ requestcreation.setLocation(new Point(10, 10));
+ Command cmd = container.getCommand(requestcreation);
+ executeOnUIThread(cmd);
+ return findChildBySemanticHint(container, childVID);
+ }
+
+ private IGraphicalEditPart findChildBySemanticHint(IGraphicalEditPart parent, int vid) {
+ IGraphicalEditPart childEP = parent.getChildBySemanticHint(Integer.toString(vid));
+ assertNotNull("Parent " + parent + ", type " + parent.getNotationView() + " looking for: " + vid, childEP);
+ return childEP;
+ }
+
+ protected IGraphicalEditPart getActivityCompartmentEditPart() {
+ IGraphicalEditPart activityEP = findChildBySemanticHint(getDiagramEditPart(), ActivityEditPart.VISUAL_ID);
+ return findChildBySemanticHint(activityEP, ActivityActivityContentCompartmentEditPart.VISUAL_ID);
+ }
+
+ @Test
+ public void testExpansionNodeInExpansionRegionCompartment() throws Exception {
+ IGraphicalEditPart regionEP = createChild(ExpansionRegionEditPart.VISUAL_ID, getActivityCompartmentEditPart());
+ IGraphicalEditPart regionCompartmentEP = findChildBySemanticHint(regionEP, ExpansionRegionStructuredActivityNodeContentCompartmentEditPart.VISUAL_ID);
+ IGraphicalEditPart expansionNode = createChild(ExpansionNodeAsInEditPart.VISUAL_ID, regionEP);
+
+ DropObjectSequence dropSeq = new DropObjectSequence(expansionNode, regionEP, regionCompartmentEP);
+ dropSeq.doSequence();
+ }
+
+ /**
+ * Sequence for manage and testing drop object action
+ *
+ */
+ public class DropObjectSequence {
+
+ private final IGraphicalEditPart myChild;
+
+ private final IGraphicalEditPart myParent;
+
+ private final IGraphicalEditPart myDropParent;
+
+ public DropObjectSequence(IGraphicalEditPart childEP, IGraphicalEditPart parentEP, IGraphicalEditPart dropParent) {
+ assertNotNull(childEP);
+ assertNotNull(parentEP);
+ assertNotNull(dropParent);
+
+ myChild = childEP;
+ myParent = parentEP;
+ myDropParent = dropParent;
+
+ assertNotEquals(myChild, myParent);
+ assertNotEquals(myChild, myDropParent);
+ }
+
+ public void doSequence() {
+ testBeforeRemoveView();
+ EObject objectToDrop = doHideChild();
+ testHide();
+ IGraphicalEditPart newGrapticalChild = doDrop(objectToDrop);
+ testDrop(newGrapticalChild);
+ }
+
+ protected void testBeforeRemoveView() {
+ testGraphicalEditParts((IGraphicalEditPart)getChildEP().getParent(), getParentEP());
+
+ EObject childObject = getChildEP().resolveSemanticElement();
+ EObject parentObject = getParentEP().resolveSemanticElement();
+
+ testSemantic(parentObject, childObject.eContainer());
+ }
+
+ protected EObject doHideChild() {
+ EObject result = getChildEP().resolveSemanticElement();
+ Command deleteChild = getChildEP().getCommand(new GroupRequest(RequestConstants.REQ_DELETE));
+ assertTrue(deleteChild.canExecute());
+ executeOnUIThread(deleteChild);
+ return result;
+ }
+
+ protected void testHide() {
+ List<?> childrenAfterHide = getParentEP().getChildren();
+ for (Object child : childrenAfterHide) {
+ assertNotEquals(child, getChildEP());
+ }
+ }
+
+ private int getChildVID() {
+ return UMLVisualIDRegistry.getVisualID(getChildEP().getNotationView());
+ }
+
+ protected IGraphicalEditPart doDrop(EObject objectToDrop) {
+ DropObjectsRequest req = createRequest(objectToDrop);
+ Command dropCommand = myDropParent.getCommand(req);
+ assertTrue(dropCommand.canExecute());
+ executeOnUIThread(dropCommand);
+ return findChildBySemanticHint(getParentEP(), getChildVID());
+ }
+
+ private DropObjectsRequest createRequest(EObject objectToDrop) {
+ DropObjectsRequest result = new DropObjectsRequest();
+ result.setObjects(Arrays.asList(objectToDrop));
+ result.setType(org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DROP_OBJECTS);
+ result.setLocation(new Point(1, 1));
+ return result;
+ }
+
+ protected void testDrop(IGraphicalEditPart childEP) {
+ testGraphicalEditParts((IGraphicalEditPart)childEP.getParent(), getParentEP());
+
+ EObject childObject = childEP.resolveSemanticElement();
+ EObject parentObject = getParentEP().resolveSemanticElement();
+
+ testSemantic(parentObject, childObject.eContainer());
+ }
+
+ public final IGraphicalEditPart getChildEP() {
+ return myChild;
+ }
+
+ public final IGraphicalEditPart getParentEP() {
+ return myParent;
+ }
+
+ public final IGraphicalEditPart getDropParentEP() {
+ return myDropParent;
+ }
+
+ protected void testSemantic(EObject parent, EObject expected) {
+ assertEquals(parent, expected);
+ }
+
+ protected void testGraphicalEditParts(IGraphicalEditPart parent, IGraphicalEditPart expected) {
+ assertEquals(parent, expected);
+ }
+ }
+}

Back to the top