-package org.simantics.district.network.ui;\r
-\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.diagram.synchronization.graph.layer.GraphLayer;\r
-import org.simantics.diagram.synchronization.graph.layer.GraphLayerUtil;\r
-import org.simantics.diagram.synchronization.graph.layer.IGraphLayerUtil;\r
-import org.simantics.district.network.ontology.DistrictNetworkResource;\r
-import org.simantics.layer0.Layer0;\r
-\r
-public class DNGraphLayerUtil implements IGraphLayerUtil {\r
-\r
- public DNGraphLayerUtil(Resource layer) {\r
- \r
- }\r
-\r
- @Override\r
- public GraphLayer loadLayer(ReadGraph graph, Resource layer) throws DatabaseException {\r
- Layer0 L0 = Layer0.getInstance(graph);\r
- DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);\r
- String name = graph.getRelatedValue(layer, L0.HasName);\r
- Resource inLayer = graph.getSingleObject(layer, DN.HasInLayerTag);\r
- \r
- Map<String, Resource> properties = new HashMap<>();\r
- properties.put("IN_LAYER", inLayer);\r
-\r
- return new GraphLayer(name, layer, properties);\r
- }\r
-\r
- @Override\r
- public GraphLayer createLayer(WriteGraph graph, String layerName, boolean active) throws DatabaseException {\r
- Layer0 L0 = Layer0.getInstance(graph);\r
- DiagramResource DIA = DiagramResource.getInstance(graph);\r
- DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);\r
- \r
- \r
- Resource layer = graph.newResource();\r
- graph.claim(layer, L0.InstanceOf, null, DN.Layer);\r
-\r
- // Assign tagging relations\r
- Resource inLayerTag = GraphLayerUtil.newTag(graph, L0, DN.InLayer);\r
- graph.claim(layer, DN.HasInLayerTag, inLayerTag);\r
-\r
- // Assign shared name property for all, the layer and the tags\r
- Resource name = graph.newResource();\r
- graph.claim(name, L0.InstanceOf, null, L0.String);\r
- graph.claimValue(name, layerName);\r
-\r
- graph.claim(layer, L0.HasName, name);\r
- graph.claim(inLayerTag, L0.HasName, name);\r
- \r
- graph.claim(layer, DN.HasSpatialRefSystem, DN.EPSG_4326);\r
-\r
- GraphLayerUtil.setLayerActive(graph, DIA, layer, active);\r
-\r
- return new GraphLayer(layerName, layer, Collections.emptyMap());\r
- }\r
-\r
-}\r
+package org.simantics.district.network.ui;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.diagram.synchronization.graph.layer.GraphLayer;
+import org.simantics.diagram.synchronization.graph.layer.GraphLayerUtil;
+import org.simantics.diagram.synchronization.graph.layer.IGraphLayerUtil;
+import org.simantics.district.network.ontology.DistrictNetworkResource;
+import org.simantics.layer0.Layer0;
+
+public class DNGraphLayerUtil implements IGraphLayerUtil {
+
+ public DNGraphLayerUtil(Resource layer) {
+
+ }
+
+ @Override
+ public GraphLayer loadLayer(ReadGraph graph, Resource layer) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+ DiagramResource DIA = DiagramResource.getInstance(graph);
+ String name = graph.getRelatedValue(layer, L0.HasName);
+ Resource inLayer = graph.getSingleObject(layer, DN.HasInLayerTag);
+ Resource visible = graph.getSingleObject(layer, DIA.HasVisibleTag);
+ Resource focusable = graph.getSingleObject(layer, DIA.HasFocusableTag);
+
+ Map<String, Resource> properties = new HashMap<>();
+ properties.put(GraphLayer.PROP_FOCUSABLE, focusable);
+ properties.put(GraphLayer.PROP_VISIBLE, visible);
+ properties.put("IN_LAYER", inLayer);
+
+ return new GraphLayer(name, layer, properties);
+ }
+
+ @Override
+ public GraphLayer createLayer(WriteGraph graph, String layerName, boolean active) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ DiagramResource DIA = DiagramResource.getInstance(graph);
+ DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
+
+
+ Resource layer = graph.newResource();
+ graph.claim(layer, L0.InstanceOf, null, DN.Layer);
+
+ // Assign tagging relations
+ Resource inLayerTag = GraphLayerUtil.newTag(graph, L0, DN.InLayer);
+ // for backwards compatibility
+ Resource visibleTag = GraphLayerUtil.newTag(graph, L0, DIA.IsVisible);
+ Resource focusableTag = GraphLayerUtil.newTag(graph, L0, DIA.IsFocusable);
+ graph.claim(layer, DN.HasInLayerTag, inLayerTag);
+ // for backwards compatibility
+ graph.claim(layer, DIA.HasVisibleTag, visibleTag);
+ graph.claim(layer, DIA.HasFocusableTag, focusableTag);
+
+ // Assign shared name property for all, the layer and the tags
+ Resource name = graph.newResource();
+ graph.claim(name, L0.InstanceOf, null, L0.String);
+ graph.claimValue(name, layerName);
+
+ graph.claim(layer, L0.HasName, name);
+ graph.claim(inLayerTag, L0.HasName, name);
+ graph.claim(visibleTag, L0.HasName, name);
+ graph.claim(focusableTag, L0.HasName, name);
+
+ graph.claim(layer, DN.HasSpatialRefSystem, DN.EPSG_4326);
+
+ GraphLayerUtil.setLayerActive(graph, DIA, layer, active);
+
+ Map<String, Resource> properties = new HashMap<>();
+ properties.put("IN_LAYER", inLayerTag);
+ properties.put(GraphLayer.PROP_FOCUSABLE, focusableTag);
+ properties.put(GraphLayer.PROP_VISIBLE, visibleTag);
+
+ return new GraphLayer(layerName, layer, properties);
+ }
+
+}