X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.diagram.connection%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fconnection%2FRouteTerminal.java;fp=bundles%2Forg.simantics.diagram.connection%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fconnection%2FRouteTerminal.java;h=c43c7de1c4996914d8ac6bbc5c208e4c9b2c64ff;hp=2f3fc9f86ec7ce7668c0dc12e87f741a4ae4c74e;hb=2b0fe692f116091f8d65da664174c92591a077b8;hpb=043ed4538f5bdc16d299bc40c2dd8285a3120f9b diff --git a/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/RouteTerminal.java b/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/RouteTerminal.java index 2f3fc9f86..c43c7de1c 100644 --- a/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/RouteTerminal.java +++ b/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/RouteTerminal.java @@ -13,6 +13,7 @@ package org.simantics.diagram.connection; import gnu.trove.map.hash.THashMap; +import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.io.PrintStream; import java.io.Serializable; @@ -39,13 +40,14 @@ public class RouteTerminal extends RoutePoint implements RouteNode, Serializable private ILineEndStyle style; private ILineEndStyle dynamicStyle; private boolean routeToBounds; + private RouteTerminalPosition dynamicPosition; RouteLine line; RouteTerminal(double x, double y, double minX, double minY, double maxX, double maxY, int allowedDirections, boolean routeToBounds, - ILineEndStyle style) { + ILineEndStyle style, RouteTerminalPosition dynamicPosition) { super(x, y); this.minX = minX; this.minY = minY; @@ -54,8 +56,9 @@ public class RouteTerminal extends RoutePoint implements RouteNode, Serializable this.allowedDirections = allowedDirections; this.routeToBounds = routeToBounds; this.style = style; + this.dynamicPosition = dynamicPosition; } - + @Override public void setData(Object data) { this.data = data; @@ -378,7 +381,7 @@ public class RouteTerminal extends RoutePoint implements RouteNode, Serializable RouteTerminal copy = (RouteTerminal)map.get(this); if(copy == null) { copy = new RouteTerminal(x, y, minX, minY, maxX, maxY, - allowedDirections, routeToBounds, style); + allowedDirections, routeToBounds, style, dynamicPosition); copy.setDynamicStyle(dynamicStyle); map.put(this, copy); copy.data = data; @@ -449,4 +452,25 @@ public class RouteTerminal extends RoutePoint implements RouteNode, Serializable public void setDynamicStyle(ILineEndStyle dynamicStyle) { this.dynamicStyle = dynamicStyle; } + + public RouteTerminalPosition getDynamicPosition() { + return dynamicPosition; + } + + public boolean updateDynamicPosition() { + boolean changed = false; + if (dynamicPosition != null) { + AffineTransform tr = dynamicPosition.getTransform(); + if (tr != null) { + double nx = tr.getTranslateX(); + changed |= x != nx; + x = nx; + double ny = tr.getTranslateY(); + changed |= y != ny; + y = ny; + } + } + return changed; + } + }