Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-09-21 12:07:31 +0000
committercletavernie2012-09-21 12:07:31 +0000
commit3fc2989a29f8a5ce79ea0bc5a78f7a7bb0a76e71 (patch)
tree2b823f514a799400ea042765d80d180a0433ef8a
parente6bbe976f6de2cf472bbb9442cd5a1f7d121067e (diff)
downloadorg.eclipse.papyrus-3fc2989a29f8a5ce79ea0bc5a78f7a7bb0a76e71.tar.gz
org.eclipse.papyrus-3fc2989a29f8a5ce79ea0bc5a78f7a7bb0a76e71.tar.xz
org.eclipse.papyrus-3fc2989a29f8a5ce79ea0bc5a78f7a7bb0a76e71.zip
390093: [Activity Diagram] StackOverFlow when moving an element in the Activity Diagram
https://bugs.eclipse.org/bugs/show_bug.cgi?id=390093
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
index 3548bcbd084..450fb1a6de6 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java
@@ -21,6 +21,7 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
@@ -101,10 +102,16 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
command = getCreationCommand(request);
} else if(defaultCreationEditPolicy != null) {
//Creation request
- if(defaultCreationEditPolicy.getTargetEditPart(request) != getTargetEditPart(request)) {
- command = defaultCreationEditPolicy.getTargetEditPart(request).getCommand(request);
+ if(defaultCreationEditPolicy.understandsRequest(request)) {
+ EditPart defaultTargetEditPart = defaultCreationEditPolicy.getTargetEditPart(request);
+ EditPart myTargetEditPart = getTargetEditPart(request);
+ if(defaultTargetEditPart != myTargetEditPart) {
+ command = defaultTargetEditPart.getCommand(request);
+ } else {
+ command = defaultCreationEditPolicy.getCommand(request);
+ }
} else {
- command = defaultCreationEditPolicy.getCommand(request);
+ command = null;
}
} else {
command = null;

Back to the top