diff options
author | cletavernie | 2012-12-06 12:28:02 +0000 |
---|---|---|
committer | cletavernie | 2012-12-06 12:28:02 +0000 |
commit | cbb4b3e7cebe52619767c2ff19434dbbdb739a26 (patch) | |
tree | 6abaedbffc05893dba786a9a18869fe2c1b7cb58 /plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.dnd/src | |
parent | 49b1b475258ffce1a342c3a2aef909874a74f9f0 (diff) | |
download | org.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')
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;
}
|