diff options
| author | Maxime Porhel | 2015-09-11 15:42:51 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2015-09-14 09:53:02 +0000 |
| commit | 0f636b815543dc6330e1641fb662958b37a18618 (patch) | |
| tree | 3e99108eca48b4a99d76c8774a26a405fe47f77e | |
| parent | d5fdd89eb12714b0a0d1ccb73a54daa3065b45a7 (diff) | |
| download | org.eclipse.sirius-0f636b815543dc6330e1641fb662958b37a18618.tar.gz org.eclipse.sirius-0f636b815543dc6330e1641fb662958b37a18618.tar.xz org.eclipse.sirius-0f636b815543dc6330e1641fb662958b37a18618.zip | |
[477208] Make the DDiagramElementContainer name parts non selectable
The previous behavior is common between DNodeList and DNodeContainer
name edit parts since Bug 424417 in which code from container name parts
have been duplicated in list name parts.
The getParent().isSelectable() == EditPart.SELECTED has been introduce
before the move to open source.
This test is weird, it make the name part selectable only when the main
part is in secondary selection (see EditPart.SELECTED vs
EditPart.SELECTED_PRIMARY). Furthermore, the container/list/region name
parts cannot be moved and the direct edit works. So we can simply always
return false in isSelectable().
The IllegalArgumentException occured because the drag tracker saw the
name edit part as a selectable part (its parent is secondary selected)
but during the set selection the AbstractEditPartView call
primDeselectAll() which change the isSelectable() status of the
DDiagramElementContainer name edit parts.
Bug: 477208
Change-Id: I3830cafcbeca436274c63bd297bf16c96b1294af
Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/AbstractDiagramElementContainerNameEditPart.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/AbstractDiagramElementContainerNameEditPart.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/AbstractDiagramElementContainerNameEditPart.java index e4ff140542..82fc8d74cd 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/AbstractDiagramElementContainerNameEditPart.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/AbstractDiagramElementContainerNameEditPart.java @@ -14,9 +14,7 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.draw2d.IFigure; -import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.GraphicalEditPart; import org.eclipse.gef.Request; @@ -47,20 +45,24 @@ public abstract class AbstractDiagramElementContainerNameEditPart extends Abstra * * @not-generated */ + @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicy() { + @Override protected List createSelectionHandles() { List handles = new ArrayList(); NonResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), handles); return handles; } + @Override public Command getCommand(Request request) { return null; } + @Override public boolean understandsRequest(Request request) { return false; } @@ -83,12 +85,13 @@ public abstract class AbstractDiagramElementContainerNameEditPart extends Abstra */ @Override public boolean isSelectable() { - return super.isSelectable() && getParent().getSelected() == EditPart.SELECTED; + return false; } /** * @was-generated */ + @Override protected void handleNotificationEvent(Notification event) { Object feature = event.getFeature(); if (DiagramPackage.eINSTANCE.getDDiagramElementContainer_OwnedStyle() == feature) { @@ -100,6 +103,7 @@ public abstract class AbstractDiagramElementContainerNameEditPart extends Abstra /** * @was-generated */ + @Override protected IFigure createFigure() { // Parent should assign one using setLabel() method return null; @@ -108,6 +112,7 @@ public abstract class AbstractDiagramElementContainerNameEditPart extends Abstra /** * @not-generated */ + @Override public void setLabel(IFigure figure) { if (figure instanceof SiriusWrapLabel) { this.setLabel((SiriusWrapLabel) figure); |
