]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java
Make defaults to work & remove apply button in dynamic visualisations
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / profile / ActiveDynamicVisualisationsRequest.java
index 52cfd61ccc5951d496d3780a98ee9924571ca8fc..f8f4b9aa34ee2e85b18309048160ec6ed881b9ca 100644 (file)
@@ -1,6 +1,8 @@
 package org.simantics.district.network.profile;
 
+import java.util.Collection;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
@@ -8,6 +10,9 @@ 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.DynamicVisualisationsContributions;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicColoringObject;
+import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicSizingObject;
 import org.simantics.district.network.visualisations.model.ColorBarOptions;
 import org.simantics.district.network.visualisations.model.DynamicColorContribution;
 import org.simantics.district.network.visualisations.model.DynamicSizeContribution;
@@ -20,22 +25,32 @@ import org.simantics.layer0.Layer0;
  */
 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 = DistrictNetworkUtil.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);
+                
+                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));
+                
+                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, defaultColoringObjects, colorBarOptions, sizeContributions, defaultSizingObjects, sizeBarOptions);
+                return visualisation; 
+            }
         }
         return null;
     }