diff options
author | mgolubev | 2015-08-07 06:56:21 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2015-08-28 08:35:25 +0000 |
commit | 4c31b93a9219b39d58ab763f867302de4f9bb877 (patch) | |
tree | 28e7e5d967eb84d050a6c6cd10130fbef142c6c3 | |
parent | 5be507cd921e443799cedc9cb32c7f5d32176c95 (diff) | |
download | org.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>
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; + } + + } + } |