]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/templates/AddLayerToDNDiagramTemplate.java
Implement district features to Simantics platform
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / templates / AddLayerToDNDiagramTemplate.java
diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/templates/AddLayerToDNDiagramTemplate.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/templates/AddLayerToDNDiagramTemplate.java
new file mode 100644 (file)
index 0000000..4b846c3
--- /dev/null
@@ -0,0 +1,40 @@
+package org.simantics.district.network.ui.templates;\r
+\r
+import java.util.Map;\r
+import java.util.UUID;\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.WriteGraph;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.adapter.Template;\r
+import org.simantics.diagram.stubs.DiagramResource;\r
+import org.simantics.diagram.synchronization.graph.layer.GraphLayer;\r
+import org.simantics.diagram.synchronization.graph.layer.IGraphLayerUtil;\r
+import org.simantics.district.network.ontology.DistrictNetworkResource;\r
+\r
+public class AddLayerToDNDiagramTemplate implements Template {\r
+\r
+    Resource template;\r
+    \r
+    public AddLayerToDNDiagramTemplate(Resource template) {\r
+        this.template = template;\r
+    }\r
+    \r
+    @Override\r
+    public void apply(WriteGraph graph, Map<String, Object> parameters) throws DatabaseException {\r
+        Resource diagram = (Resource)parameters.get("diagram");\r
+        if (diagram == null) {\r
+            diagram = graph.newResource();\r
+            parameters.put("diagram", diagram);\r
+        }\r
+        \r
+        DiagramResource DIA = DiagramResource.getInstance(graph);\r
+        IGraphLayerUtil layerUtil = graph.adapt(DistrictNetworkResource.getInstance(graph).Layer, IGraphLayerUtil.class);\r
+        GraphLayer layer = layerUtil.createLayer(graph, UUID.randomUUID().toString(), true);\r
+        \r
+        // Create layer\r
+        graph.claim(diagram, DIA.HasLayer, layer.getLayer());\r
+        \r
+    }\r
+\r
+}\r