]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DistrictFinderVisualisationParticipant.java
Add missing visualization trigger code
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / participants / DistrictFinderVisualisationParticipant.java
index 5f689de994aeabc64d00510397611c53edf7daac..a88d7ba94d362ab8c4c752d9682e34f92c474df0 100644 (file)
@@ -17,12 +17,14 @@ import org.simantics.g2d.canvas.ICanvasContext;
 import org.simantics.g2d.diagram.participant.AbstractDiagramParticipant;
 import org.simantics.g2d.element.IElement;
 import org.simantics.scenegraph.g2d.G2DParentNode;
+import org.simantics.scl.runtime.tuple.Tuple2;
 import org.simantics.utils.datastructures.hints.IHintContext.Key;
 import org.simantics.utils.datastructures.hints.IHintContext.KeyOf;
 
 public class DistrictFinderVisualisationParticipant extends AbstractDiagramParticipant {
 
     private static final String TOPIC = "org/simantics/district/selection/elementQuerySelection";
+    private static final String TOPIC2 = "org/simantics/district/visualisationTrigger";
     
     private IEventBroker broker;
 
@@ -56,6 +58,22 @@ public class DistrictFinderVisualisationParticipant extends AbstractDiagramParti
                 }
             }
         });
+        broker.subscribe(TOPIC2, event -> {
+               Tuple2 data = (Tuple2) event.getProperty(IEventBroker.DATA);
+               Resource resource = (Resource) data.c0;
+               Color colorr = (Color) data.c1;
+            IElement element = DiagramNodeUtil.findElement(ctx, resource);
+            final G2DParentNode node = element.getHint(DistrictNetworkEdgeElement.KEY_DN_EDGE_NODE);
+            if (node != null) {
+                // color is a bit special - if not present then reset with null value
+                ((DistrictNetworkEdgeNode) node).setEventColor(colorr);
+                node.repaint();
+            } else {
+                final G2DParentNode vertexNode = element.getHint(DistrictNetworkVertexElement.KEY_DN_VERTEX_NODE);
+                ((DistrictNetworkVertexNode) vertexNode).setEventColor(colorr);
+                vertexNode.repaint();
+            }
+        });
     }
     
     @Override