diff options
author | Ansgar Radermacher | 2018-04-06 09:31:21 +0000 |
---|---|---|
committer | Ansgar Radermacher | 2018-04-06 09:31:21 +0000 |
commit | dd97f4643a950b570781d42dfdaeb71b60e5d4ab (patch) | |
tree | 8761cc994e194652a303f05ed18fdb3a98a607d8 /plugins/uml/diagram | |
parent | 06a39da1d40183de9c8a3e7b953cfce1bdaf21fe (diff) | |
download | org.eclipse.papyrus-dd97f4643a950b570781d42dfdaeb71b60e5d4ab.tar.gz org.eclipse.papyrus-dd97f4643a950b570781d42dfdaeb71b60e5d4ab.tar.xz org.eclipse.papyrus-dd97f4643a950b570781d42dfdaeb71b60e5d4ab.zip |
Bug 533283 - [Composite structure diagram] Moving a nested classifier creates a port
- Add drop request check before applying a drop strategy
Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>
Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>
Diffstat (limited to 'plugins/uml/diagram')
-rwxr-xr-x | plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.dnd/src/org/eclipse/papyrus/uml/diagram/dnd/strategy/TypeToClassDropStrategy.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.dnd/src/org/eclipse/papyrus/uml/diagram/dnd/strategy/TypeToClassDropStrategy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.dnd/src/org/eclipse/papyrus/uml/diagram/dnd/strategy/TypeToClassDropStrategy.java index 19fc79408a6..aa223c55c54 100755 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.dnd/src/org/eclipse/papyrus/uml/diagram/dnd/strategy/TypeToClassDropStrategy.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.dnd/src/org/eclipse/papyrus/uml/diagram/dnd/strategy/TypeToClassDropStrategy.java @@ -21,6 +21,7 @@ import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gmf.runtime.diagram.core.services.ViewService; import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; +import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest; import org.eclipse.papyrus.infra.gmfdiag.dnd.strategy.TransactionalDropStrategy; import org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeEditPart; import org.eclipse.swt.graphics.Image; @@ -70,18 +71,20 @@ public class TypeToClassDropStrategy extends TransactionalDropStrategy { @Override public Command doGetCommand(Request request, final EditPart targetEditPart) { - List<EObject> sourceElements = getSourceEObjects(request); - if (!sourceElements.isEmpty() && targetEditPart instanceof GraphicalEditPart) { - GraphicalEditPart graphicalEditPart = (GraphicalEditPart) targetEditPart; - EObject semanticElement = graphicalEditPart.resolveSemanticElement(); - if (semanticElement instanceof org.eclipse.uml2.uml.Class) { - org.eclipse.uml2.uml.Class clazz = (org.eclipse.uml2.uml.Class) semanticElement; - EObject eObject = sourceElements.get(0); - if (eObject instanceof Type) { - if (graphicalEditPart instanceof ClassCompositeEditPart) { - return getDropTypeOnClassifierCommand((ClassCompositeEditPart) graphicalEditPart, (Type) eObject, clazz); - } else if (graphicalEditPart.getParent() instanceof ClassCompositeEditPart) { - return getDropTypeOnClassifierCommand((ClassCompositeEditPart) graphicalEditPart.getParent(), (Type) eObject, clazz); + if (request instanceof DropObjectsRequest) { + List<EObject> sourceElements = getSourceEObjects(request); + if (!sourceElements.isEmpty() && targetEditPart instanceof GraphicalEditPart) { + GraphicalEditPart graphicalEditPart = (GraphicalEditPart) targetEditPart; + EObject semanticElement = graphicalEditPart.resolveSemanticElement(); + if (semanticElement instanceof org.eclipse.uml2.uml.Class) { + org.eclipse.uml2.uml.Class clazz = (org.eclipse.uml2.uml.Class) semanticElement; + EObject eObject = sourceElements.get(0); + if (eObject instanceof Type) { + if (graphicalEditPart instanceof ClassCompositeEditPart) { + return getDropTypeOnClassifierCommand((ClassCompositeEditPart) graphicalEditPart, (Type) eObject, clazz); + } else if (graphicalEditPart.getParent() instanceof ClassCompositeEditPart) { + return getDropTypeOnClassifierCommand((ClassCompositeEditPart) graphicalEditPart.getParent(), (Type) eObject, clazz); + } } } } |