Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java
index 81672a3369c..bcdf550a450 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/linklf/LinksLFNodeFigure.java
@@ -3,12 +3,15 @@ package org.eclipse.papyrus.infra.gmfdiag.common.linklf;
import org.eclipse.draw2d.AbstractPointListShape;
import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PositionConstants;
import org.eclipse.draw2d.ScalablePolygonShape;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.draw2d.geometry.PrecisionPoint;
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
import org.eclipse.gmf.runtime.draw2d.ui.figures.BaseSlidableAnchor;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.IBorderItemLocator;
import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
public class LinksLFNodeFigure extends DefaultSizeNodeFigure {
@@ -47,6 +50,21 @@ public class LinksLFNodeFigure extends DefaultSizeNodeFigure {
if(isDefaultAnchorArea(pt)) {
return getConnectionAnchor(szAnchor);
}
+
+ if (myHost instanceof IBorderItemEditPart) {
+ IBorderItemLocator locator = ((IBorderItemEditPart) myHost).getBorderItemLocator();
+ switch (locator.getCurrentSideOfParent()) {
+ case PositionConstants.WEST:
+ case PositionConstants.EAST:
+ pt.setPreciseX(pt.preciseX() > 0.5 ? 1.0 : 0.0);
+ break;
+ case PositionConstants.SOUTH:
+ case PositionConstants.NORTH:
+ pt.setPreciseY(pt.preciseY() > 0.5 ? 1.0 : 0.0);
+ break;
+ }
+ }
+
return createAnchor(pt);
}
}

Back to the top