]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/layer/GraphLayer.java
Bringing layers back to life
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / synchronization / graph / layer / GraphLayer.java
index 33df689be4014e48665683f1f59209cc22c1b011..2f25b84a93dadd73b91a537e0e29b0832deb9d87 100644 (file)
@@ -32,16 +32,19 @@ public class GraphLayer {
 
     private final Resource layer;
     
+    private boolean active;
+    
     private final Map<String, Resource> tags;
 
-    public GraphLayer(String name, Resource layer, Map<String, Resource> tags) {
+    public GraphLayer(String name, Resource layer, Map<String, Resource> tags, boolean active) {
         this.name = name;
         this.layer = layer;
         this.tags = tags;
+        this.active = active;
     }
 
     public GraphLayer withName(String name) {
-        return new GraphLayer(name, layer, tags);
+        return new GraphLayer(name, layer, tags, active);
     }
 
     public String getName() {
@@ -59,6 +62,10 @@ public class GraphLayer {
     public Resource getFocusable() {
         return tags.get(PROP_FOCUSABLE);
     }
+    
+    public boolean isActive() {
+        return active;
+    }
 
     public ILayer getILayer() {
         return new SimpleLayer(name);
@@ -73,4 +80,44 @@ public class GraphLayer {
             consumer.accept(r);
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + (active ? 1231 : 1237);
+        result = prime * result + ((layer == null) ? 0 : layer.hashCode());
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((tags == null) ? 0 : tags.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        GraphLayer other = (GraphLayer) obj;
+        if (active != other.active)
+            return false;
+        if (layer == null) {
+            if (other.layer != null)
+                return false;
+        } else if (!layer.equals(other.layer))
+            return false;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        if (tags == null) {
+            if (other.tags != null)
+                return false;
+        } else if (!tags.equals(other.tags))
+            return false;
+        return true;
+    }
+
 }
\ No newline at end of file