]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/styles/DistrictNetworkStaticInfoStyle.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 / styles / DistrictNetworkStaticInfoStyle.java
index 27c2fc8496dc4e0908a65b18b32236ca3b794cd2..ad72279772c94321c8e82de362492414464e0125 100644 (file)
@@ -21,11 +21,14 @@ import org.simantics.district.network.DistrictNetworkUtil;
 import org.simantics.district.network.ontology.DistrictNetworkResource;
 import org.simantics.district.network.profile.MidBranchEdgeSetRequest;
 import org.simantics.district.network.ui.nodes.DeferredRenderingNode;
+import org.simantics.district.network.ui.nodes.DistrictNetworkEdgeNode;
 import org.simantics.district.network.ui.nodes.DistrictNetworkNodeUtils;
 import org.simantics.district.network.ui.nodes.DistrictNetworkStaticInfoNode;
 import org.simantics.layer0.Layer0;
 import org.simantics.scenegraph.INode;
 import org.simantics.scenegraph.ParentNode;
+import org.simantics.scenegraph.g2d.IG2DNode;
+import org.simantics.scenegraph.g2d.nodes.ConnectionNode;
 import org.simantics.scenegraph.g2d.nodes.spatial.RTreeNode;
 import org.simantics.scenegraph.profile.EvaluationContext;
 import org.simantics.scenegraph.profile.common.ProfileVariables;
@@ -35,8 +38,8 @@ import org.simantics.scl.osgi.SCLOsgi;
 import org.simantics.scl.runtime.SCLContext;
 import org.simantics.scl.runtime.function.Function1;
 import org.simantics.structural.stubs.StructuralResource2;
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DistrictNetworkStaticInfoStyle extends StyleBase<DistrictNetworkStaticInfoStyle.StyleResult> {
 
@@ -160,6 +163,12 @@ public class DistrictNetworkStaticInfoStyle extends StyleBase<DistrictNetworkSta
                        Point2D direction = new Point2D.Double(0.5 * sign * (p1.getX() - p2.getX()), 0.5 * sign * (p1.getY() - p2.getY()));
                        
                        node.setLocation(origin, direction);
+                       
+                       for (IG2DNode n : ((ConnectionNode)parent).getNodes()) {
+                               if (n instanceof DistrictNetworkEdgeNode) {
+                                       node.setEdgeNode((DistrictNetworkEdgeNode) n);
+                               }
+                       }
                }
                
                node.setInfo(result.info);