diff options
| author | Pierre-Charles David | 2015-08-10 08:40:47 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2015-09-11 14:30:05 +0000 |
| commit | 5f188ca0be9ec00fe810360d29fbeb8d3b9ba253 (patch) | |
| tree | d2871e334e69d0f0ac04e161e692b72e67249457 | |
| parent | dbf2a07899bc5c6774211ef8a4ef1caba97d78cb (diff) | |
| download | org.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.java | 18 |
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; } /** |
