]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.network/src/org/simantics/district/network/profile/EdgeNodeStyle.java
Added DN.Element as base type for DH diagram elements
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / profile / EdgeNodeStyle.java
1 package org.simantics.district.network.profile;
2
3 import org.simantics.db.ReadGraph;
4 import org.simantics.db.Resource;
5 import org.simantics.db.exception.DatabaseException;
6 import org.simantics.diagram.profile.StyleBase;
7 import org.simantics.district.network.ontology.DistrictNetworkResource;
8 import org.simantics.scenegraph.INode;
9 import org.simantics.scenegraph.g2d.nodes.ConnectionNode;
10 import org.simantics.scenegraph.profile.EvaluationContext;
11 import org.simantics.scenegraph.profile.common.ProfileVariables;
12
13 public class EdgeNodeStyle extends StyleBase<Double> {
14
15     public EdgeNodeStyle() {
16         System.out.println("EdgeNodeStyle init");
17     }
18     
19     @Override
20     public Double calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem) throws DatabaseException {
21         DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
22         Double diameter = graph.getPossibleRelatedValue(groupItem, DN.Edge_HasDiameter);
23         if (diameter != null) {
24             return diameter;
25         }
26         return super.calculateStyle(graph, runtimeDiagram, entry, groupItem);
27     }
28     
29     @Override
30     public void applyStyleForNode(EvaluationContext observer, INode node, Double result) {
31         if (result != null) {
32             ConnectionNode n = (ConnectionNode) node;
33             for (INode nn : n.getNodes()) {
34                 ProfileVariables.claimNodeProperty(nn, "stroke", result, observer);
35             }
36         }
37     }
38     
39 }