Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-12-06 12:28:02 +0000
committercletavernie2012-12-06 12:28:02 +0000
commitcbb4b3e7cebe52619767c2ff19434dbbdb739a26 (patch)
tree6abaedbffc05893dba786a9a18869fe2c1b7cb58 /plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src
parent49b1b475258ffce1a342c3a2aef909874a74f9f0 (diff)
downloadorg.eclipse.papyrus-cbb4b3e7cebe52619767c2ff19434dbbdb739a26.tar.gz
org.eclipse.papyrus-cbb4b3e7cebe52619767c2ff19434dbbdb739a26.tar.xz
org.eclipse.papyrus-cbb4b3e7cebe52619767c2ff19434dbbdb739a26.zip
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/policy/CustomizableDropEditPolicy.java12
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/AbstractDropStrategy.java10
2 files changed, 16 insertions, 6 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 2a150acc874..191f159d7eb 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
@@ -126,13 +126,17 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
@Override
public boolean understandsRequest(Request request) {
- return this.understands(request) || (defaultCreationEditPolicy != null && defaultCreationEditPolicy.understandsRequest(request)) || (defaultDropEditPolicy != null && defaultDropEditPolicy.understandsRequest(request));
+ return this.understands(request) || (defaultCreationEditPolicy != null && defaultCreationEditPolicy.understandsRequest(request)) || (defaultDropEditPolicy != null && defaultDropEditPolicy.understandsRequest(request)) || isCustomRequest(request);
}
protected boolean understands(Request request) {
return RequestConstants.REQ_ADD.equals(request.getType());
}
+ protected boolean isCustomRequest(Request request) {
+ return !findStrategies(request).isEmpty();
+ }
+
protected Command getCreationCommand(Request request) {
return getCustomCommand(request);
}
@@ -300,17 +304,17 @@ public class CustomizableDropEditPolicy extends DragDropEditPolicy {
super.showTargetFeedback(request);
}
}
-
+
/**
* {@inheritDoc}
*/
@Override
public EditPart getTargetEditPart(Request request) {
// when default creation edit policy is not overriden and request is a creation request, target edit part should be computed by the default edit policy itself
- if(!super.understandsRequest(request) && !this.understands(request) && (defaultCreationEditPolicy != null && defaultCreationEditPolicy.understandsRequest(request))) {
+ if(!super.understandsRequest(request) && !this.understands(request) && (defaultCreationEditPolicy != null && defaultCreationEditPolicy.understandsRequest(request))) {
return defaultCreationEditPolicy.getTargetEditPart(request);
}
return super.getTargetEditPart(request);
}
-
+
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/AbstractDropStrategy.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/AbstractDropStrategy.java
index 3eeb2d47cdf..79e541527f8 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/AbstractDropStrategy.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src/org/eclipse/papyrus/infra/gmfdiag/dnd/strategy/AbstractDropStrategy.java
@@ -71,9 +71,15 @@ public abstract class AbstractDropStrategy implements DropStrategy {
protected List<Object> getSourceObjects(Request request) {
List<Object> result = new LinkedList<Object>();
if(request instanceof DropObjectsRequest) {
- result.addAll(((DropObjectsRequest)request).getObjects());
+ List objects = ((DropObjectsRequest)request).getObjects();
+ if(objects != null) {
+ result.addAll(objects);
+ }
} else if(request instanceof GroupRequest) {
- result.addAll(((ChangeBoundsRequest)request).getEditParts());
+ List editParts = ((ChangeBoundsRequest)request).getEditParts();
+ if(editParts != null) {
+ result.addAll(editParts);
+ }
}
return result;
}

Back to the top