Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2015-08-10 08:40:47 +0000
committerPierre-Charles David2015-08-10 08:40:50 +0000
commitcb3b9eef35b9eea2cd9000a0c12fcf157c9f1111 (patch)
treea8fc159d9afb2107e93eabf398e0f858baefbf19
parenta55479375c6d47e65d905b88ec3f868aa016db65 (diff)
downloadorg.eclipse.sirius-cb3b9eef35b9eea2cd9000a0c12fcf157c9f1111.tar.gz
org.eclipse.sirius-cb3b9eef35b9eea2cd9000a0c12fcf157c9f1111.tar.xz
org.eclipse.sirius-cb3b9eef35b9eea2cd9000a0c12fcf157c9f1111.zip
[430086] Fix potential ClassCastException
Avoid unchecked cast in GEF's getCurrentConstraintFor() by inlining a slightly more robust version in our overridden method. Bug: 430086 Change-Id: I60df6bc6623329e6e1ff0e53e7e80c1ca11be8f5 Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/AirXYLayoutEditPolicy.java18
1 files changed, 8 insertions, 10 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/AirXYLayoutEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/AirXYLayoutEditPolicy.java
index be83fe5554..6d7f735cd6 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/AirXYLayoutEditPolicy.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/AirXYLayoutEditPolicy.java
@@ -14,6 +14,7 @@ import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.draw2d.FigureCanvas;
+import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
@@ -258,18 +259,15 @@ public class AirXYLayoutEditPolicy extends XYLayoutEditPolicy {
return element instanceof DNodeContainer && new DNodeContainerExperimentalQuery((DNodeContainer) element).isRegionContainer();
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.gef.editpolicies.XYLayoutEditPolicy#getCurrentConstraintFor(org.eclipse.gef.GraphicalEditPart)
- */
@Override
- protected Rectangle getCurrentConstraintFor(final GraphicalEditPart child) {
- Rectangle result = super.getCurrentConstraintFor(child);
- if (result == null) {
- result = new Rectangle(0, 0, -1, -1);
+ protected Rectangle getCurrentConstraintFor(GraphicalEditPart child) {
+ IFigure fig = child.getFigure();
+ Object constraint = fig.getParent().getLayoutManager().getConstraint(fig);
+ if (constraint instanceof Rectangle) {
+ return (Rectangle) constraint;
+ } else {
+ return new Rectangle(0, 0, -1, -1);
}
- return result;
}
/**

Back to the top