Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2015-08-10 08:40:47 +0000
committerPierre-Charles David2015-09-11 14:30:05 +0000
commit5f188ca0be9ec00fe810360d29fbeb8d3b9ba253 (patch)
treed2871e334e69d0f0ac04e161e692b72e67249457
parentdbf2a07899bc5c6774211ef8a4ef1caba97d78cb (diff)
downloadorg.eclipse.sirius-5f188ca0be9ec00fe810360d29fbeb8d3b9ba253.tar.gz
org.eclipse.sirius-5f188ca0be9ec00fe810360d29fbeb8d3b9ba253.tar.xz
org.eclipse.sirius-5f188ca0be9ec00fe810360d29fbeb8d3b9ba253.zip
[477205] Fix potential ClassCastException
Avoid unchecked cast in GEF's getCurrentConstraintFor() by inlining a slightly more robust version in our overridden method. Bug: 477205 Change-Id: I4da768b0f1e83679334929fe25907036c1a75e37 Cherry-picks: cb3b9eef35b9eea2cd9000a0c12fcf157c9f1111 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