]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/layer/GraphLayerUtil.java
Even more fixes to layers
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / synchronization / graph / layer / GraphLayerUtil.java
index 370345f4f2ac87cf1b8fcdf90315e6dac78bf3b1..43b7fe117f605f6688957715bfb52fe80387cbba 100644 (file)
@@ -59,7 +59,7 @@ public final class GraphLayerUtil implements IGraphLayerUtil {
         properties.put(GraphLayer.PROP_FOCUSABLE, focusableTag);
         properties.put(GraphLayer.PROP_VISIBLE, visibleTag);
         
-        return new GraphLayer(layerName, layer, properties);
+        return new GraphLayer(layerName, layer, properties, active);
     }
 
     public static Resource newTag(WriteGraph graph, Layer0 L0, Resource baseTag) throws DatabaseException {
@@ -80,12 +80,25 @@ public final class GraphLayerUtil implements IGraphLayerUtil {
         String name = graph.getRelatedValue(layer, L0.HasName);
         Resource visible = graph.getSingleObject(layer, DIA.HasVisibleTag);
         Resource focusable = graph.getSingleObject(layer, DIA.HasFocusableTag);
-        
+        boolean active = graph.getRelatedValue(layer, DIA.IsActive);
         Map<String, Resource> properties = new HashMap<>();
         properties.put(GraphLayer.PROP_FOCUSABLE, focusable);
         properties.put(GraphLayer.PROP_VISIBLE, visible);
 
-        return new GraphLayer(name, layer, properties);
+        return new GraphLayer(name, layer, properties, active);
+    }
+    
+    public static void addToVisibleLayers(WriteGraph graph, Resource element, Resource diagram) throws DatabaseException {
+        DiagramResource DIA = DiagramResource.getInstance(graph);
+        for (Resource layer : graph.getObjects(diagram, DIA.HasLayer)) {
+            boolean active = graph.getRelatedValue(layer, DIA.IsActive);
+            if (active) {
+                Resource visibleTag = graph.getSingleObject(layer, DIA.HasVisibleTag);
+                Resource focusableTag = graph.getSingleObject(layer, DIA.HasFocusableTag);
+                graph.claim(element, visibleTag, element);
+                graph.claim(element, focusableTag, element);
+            }
+        }
     }
 
 }