diff options
Diffstat (limited to 'plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/operation/RemoveBendpointsOperation.java')
-rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/operation/RemoveBendpointsOperation.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/internal/operation/RemoveBendpointsOperation.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/operation/RemoveBendpointsOperation.java index f6bddb3b12..c69ce67daf 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/operation/RemoveBendpointsOperation.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/operation/RemoveBendpointsOperation.java @@ -132,16 +132,18 @@ public class RemoveBendpointsOperation extends AbstractModelChangeOperation<Void } else { srcConnectionBendpoint = GraphicalHelper.getIntersection(absoluteSrcAnchorCoordinates, absoluteTgtAnchorCoordinates, srcAbsoluteBounds, true, true); tgtConnectionBendpoint = GraphicalHelper.getIntersection(absoluteSrcAnchorCoordinates, absoluteTgtAnchorCoordinates, tgtAbsoluteBounds, false, true); - Point srcPoint = srcConnectionBendpoint.get(); - Point tgtPoint = tgtConnectionBendpoint.get(); - if (Routing.RECTILINEAR_LITERAL.equals(routingStyle)) { - RectilinearEdgeUtil.alignBoundPointTowardAnchor(srcAbsoluteBounds, srcPoint, absoluteSrcAnchorCoordinates); - RectilinearEdgeUtil.alignBoundPointTowardAnchor(tgtAbsoluteBounds, tgtPoint, absoluteTgtAnchorCoordinates); - pointList = RectilinearEdgeUtil.computeRectilinearBendpoints(srcAbsoluteBounds, tgtAbsoluteBounds, srcPoint, tgtPoint); - } else { - pointList = new PointList(); - pointList.addPoint(srcPoint); - pointList.addPoint(tgtPoint); + if (srcConnectionBendpoint.isPresent() && tgtConnectionBendpoint.isPresent()) { + Point srcPoint = srcConnectionBendpoint.get(); + Point tgtPoint = tgtConnectionBendpoint.get(); + if (Routing.RECTILINEAR_LITERAL.equals(routingStyle)) { + RectilinearEdgeUtil.alignBoundPointTowardAnchor(srcAbsoluteBounds, srcPoint, absoluteSrcAnchorCoordinates); + RectilinearEdgeUtil.alignBoundPointTowardAnchor(tgtAbsoluteBounds, tgtPoint, absoluteTgtAnchorCoordinates); + pointList = RectilinearEdgeUtil.computeRectilinearBendpoints(srcAbsoluteBounds, tgtAbsoluteBounds, srcPoint, tgtPoint); + } else { + pointList = new PointList(); + pointList.addPoint(srcPoint); + pointList.addPoint(tgtPoint); + } } } if (srcConnectionBendpoint.isPresent() && tgtConnectionBendpoint.isPresent() && originalNbPoint > pointList.size()) { |