*******************************************************************************/
package org.simantics.diagram.synchronization.graph.layer;
+import java.util.Collection;
+import java.util.Map;
+
import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.function.DbConsumer;
+import org.simantics.g2d.layers.ILayer;
+import org.simantics.g2d.layers.SimpleLayer;
/**
* @author Tuukka Lehtonen
*/
public class GraphLayer {
+ public static final String PROP_VISIBLE = "PROP_VISIBLE";
+ public static final String PROP_FOCUSABLE = "PROP_FOCUSABLE";
+
private final String name;
private final Resource layer;
+
+ private final Map<String, Resource> tags;
- private final Resource visible;
-
- private final Resource focusable;
-
- public GraphLayer(String name, Resource layer, Resource visible, Resource focusable) {
+ public GraphLayer(String name, Resource layer, Map<String, Resource> tags) {
this.name = name;
this.layer = layer;
- this.visible = visible;
- this.focusable = focusable;
+ this.tags = tags;
}
public GraphLayer withName(String name) {
- return new GraphLayer(name, layer, visible, focusable);
+ return new GraphLayer(name, layer, tags);
}
public String getName() {
}
public Resource getVisible() {
- return visible;
+ return tags.get(PROP_VISIBLE);
}
public Resource getFocusable() {
- return focusable;
+ return tags.get(PROP_FOCUSABLE);
+ }
+
+ public ILayer getILayer() {
+ return new SimpleLayer(name);
+ }
+
+ public Collection<Resource> getTags() {
+ return tags.values();
+ }
+
+ public void forEachTag(DbConsumer<Resource> consumer) throws DatabaseException {
+ for (Resource r : tags.values())
+ consumer.accept(r);
}
}
\ No newline at end of file