-package org.simantics.browsing.ui.model.browsecontexts;\r
-\r
-import java.util.Collection;\r
-\r
-import org.simantics.browsing.ui.BuiltinKeys;\r
-import org.simantics.browsing.ui.NodeContext;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.request.PossibleIndexRoot;\r
-import org.simantics.db.common.request.UnaryRead;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.variable.Variable;\r
-\r
-public class ResolveBrowseContext extends UnaryRead<NodeContext,BrowseContext> {\r
-\r
- public ResolveBrowseContext(NodeContext parameter) {\r
- super(parameter);\r
- }\r
-\r
- private Resource getPossibleResource(ReadGraph graph) throws DatabaseException {\r
- Object input = parameter.getConstant(BuiltinKeys.INPUT);\r
- if(input instanceof Resource) return (Resource)input;\r
- else if (input instanceof Variable) return ((Variable)input).getPossibleRepresents(graph);\r
- else return null;\r
- }\r
- \r
- private String getPossibleUIContext() {\r
- return parameter.getConstant(BuiltinKeys.UI_CONTEXT);\r
- }\r
- \r
- @Override\r
- public BrowseContext perform(ReadGraph graph) throws DatabaseException {\r
- \r
- Resource resource = getPossibleResource(graph);\r
- if(resource == null) return null;\r
- \r
- Resource indexRoot = graph.syncRequest(new PossibleIndexRoot(resource));\r
- if(indexRoot == null) return null;\r
- \r
- Collection<Resource> contexts = graph.syncRequest(new ContributedBrowseContexts(indexRoot, resource, getPossibleUIContext()));\r
- \r
- if(contexts.isEmpty()) return null;\r
- \r
- return graph.syncRequest(new BrowseContextRequest(contexts));\r
- \r
- }\r
-\r
-}\r
+package org.simantics.browsing.ui.model.browsecontexts;
+
+import java.util.Collection;
+
+import org.simantics.browsing.ui.BuiltinKeys;
+import org.simantics.browsing.ui.NodeContext;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.request.PossibleIndexRoot;
+import org.simantics.db.common.request.UnaryRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+
+public class ResolveBrowseContext extends UnaryRead<NodeContext,BrowseContext> {
+
+ public ResolveBrowseContext(NodeContext parameter) {
+ super(parameter);
+ }
+
+ private Resource getPossibleResource(ReadGraph graph) throws DatabaseException {
+ Object input = parameter.getConstant(BuiltinKeys.INPUT);
+ if(input instanceof Resource) return (Resource)input;
+ else if (input instanceof Variable) return ((Variable)input).getPossibleRepresents(graph);
+ else return null;
+ }
+
+ private String getPossibleUIContext() {
+ return parameter.getConstant(BuiltinKeys.UI_CONTEXT);
+ }
+
+ @Override
+ public BrowseContext perform(ReadGraph graph) throws DatabaseException {
+
+ Resource resource = getPossibleResource(graph);
+ if(resource == null) return null;
+
+ Resource indexRoot = graph.syncRequest(new PossibleIndexRoot(resource));
+ if(indexRoot == null) return null;
+
+ Collection<Resource> contexts = graph.syncRequest(new ContributedBrowseContexts(indexRoot, resource, getPossibleUIContext()));
+
+ if(contexts.isEmpty()) return null;
+
+ return graph.syncRequest(new BrowseContextRequest(contexts));
+
+ }
+
+}