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;
}
}
});
+ 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