diff options
| author | Pierre Guilet | 2018-08-21 12:50:42 +0000 |
|---|---|---|
| committer | Pierre Guilet | 2018-08-22 09:50:16 +0000 |
| commit | 41f2886c98e5ebe12f5ef7ac231b23172403a14d (patch) | |
| tree | 8e60bfce373c1a828889b1a348c9a8021f9c9504 | |
| parent | 439351165960464c8623456e00ba5faff8fa3059 (diff) | |
| download | org.eclipse.sirius-41f2886c98e5ebe12f5ef7ac231b23172403a14d.tar.gz org.eclipse.sirius-41f2886c98e5ebe12f5ef7ac231b23172403a14d.tar.xz org.eclipse.sirius-41f2886c98e5ebe12f5ef7ac231b23172403a14d.zip | |
[527109] Fix potential class cast exception and test failure
Bug: 527109
Change-Id: I16fd40d4b0b44df86d298b23d8fd3bdbddbe4a90
Signed-off-by: Pierre Guilet <pierre.guilet@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/ui/NoCopyDragEditPartsTrackerEx.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/ui/NoCopyDragEditPartsTrackerEx.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/ui/NoCopyDragEditPartsTrackerEx.java index 9e2bcc6d2f..422b0c8bee 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/ui/NoCopyDragEditPartsTrackerEx.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/ui/NoCopyDragEditPartsTrackerEx.java @@ -93,16 +93,18 @@ public class NoCopyDragEditPartsTrackerEx extends SnapToAllDragEditPartsTracker private boolean isAuthorized() { boolean isAuthorized = true; EditPart movedEditPart = getSourceEditPart(); - EditPartQuery editPartQuery = new EditPartQuery((AbstractBorderedDiagramElementEditPart) movedEditPart); - if (movedEditPart instanceof AbstractBorderedDiagramElementEditPart && (editPartQuery.isInShowingMode() || editPartQuery.isInLayoutingMode())) { - // We are in layouting mode - EditPart targetEditPart = getTargetEditPart(); - // Check if the target container is not the same as before move - boolean notSameContainer = targetEditPart != null - && !(movedEditPart.getParent() == targetEditPart || targetEditPart instanceof CompartmentEditPart && targetEditPart.getParent() == movedEditPart.getParent()); - notSameContainer = notSameContainer && (targetEditPart instanceof IGraphicalEditPart && ((IGraphicalEditPart) targetEditPart).resolveSemanticElement() instanceof DSemanticDecorator); - if (notSameContainer) { - isAuthorized = false; + if (movedEditPart instanceof AbstractBorderedDiagramElementEditPart) { + EditPartQuery editPartQuery = new EditPartQuery((IGraphicalEditPart) movedEditPart); + if (editPartQuery.isInShowingMode() || editPartQuery.isInLayoutingMode()) { + // We are in layouting mode + EditPart targetEditPart = getTargetEditPart(); + // Check if the target container is not the same as before move + boolean notSameContainer = targetEditPart != null + && !(movedEditPart.getParent() == targetEditPart || targetEditPart instanceof CompartmentEditPart && targetEditPart.getParent() == movedEditPart.getParent()); + notSameContainer = notSameContainer && (targetEditPart instanceof IGraphicalEditPart && ((IGraphicalEditPart) targetEditPart).resolveSemanticElement() instanceof DSemanticDecorator); + if (notSameContainer) { + isAuthorized = false; + } } } return isAuthorized; |
