]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/traits/DiagramElementTrait.java
Added missing org.simantics.modeling.tests plug-ins.
[simantics/platform.git] / bundles / org.simantics.modeling.tests / src / org / simantics / modeling / tests / traits / DiagramElementTrait.java
diff --git a/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/traits/DiagramElementTrait.java b/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/traits/DiagramElementTrait.java
new file mode 100644 (file)
index 0000000..134572a
--- /dev/null
@@ -0,0 +1,29 @@
+package org.simantics.modeling.tests.traits;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.uri.UnescapedChildMapOfResource;
+import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.modeling.ModelingResources;
+
+public class DiagramElementTrait extends AbstractSingleResourceTrait {
+       
+       public SingleResourceTrait diagram;
+       public String name;
+       
+       public DiagramElementTrait(SingleResourceTrait diagram, String name) {
+               this.diagram = diagram;
+               this.name = name;
+       }
+       
+       @Override
+       public Resource getResource(ReadGraph graph) throws DatabaseException {
+               ModelingResources MOD = ModelingResources.getInstance(graph);
+               Resource composite = graph.getSingleObject(diagram.getResource(), MOD.DiagramToComposite);
+               Resource child = graph.sync(new UnescapedChildMapOfResource(composite)).get(name);
+               if(child == null) throw new DatabaseException("No child " + child + " for " + NameUtils.getSafeName(graph, composite));
+               return graph.getSingleObject(child, MOD.ComponentToElement);
+       }
+       
+}