X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fparticipants%2FDistrictFinderVisualisationParticipant.java;fp=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fparticipants%2FDistrictFinderVisualisationParticipant.java;h=a88d7ba94d362ab8c4c752d9682e34f92c474df0;hb=f02327382306d1af51ca66a3af2ed642a6c41986;hp=5f689de994aeabc64d00510397611c53edf7daac;hpb=d49d81b82aa555ef0909eebd6d9c393e4e6de8aa;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DistrictFinderVisualisationParticipant.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DistrictFinderVisualisationParticipant.java index 5f689de9..a88d7ba9 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DistrictFinderVisualisationParticipant.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DistrictFinderVisualisationParticipant.java @@ -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