Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormgolubev2015-08-07 06:56:21 +0000
committerGerrit Code Review @ Eclipse.org2015-08-28 08:35:25 +0000
commit4c31b93a9219b39d58ab763f867302de4f9bb877 (patch)
tree28e7e5d967eb84d050a6c6cd10130fbef142c6c3
parent5be507cd921e443799cedc9cb32c7f5d32176c95 (diff)
downloadorg.eclipse.papyrus-4c31b93a9219b39d58ab763f867302de4f9bb877.tar.gz
org.eclipse.papyrus-4c31b93a9219b39d58ab763f867302de4f9bb877.tar.xz
org.eclipse.papyrus-4c31b93a9219b39d58ab763f867302de4f9bb877.zip
Bug 472023: Replaces default SNAP_FEEDBACK_ROLE policy with the one
which does not respond to link creation requests. Thus overlapping external labels does not block link attachment to their "main" nodes. Change-Id: I341e4a5faf6912898bb23362065b42f84316a863 Signed-off-by: mgolubev <golubev@montages.com>
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/FlowFinalNodeAppliedStereotypeEditPart.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/AbstractLabelEditPart.java36
2 files changed, 36 insertions, 2 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/FlowFinalNodeAppliedStereotypeEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/FlowFinalNodeAppliedStereotypeEditPart.java
index eb307fbc7ba..0dea6423457 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/FlowFinalNodeAppliedStereotypeEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/src/org/eclipse/papyrus/uml/diagram/activity/edit/parts/FlowFinalNodeAppliedStereotypeEditPart.java
@@ -93,7 +93,7 @@ import org.eclipse.uml2.uml.Feature;
/**
* @generated NOT implements IPapyrusEditPart
*/
-public class FlowFinalNodeAppliedStereotypeEditPart extends LabelEditPart implements ITextAwareEditPart, IBorderItemEditPart, IPapyrusEditPart {
+public class FlowFinalNodeAppliedStereotypeEditPart extends AbstractLabelEditPart implements ITextAwareEditPart, IBorderItemEditPart, IPapyrusEditPart {
/**
* @generated
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/AbstractLabelEditPart.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/AbstractLabelEditPart.java
index dab3f7d47e5..86749192bad 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/AbstractLabelEditPart.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/editparts/AbstractLabelEditPart.java
@@ -15,6 +15,10 @@
package org.eclipse.papyrus.uml.diagram.common.editparts;
import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.internal.editpolicies.LabelSnapBackEditPolicy;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.infra.gmfdiag.common.editpart.IPapyrusEditPart;
import org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart;
@@ -30,7 +34,6 @@ public abstract class AbstractLabelEditPart extends PapyrusLabelEditPart impleme
}
/**
- *
* {@inheritDoc}
*/
@Override
@@ -38,4 +41,35 @@ public abstract class AbstractLabelEditPart extends PapyrusLabelEditPart impleme
return getFigure();
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SNAP_FEEDBACK_ROLE, new LabelSnapBackEditPolicyExt());
+ }
+
+ /**
+ * Overrides default {@link LabelSnapBackEditPolicy} with correct coordination
+ * between {@link #getCommand(Request)} and {@link #getTargetEditPart(Request)}.
+ *
+ * @see bug 472023
+ */
+ private static class LabelSnapBackEditPolicyExt extends LabelSnapBackEditPolicy {
+
+ /**
+ * In contrast to the super-class, this edit-policy does NOT return the host EP as a target
+ * for those requests it does NOT understand.
+ *
+ * @param request
+ * @return
+ */
+ @Override
+ public EditPart getTargetEditPart(Request request) {
+ return understandsRequest(request) ? getHost() : null;
+ }
+
+ }
+
}

Back to the top