]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java
7bff718e732b4200d8b694ab5b41118c0872a99d
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / profile / ActiveDynamicVisualisationsRequest.java
1 package org.simantics.district.network.profile;
2
3 import java.util.Collection;
4 import java.util.Map;
5 import java.util.stream.Collectors;
6
7 import org.simantics.databoard.Bindings;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.common.request.ResourceRead;
11 import org.simantics.db.exception.DatabaseException;
12 import org.simantics.district.network.ontology.DistrictNetworkResource;
13 import org.simantics.district.network.visualisations.DynamicVisualisations;
14 import org.simantics.district.network.visualisations.DynamicVisualisationsContributions;
15 import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicArrowObject;
16 import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicColoringObject;
17 import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicSizingObject;
18 import org.simantics.district.network.visualisations.model.ColorBarOptions;
19 import org.simantics.district.network.visualisations.model.DynamicArrowContribution;
20 import org.simantics.district.network.visualisations.model.DynamicColorContribution;
21 import org.simantics.district.network.visualisations.model.DynamicSizeContribution;
22 import org.simantics.district.network.visualisations.model.DynamicVisualisation;
23 import org.simantics.district.network.visualisations.model.SizeBarOptions;
24 import org.simantics.layer0.Layer0;
25
26 /**
27  * @author Jani Simomaa
28  */
29 public class ActiveDynamicVisualisationsRequest extends ResourceRead<DynamicVisualisation> {
30
31     public ActiveDynamicVisualisationsRequest(Resource parent) {
32         super(parent);
33     }
34
35     @Override
36     public DynamicVisualisation perform(ReadGraph graph) throws DatabaseException {
37         DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
38         Resource visualisationFolder = DynamicVisualisations.getVisualisationFolder(graph, resource);
39         if (visualisationFolder != null) {
40             Resource visualisationResource = graph.getPossibleObject(visualisationFolder, DN.Diagram_hasActiveVisualisation);
41             if (visualisationResource != null) {
42                 String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName);
43                 
44                 Long interval = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_Interval, Bindings.LONG);
45                 Boolean disabledUpdates = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DisabledUpdates, Bindings.BOOLEAN);
46                 Boolean resetVisualisation = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_ResetVisualisation, Bindings.BOOLEAN);
47                 
48                 Collection<DynamicColoringObject> dynamicColoringObjects = DynamicVisualisationsContributions.dynamicColoringObjects(graph);
49                 Map<String, DynamicColoringObject> defaultColoringObjects = dynamicColoringObjects.stream().collect(Collectors.toMap(dcc -> dcc.getColoringObject().getName(), dcc -> dcc));
50                 
51                 Collection<DynamicSizingObject> dynamicSizingObjects = DynamicVisualisationsContributions.dynamicSizingObjects(graph);
52                 Map<String, DynamicSizingObject> defaultSizingObjects = dynamicSizingObjects.stream().collect(Collectors.toMap(dcc -> dcc.getSizingObject().getName(), dcc -> dcc));
53                 
54                 Collection<DynamicArrowObject> dynamicArrowObjects = DynamicVisualisationsContributions.dynamicEdgeArrowObjects(graph);
55                 Map<String, DynamicArrowObject> defaultArrowObjects = dynamicArrowObjects.stream().collect(Collectors.toMap(dac -> dac.getArrowObject().getName(), dac -> dac));
56                 
57                 Map<String, DynamicColorContribution> colorContributions = DynamicVisualisations.colorContributions(graph, visualisationResource);
58                 ColorBarOptions colorBarOptions = DynamicVisualisations.colorBarOptions(graph, visualisationResource);
59                 Map<String, DynamicSizeContribution> sizeContributions = DynamicVisualisations.sizeContributions(graph, visualisationResource);
60                 SizeBarOptions sizeBarOptions = DynamicVisualisations.sizeBarOptions(graph, visualisationResource);
61                 Map<String, DynamicArrowContribution> arrowContributions = DynamicVisualisations.arrowContributions(graph, visualisationResource);
62                 
63                 Boolean hideEdges = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideEdges, Bindings.BOOLEAN);
64                 Boolean hidePoints = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HidePoints, Bindings.BOOLEAN);
65                 Boolean hideConsumers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideConsumers, Bindings.BOOLEAN);
66                 Boolean hideProducers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideProducers, Bindings.BOOLEAN);
67                 Boolean hideValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideValves, Bindings.BOOLEAN);
68                 Boolean hidePumpingStations = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HidePumpingStations, Bindings.BOOLEAN);
69                 Boolean staticPropertiesNetworkBranch = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesNetworkBranches, Bindings.BOOLEAN);
70                 Boolean staticProperiesPoints = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesPoints, Bindings.BOOLEAN);
71                 Boolean staticPropertiesConsumers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesConsumers, Bindings.BOOLEAN);
72                 Boolean dynamicSymbolsProducers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsProducers, Bindings.BOOLEAN);
73                 Boolean dynamicSymbolsShutoffValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsShutoffValves, Bindings.BOOLEAN);
74                 Boolean dynamicSymbolsValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsValves, Bindings.BOOLEAN);
75                 Boolean dynamicSymbolsPumpingStations = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsPumpingStations, Bindings.BOOLEAN);
76
77                 Boolean keyVariablesVertexHover = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_KeyVariableVertexHover, Bindings.BOOLEAN);
78                 Boolean keyVariablesEdgesHover = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_KeyVariableEdgeHover, Bindings.BOOLEAN);
79                 
80                 DynamicVisualisation visualisation = new DynamicVisualisation(name, visualisationResource,
81                         interval != null ? interval : 2000,
82                         disabledUpdates != null ? disabledUpdates : false,
83                         resetVisualisation != null ? resetVisualisation : false,
84                         colorContributions,
85                         defaultColoringObjects,
86                         colorBarOptions,
87                         sizeContributions,
88                         defaultSizingObjects,
89                         sizeBarOptions,
90                         defaultArrowObjects,
91                         arrowContributions,
92                         hideEdges != null ? hideEdges : false,
93                         hidePoints != null ? hidePoints : false,
94                         hideConsumers != null ? hideConsumers : false,
95                         hideProducers != null ? hideProducers : false,
96                         hideValves != null ? hideValves : false,
97                         hidePumpingStations != null ? hidePumpingStations : false,
98                         staticPropertiesNetworkBranch != null ? staticPropertiesNetworkBranch : false,
99                         staticProperiesPoints != null ? staticProperiesPoints : false,
100                         staticPropertiesConsumers != null ? staticPropertiesConsumers : false,
101                         dynamicSymbolsProducers != null ? dynamicSymbolsProducers : false,
102                         dynamicSymbolsShutoffValves != null ? dynamicSymbolsShutoffValves : false,
103                         dynamicSymbolsValves != null ? dynamicSymbolsValves : false,
104                         dynamicSymbolsPumpingStations != null ? dynamicSymbolsPumpingStations : false,
105                         keyVariablesVertexHover != null ? keyVariablesVertexHover : false,
106                         keyVariablesEdgesHover != null ? keyVariablesEdgesHover : false
107                     );
108                 return visualisation; 
109             }
110         }
111         return null;
112     }
113
114 }