package org.simantics.district.network.profile;
+import java.util.Collection;
import java.util.Map;
+import java.util.stream.Collectors;
+import org.simantics.databoard.Bindings;
import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.exception.DatabaseException;
-import org.simantics.district.network.DistrictNetworkUtil;
import org.simantics.district.network.ontology.DistrictNetworkResource;
+import org.simantics.district.network.visualisations.DynamicVisualisations;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicArrowObject;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicColoringObject;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicSizingObject;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicSymbolContributionObject;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.StaticInformationContributionObject;
import org.simantics.district.network.visualisations.model.ColorBarOptions;
+import org.simantics.district.network.visualisations.model.DynamicArrowContribution;
import org.simantics.district.network.visualisations.model.DynamicColorContribution;
import org.simantics.district.network.visualisations.model.DynamicSizeContribution;
import org.simantics.district.network.visualisations.model.DynamicVisualisation;
*/
public class ActiveDynamicVisualisationsRequest extends ResourceRead<DynamicVisualisation> {
- public ActiveDynamicVisualisationsRequest(Resource diagram) {
- super(diagram);
+ public ActiveDynamicVisualisationsRequest(Resource parent) {
+ super(parent);
}
@Override
public DynamicVisualisation perform(ReadGraph graph) throws DatabaseException {
DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
- Resource visualisationResource = graph.getPossibleObject(resource, DN.Diagram_hasActiveVisualisation);
- if (visualisationResource != null) {
- String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName);
- Map<String, DynamicColorContribution> colorContributions = DistrictNetworkUtil.colorContributions(graph, visualisationResource);
- ColorBarOptions colorBarOptions = DistrictNetworkUtil.colorBarOptions(graph, visualisationResource);
- Map<String, DynamicSizeContribution> sizeContributions = DistrictNetworkUtil.sizeContributions(graph, visualisationResource);
- SizeBarOptions sizeBarOptions = DistrictNetworkUtil.sizeBarOptions(graph, visualisationResource);
- DynamicVisualisation visualisation = new DynamicVisualisation(name, visualisationResource, colorContributions, colorBarOptions, sizeContributions, sizeBarOptions);
- return visualisation;
+ Resource visualisationFolder = DynamicVisualisations.getVisualisationFolder(graph, resource);
+ if (visualisationFolder != null) {
+ Resource visualisationResource = graph.getPossibleObject(visualisationFolder, DN.Diagram_hasActiveVisualisation);
+ if (visualisationResource != null) {
+ String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName);
+
+ Long interval = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_Interval, Bindings.LONG);
+ Boolean disabledUpdates = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DisabledUpdates, Bindings.BOOLEAN);
+ Boolean resetVisualisation = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_ResetVisualisation, Bindings.BOOLEAN);
+
+ Collection<DynamicColoringObject> dynamicColoringObjects = DynamicVisualisationsContributions.dynamicColoringObjects(graph);
+ Map<String, DynamicColoringObject> defaultColoringObjects = dynamicColoringObjects.stream().collect(Collectors.toMap(dcc -> dcc.getColoringObject().getName(), dcc -> dcc));
+
+ Collection<DynamicSizingObject> dynamicSizingObjects = DynamicVisualisationsContributions.dynamicSizingObjects(graph);
+ Map<String, DynamicSizingObject> defaultSizingObjects = dynamicSizingObjects.stream().collect(Collectors.toMap(dcc -> dcc.getSizingObject().getName(), dcc -> dcc));
+
+ Collection<DynamicArrowObject> dynamicArrowObjects = DynamicVisualisationsContributions.dynamicEdgeArrowObjects(graph);
+ Map<String, DynamicArrowObject> defaultArrowObjects = dynamicArrowObjects.stream().collect(Collectors.toMap(dac -> dac.getArrowObject().getName(), dac -> dac));
+
+ Map<String, DynamicColorContribution> colorContributions = DynamicVisualisations.colorContributions(graph, visualisationResource);
+ ColorBarOptions colorBarOptions = DynamicVisualisations.colorBarOptions(graph, visualisationResource);
+ Map<String, DynamicSizeContribution> sizeContributions = DynamicVisualisations.sizeContributions(graph, visualisationResource);
+ SizeBarOptions sizeBarOptions = DynamicVisualisations.sizeBarOptions(graph, visualisationResource);
+ Map<String, DynamicArrowContribution> arrowContributions = DynamicVisualisations.arrowContributions(graph, visualisationResource);
+
+ Collection<StaticInformationContributionObject> staticInformationContributions = DynamicVisualisationsContributions.staticInformationContributionObjects(graph);
+ Map<String, StaticInformationContributionObject> staticInformationContributionObjects = staticInformationContributions.stream().collect(Collectors.toMap(dcc -> dcc.getStaticInformationContributionObject().getName(), dcc -> dcc));
+
+ Collection<DynamicSymbolContributionObject> dynamicSymbolContributions = DynamicVisualisationsContributions.dynamicSymbolContributionObjects(graph);
+ Map<String, DynamicSymbolContributionObject> dynamicSymbolContributionObjects = dynamicSymbolContributions.stream().map(dsc -> {
+ // here we resolve the symbol map with the help of readgraph
+ dsc.resolveSymbols(graph);
+ return dsc;
+ }).collect(Collectors.toMap(dcc -> dcc.getDynamicSymbolContributionObject().getName(), dcc -> dcc));
+
+ Boolean hideEdges = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideEdges, Bindings.BOOLEAN);
+ Boolean hidePoints = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HidePoints, Bindings.BOOLEAN);
+ Boolean hideConsumers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideConsumers, Bindings.BOOLEAN);
+ Boolean hideProducers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideProducers, Bindings.BOOLEAN);
+ Boolean hideValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HideValves, Bindings.BOOLEAN);
+ Boolean hidePumpingStations = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_HidePumpingStations, Bindings.BOOLEAN);
+ Boolean staticPropertiesNetworkBranch = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesNetworkBranches, Bindings.BOOLEAN);
+ Boolean staticProperiesPoints = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesPoints, Bindings.BOOLEAN);
+ Boolean staticPropertiesConsumers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_StaticPropertiesConsumers, Bindings.BOOLEAN);
+ Boolean dynamicSymbolsProducers = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsProducers, Bindings.BOOLEAN);
+ Boolean dynamicSymbolsShutoffValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsShutoffValves, Bindings.BOOLEAN);
+ Boolean dynamicSymbolsValves = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsValves, Bindings.BOOLEAN);
+ Boolean dynamicSymbolsPumpingStations = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_DynamicSymbolsPumpingStations, Bindings.BOOLEAN);
+
+ Boolean keyVariablesVertexHover = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_KeyVariableVertexHover, Bindings.BOOLEAN);
+ Boolean keyVariablesEdgesHover = graph.getPossibleRelatedValue(visualisationResource, DN.Diagram_Visualisations_KeyVariableEdgeHover, Bindings.BOOLEAN);
+
+ Boolean showElevationServerBoundingBox = DynamicVisualisations.showElevationServerBoundingBox(graph, visualisationResource);
+ Boolean notInSimulation = DynamicVisualisations.isNotInSimulation(graph, visualisationResource);
+ Boolean showConnectedComponents = DynamicVisualisations.showConnectedComponents(graph, visualisationResource);
+
+ DynamicVisualisation visualisation = new DynamicVisualisation(name, visualisationResource,
+ interval != null ? interval : 2000,
+ disabledUpdates != null ? disabledUpdates : false,
+ resetVisualisation != null ? resetVisualisation : false,
+ colorContributions,
+ defaultColoringObjects,
+ colorBarOptions,
+ sizeContributions,
+ defaultSizingObjects,
+ sizeBarOptions,
+ defaultArrowObjects,
+ arrowContributions,
+ staticInformationContributionObjects,
+ dynamicSymbolContributionObjects,
+ hideEdges != null ? hideEdges : false,
+ hidePoints != null ? hidePoints : false,
+ hideConsumers != null ? hideConsumers : false,
+ hideProducers != null ? hideProducers : false,
+ hideValves != null ? hideValves : false,
+ hidePumpingStations != null ? hidePumpingStations : false,
+ staticPropertiesNetworkBranch != null ? staticPropertiesNetworkBranch : false,
+ staticProperiesPoints != null ? staticProperiesPoints : false,
+ staticPropertiesConsumers != null ? staticPropertiesConsumers : false,
+ dynamicSymbolsProducers != null ? dynamicSymbolsProducers : false,
+ dynamicSymbolsShutoffValves != null ? dynamicSymbolsShutoffValves : false,
+ dynamicSymbolsValves != null ? dynamicSymbolsValves : false,
+ dynamicSymbolsPumpingStations != null ? dynamicSymbolsPumpingStations : false,
+ keyVariablesVertexHover != null ? keyVariablesVertexHover : false,
+ keyVariablesEdgesHover != null ? keyVariablesEdgesHover : false,
+ showElevationServerBoundingBox != null ? showElevationServerBoundingBox : false,
+ notInSimulation != null ? notInSimulation : false,
+ showConnectedComponents != null ? showConnectedComponents : false
+ );
+ return visualisation;
+ }
}
return null;
}