package org.simantics.district.network.profile; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.diagram.profile.StyleBase; import org.simantics.district.network.ontology.DistrictNetworkResource; import org.simantics.scenegraph.INode; import org.simantics.scenegraph.g2d.nodes.ConnectionNode; import org.simantics.scenegraph.profile.EvaluationContext; import org.simantics.scenegraph.profile.common.ProfileVariables; public class EdgeNodeStyle extends StyleBase { public EdgeNodeStyle() { System.out.println("EdgeNodeStyle init"); } @Override public Double calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); Double diameter = graph.getPossibleRelatedValue(groupItem, DN.Edge_HasDiameter); if (diameter != null) { return diameter; } return super.calculateStyle(graph, runtimeDiagram, entry, groupItem); } @Override public void applyStyleForNode(EvaluationContext observer, INode node, Double result) { if (result != null) { ConnectionNode n = (ConnectionNode) node; for (INode nn : n.getNodes()) { ProfileVariables.claimNodeProperty(nn, "stroke", result, observer); } } } }