]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network/src/org/simantics/district/network/profile/DynamicVisualisationsRequest.java
First version of district visualisations
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / profile / DynamicVisualisationsRequest.java
diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/DynamicVisualisationsRequest.java b/org.simantics.district.network/src/org/simantics/district/network/profile/DynamicVisualisationsRequest.java
new file mode 100644 (file)
index 0000000..c4d9d20
--- /dev/null
@@ -0,0 +1,43 @@
+package org.simantics.district.network.profile;
+
+import java.util.Map;
+
+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.model.ColorBarOptions;
+import org.simantics.district.network.visualisations.model.DynamicColorContribution;
+import org.simantics.district.network.visualisations.model.DynamicSizeContribution;
+import org.simantics.district.network.visualisations.model.DynamicVisualisation;
+import org.simantics.district.network.visualisations.model.SizeBarOptions;
+import org.simantics.layer0.Layer0;
+
+/**
+ * @author Jani Simomaa
+ */
+public class DynamicVisualisationsRequest extends ResourceRead<DynamicVisualisation> {
+
+    public DynamicVisualisationsRequest(Resource diagram) {
+        super(diagram);
+    }
+
+    @Override
+    public DynamicVisualisation perform(ReadGraph graph) throws DatabaseException {
+        DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+        Resource visualisationResource = graph.getPossibleObject(resource, DN.Diagram_hasVisualisation);
+        if (visualisationResource != null) {
+            String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName);
+            Map<String, DynamicColorContribution> colorContributions = DistrictNetworkUtil.colorContributions(graph, resource);
+            ColorBarOptions colorBarOptions = DistrictNetworkUtil.colorBarOptions(graph, resource);
+            Map<String, DynamicSizeContribution> sizeContributions = DistrictNetworkUtil.sizeContributions(graph, resource);
+            SizeBarOptions sizeBarOptions = DistrictNetworkUtil.sizeBarOptions(graph, resource);
+            DynamicVisualisation visualisation = new DynamicVisualisation(name, colorContributions, colorBarOptions, sizeContributions, sizeBarOptions);
+            return visualisation; 
+        }
+        return null;
+    }
+
+}