diff options
author | cletavernie | 2012-09-21 12:07:31 +0000 |
---|---|---|
committer | cletavernie | 2012-09-21 12:07:31 +0000 |
commit | 3fc2989a29f8a5ce79ea0bc5a78f7a7bb0a76e71 (patch) | |
tree | 2b823f514a799400ea042765d80d180a0433ef8a | |
parent | e6bbe976f6de2cf472bbb9442cd5a1f7d121067e (diff) | |
download | org.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.java | 13 |
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;
|