]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/RouteLine.java
Fixed route graph splitting and diagram mapping race condition problem
[simantics/platform.git] / bundles / org.simantics.diagram.connection / src / org / simantics / diagram / connection / RouteLine.java
index 91a53d85429fa0ac5a2cb0492deb53ea8573ac10..225c4abfe890ecb5250e724777fb5f2dc4659c97 100644 (file)
@@ -34,7 +34,7 @@ public class RouteLine implements RouteNode, Serializable {
     RouteLine nextTransient;
     RouteTerminal terminal;
     
-    RouteLine(boolean isHorizontal, double position) {
+    public RouteLine(boolean isHorizontal, double position) {
         this.isHorizontal = isHorizontal;
         this.position = position;
     }
@@ -57,6 +57,10 @@ public class RouteLine implements RouteNode, Serializable {
                return hidden;
        }
     
+    public void setHidden(boolean hidden) {
+               this.hidden = hidden;
+       }
+    
     public double getPosition() {
         return position;
     }
@@ -68,7 +72,7 @@ public class RouteLine implements RouteNode, Serializable {
                return points;
     }
     
-    void addPoint(RoutePoint link) {
+    public void addPoint(RoutePoint link) {
         points.add(link);        
     }
 
@@ -77,7 +81,7 @@ public class RouteLine implements RouteNode, Serializable {
             point.removeFromOther(this);
     }
     
-    void setPointPositions() {        
+    public void setPointPositions() {        
         if(isHorizontal) {
             for(RoutePoint point : points)
                 point.y = position;
@@ -88,7 +92,7 @@ public class RouteLine implements RouteNode, Serializable {
         }
     }
 
-    void sortPoints() {
+    public void sortPoints() {
         Collections.sort(points, isHorizontal 
                 ? RoutePoint.X_COMPARATOR 
                 : RoutePoint.Y_COMPARATOR);
@@ -109,10 +113,17 @@ public class RouteLine implements RouteNode, Serializable {
             out.print("    HOR");
         else
             out.print("    VER");
+        if (hidden)
+            out.print(" HIDDEN");
+        out.print(" @ " + position);
         for(RoutePoint point : points) {
             out.print(" ("+point.x+","+point.y+")");
         }
         out.print(" (data=" + data + ")");
+        if (nextTransient != null)
+            out.print(" (next transient line=" + nextTransient.getData() + ")");
+        if (terminal != null)
+            out.print(" (terminal=" + terminal.getData() + ")");
         out.println();
     }
 
@@ -158,7 +169,7 @@ public class RouteLine implements RouteNode, Serializable {
         return terminal != null;
     }
 
-    RouteLine copy(THashMap<Object, Object> map) {     
+    public RouteLine copy(THashMap<Object, Object> map) {      
         RouteLine copy = (RouteLine)map.get(this);
         if(copy == null) {
                copy = new RouteLine(isHorizontal, position);
@@ -184,9 +195,21 @@ public class RouteLine implements RouteNode, Serializable {
        return lines;
     }
 
+    public void removeRouteTerminals() {
+        points.removeIf(p -> p instanceof RouteTerminal);
+    }
+
     public RouteTerminal getTerminal() {
         return terminal;
     }
+    
+    public void setTerminal(RouteTerminal terminal) {
+               this.terminal = terminal;
+       }
+
+    public RouteLine getNextTransient() {
+        return nextTransient;
+    }
 
     public boolean beginsWithTerminal() {
         RoutePoint begin = points.get(0);