Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2015-09-11 15:42:51 +0000
committerMaxime Porhel2015-09-14 12:14:11 +0000
commitaf1d22c7376477e55a3dc84e844f7be1ff527026 (patch)
tree2e7d1582b99560aac2c9bccf0c58c94f99623696
parent9cf1783c487c077ba2915922ec5e8a4679a30ce0 (diff)
downloadorg.eclipse.sirius-af1d22c7376477e55a3dc84e844f7be1ff527026.tar.gz
org.eclipse.sirius-af1d22c7376477e55a3dc84e844f7be1ff527026.tar.xz
org.eclipse.sirius-af1d22c7376477e55a3dc84e844f7be1ff527026.zip
[477211] 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: 477211 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.java11
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);

Back to the top