]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.district.network.ui/src/org/simantics/district/network/ui/DNGraphLayerUtil.java
27905a55e56b05ac1322075b6e067f3bd663569d
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / DNGraphLayerUtil.java
1 package org.simantics.district.network.ui;\r
2 \r
3 import java.util.Collections;\r
4 import java.util.HashMap;\r
5 import java.util.Map;\r
6 \r
7 import org.simantics.db.ReadGraph;\r
8 import org.simantics.db.Resource;\r
9 import org.simantics.db.WriteGraph;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 import org.simantics.diagram.stubs.DiagramResource;\r
12 import org.simantics.diagram.synchronization.graph.layer.GraphLayer;\r
13 import org.simantics.diagram.synchronization.graph.layer.GraphLayerUtil;\r
14 import org.simantics.diagram.synchronization.graph.layer.IGraphLayerUtil;\r
15 import org.simantics.district.network.ontology.DistrictNetworkResource;\r
16 import org.simantics.layer0.Layer0;\r
17 \r
18 public class DNGraphLayerUtil implements IGraphLayerUtil {\r
19 \r
20     public DNGraphLayerUtil(Resource layer) {\r
21         \r
22     }\r
23 \r
24     @Override\r
25     public GraphLayer loadLayer(ReadGraph graph, Resource layer) throws DatabaseException {\r
26         Layer0 L0 = Layer0.getInstance(graph);\r
27         DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);\r
28         String name = graph.getRelatedValue(layer, L0.HasName);\r
29         Resource inLayer = graph.getSingleObject(layer, DN.HasInLayerTag);\r
30         \r
31         Map<String, Resource> properties = new HashMap<>();\r
32         properties.put("IN_LAYER", inLayer);\r
33 \r
34         return new GraphLayer(name, layer, properties);\r
35     }\r
36 \r
37     @Override\r
38     public GraphLayer createLayer(WriteGraph graph, String layerName, boolean active) throws DatabaseException {\r
39         Layer0 L0 = Layer0.getInstance(graph);\r
40         DiagramResource DIA = DiagramResource.getInstance(graph);\r
41         DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);\r
42         \r
43         \r
44         Resource layer = graph.newResource();\r
45         graph.claim(layer, L0.InstanceOf, null, DN.Layer);\r
46 \r
47         // Assign tagging relations\r
48         Resource inLayerTag = GraphLayerUtil.newTag(graph, L0, DN.InLayer);\r
49         graph.claim(layer, DN.HasInLayerTag, inLayerTag);\r
50 \r
51         // Assign shared name property for all, the layer and the tags\r
52         Resource name = graph.newResource();\r
53         graph.claim(name, L0.InstanceOf, null, L0.String);\r
54         graph.claimValue(name, layerName);\r
55 \r
56         graph.claim(layer, L0.HasName, name);\r
57         graph.claim(inLayerTag, L0.HasName, name);\r
58         \r
59         graph.claim(layer, DN.HasSpatialRefSystem, DN.EPSG_4326);\r
60 \r
61         GraphLayerUtil.setLayerActive(graph, DIA, layer, active);\r
62 \r
63         return new GraphLayer(layerName, layer, Collections.emptyMap());\r
64     }\r
65 \r
66 }\r