]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java
Move edge arrow rendering to a separate node forcing render on top
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / participants / DynamicVisualisationContributionsParticipant.java
index d1a810889319be51612529e0743cd27dc1ffa75c..36eaaf619f618e8e0bd9d572018e8ce7a251e2c2 100644 (file)
@@ -17,6 +17,8 @@ import org.simantics.db.exception.DatabaseException;
 import org.simantics.district.network.ontology.DistrictNetworkResource;
 import org.simantics.district.network.profile.RuntimeDynamicVisualisationsRequest;
 import org.simantics.district.network.ui.DistrictDiagramViewer;
+import org.simantics.district.network.ui.nodes.DeferredRenderingNode;
+import org.simantics.district.network.ui.nodes.DistrictNetworkEdgeArrayNode;
 import org.simantics.district.network.ui.nodes.DistrictNetworkHoverInfoNode;
 import org.simantics.district.network.ui.nodes.DynamicVisualisationContributionsNode;
 import org.simantics.district.network.ui.styles.DistrictNetworkHoverInfoStyle;
@@ -33,6 +35,7 @@ import org.simantics.scenegraph.INode;
 import org.simantics.scenegraph.g2d.G2DParentNode;
 import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler;
 import org.simantics.scenegraph.g2d.events.command.CommandEvent;
+import org.simantics.utils.datastructures.Pair;
 import org.simantics.utils.datastructures.hints.HintListenerAdapter;
 import org.simantics.utils.datastructures.hints.IHintContext.Key;
 import org.simantics.utils.datastructures.hints.IHintListener;
@@ -59,6 +62,7 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
     private DynamicVisualisationContributionsNode node;
     private AffineTransform transform;
     private DistrictNetworkHoverInfoNode hoverInfoNode;
+    private DeferredRenderingNode deferredEdgeArrowRendererNode;
 
     public DynamicVisualisationContributionsParticipant(AffineTransform tr) {
         this.transform = tr;
@@ -98,6 +102,9 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas
         hoverInfoNode.setLookupId("districtNetworkHoverInfoNode");
         hoverInfoNode.setTransform(transform);
         hoverInfoNode.setZIndex(Integer.MAX_VALUE - 500);
+        
+        Pair<String, Class<DeferredRenderingNode>> dearn = DistrictNetworkEdgeArrayNode.renderer();
+        deferredEdgeArrowRendererNode = parent.addNode(dearn.first, dearn.second);
     }
 
     @EventHandler(priority = 0)