]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.model/src/org/simantics/browsing/ui/model/browsecontexts/BrowseContexts.java
Utility for creating NodeContext with NodeType from SCL
[simantics/platform.git] / bundles / org.simantics.browsing.ui.model / src / org / simantics / browsing / ui / model / browsecontexts / BrowseContexts.java
index 760f866e3d463d167b2e62a24d30a2dd2705641c..d8d02e014738f52044e7f20e9df08dbfba02c4d7 100644 (file)
@@ -5,10 +5,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import org.simantics.browsing.ui.BuiltinKeys;
 import org.simantics.browsing.ui.NodeContext;
 import org.simantics.browsing.ui.common.NodeContextBuilder;
 import org.simantics.browsing.ui.model.actions.ActionBrowseContext;
+import org.simantics.browsing.ui.model.nodetypes.EntityNodeType;
+import org.simantics.browsing.ui.model.nodetypes.NodeType;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.RequestProcessor;
 import org.simantics.db.Resource;
@@ -69,7 +70,17 @@ public final class BrowseContexts {
        }
        
        public static NodeContext getNodeContextForResource(Resource resource) {
-           return NodeContextBuilder.buildWithData(BuiltinKeys.INPUT, resource);
+               return NodeContextBuilder.buildWithInput(resource);
+       }
+
+       public static NodeContext getNodeContextWithTypeForResource(ReadGraph graph, Resource resource) {
+               try {
+                       return NodeContextBuilder.buildWithData(
+                                       NodeType.KEY_SEQUENCE,
+                                       new Object[] { resource, EntityNodeType.getNodeTypeFor(graph, resource) });
+               } catch (DatabaseException e) {
+                       return NodeContextBuilder.buildWithInput(resource);
+               }
        }
 
        public static class URIsToBrowseContext extends UnaryRead<List<String>, BrowseContext> {