X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.browsing.ui.model%2Fsrc%2Forg%2Fsimantics%2Fbrowsing%2Fui%2Fmodel%2Fbrowsecontexts%2FResolveBrowseContext.java;h=ee9a09bdae7a7f7830a9ede41ddaed2bef49d242;hp=480e3111989fe06d06bfa64de1021de30a62ed08;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/ResolveBrowseContext.java b/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/ResolveBrowseContext.java index 480e31119..ee9a09bda 100644 --- a/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/ResolveBrowseContext.java +++ b/bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/ResolveBrowseContext.java @@ -1,48 +1,48 @@ -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 { - - 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 contexts = graph.syncRequest(new ContributedBrowseContexts(indexRoot, resource, getPossibleUIContext())); - - if(contexts.isEmpty()) return null; - - return graph.syncRequest(new BrowseContextRequest(contexts)); - - } - -} +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 { + + 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 contexts = graph.syncRequest(new ContributedBrowseContexts(indexRoot, resource, getPossibleUIContext())); + + if(contexts.isEmpty()) return null; + + return graph.syncRequest(new BrowseContextRequest(contexts)); + + } + +}