]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/adapters/DistrictNetworkEdgeElement.java
Use detailed geometry in drawing info labels, symbols and picking.
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / adapters / DistrictNetworkEdgeElement.java
index 8af6b20a2b873bbea91d2e15fb4f7a4b2b9af43a..20c86d8ddec6dbc4e83a88a5a630805bb8474e8f 100644 (file)
@@ -102,17 +102,13 @@ public class DistrictNetworkEdgeElement {
 
         public static final DNEdgeInternalSize INSTANCE = new DNEdgeInternalSize();
 
-        private ThreadLocal<Path2D> path = new ThreadLocal<Path2D>() {
-            protected Path2D initialValue() { return new Path2D.Double(); }
-        };
-
         @Override
         public Rectangle2D getBounds(IElement e, Rectangle2D size) {
-            DistrictNetworkEdge edge = e.getHint(KEY_DN_EDGE);
+            DistrictNetworkEdgeNode edgeNode = e.getHint(KEY_DN_EDGE_NODE);
             if (size == null)
                 size = new Rectangle2D.Double();
-            if (edge != null)
-                size.setFrame(DistrictNetworkEdgeNode.calculatePath(edge, path.get(), true).getBounds2D());
+            if (edgeNode != null)
+                size.setFrame(edgeNode.getBoundsInLocal());
             else
                 LOGGER.debug("Element {} does not have edge!", e);
 
@@ -121,9 +117,9 @@ public class DistrictNetworkEdgeElement {
 
         @Override
         public Shape getElementShape(IElement e) {
-            DistrictNetworkEdge edge = e.getHint(KEY_DN_EDGE);
-            if (edge != null) {
-                return DistrictNetworkEdgeNode.calculatePath(edge, null, true);
+            DistrictNetworkEdgeNode edgeNode = e.getHint(KEY_DN_EDGE_NODE);
+            if (edgeNode != null) {
+                return edgeNode.getPath();
             } else {
                 return getBounds(e, null);
             }