--- /dev/null
+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