]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/DNGraphLayerUtil.java
Some more added functionality to simantics district editor etc
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / DNGraphLayerUtil.java
index 27905a55e56b05ac1322075b6e067f3bd663569d..a036f78d5215e0536eea8e4d5a0d7c573f534353 100644 (file)
@@ -1,66 +1,83 @@
-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);
+    }
+
+}