-package org.simantics.views.swt.loader;\r
-\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.widgets.Event;\r
-import org.eclipse.swt.widgets.Listener;\r
-import org.eclipse.swt.widgets.TreeItem;\r
-import org.simantics.browsing.ui.BuiltinKeys;\r
-import org.simantics.browsing.ui.NodeContext;\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.VirtualGraph;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.ResourceRead;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.util.Simantics;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.scenegraph.ParentNode;\r
-import org.simantics.scenegraph.loader.ScenegraphLoader;\r
-import org.simantics.views.ViewUtils;\r
-import org.simantics.views.ontology.ViewsResources;\r
-import org.simantics.views.swt.client.base.ISWTViewNode;\r
-import org.simantics.views.swt.client.impl.SWTExplorer;\r
-\r
-public class ExplorerLoader implements ScenegraphLoader {\r
-\r
- final private Resource configuration;\r
- \r
- public ExplorerLoader(Resource configuration) {\r
- this.configuration = configuration;\r
- }\r
- \r
- @Override\r
- public ISWTViewNode create(ParentNode<ISWTViewNode> parent, final Variable context) throws DatabaseException {\r
- \r
- SWTExplorer node = parent.addNode(SWTExplorer.class);\r
- \r
- node.setStyle(LoaderUtils.getStyle(configuration));\r
-\r
- String browseContextURI = Simantics.getSession().sync(new ResourceRead<String>(configuration) {\r
-\r
- @Override\r
- public String perform(ReadGraph graph) throws DatabaseException {\r
- ViewsResources VIEW = ViewsResources.getInstance(graph);\r
- Resource browseContext = graph.getSingleObject(resource, VIEW.Explorer_BrowseContext);\r
- return graph.getURI(browseContext);\r
- }\r
- \r
- });\r
- \r
- node.setBrowseContextURI(browseContextURI);\r
- \r
- node.setLayoutData(LoaderUtils.getGridData(configuration));\r
- \r
- node.setColumns(LoaderUtils.getColumns(configuration));\r
- \r
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.Explorer_InputTransformation, node.getInputFunction());\r
-\r
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.Explorer_HasColumnsVisible, node.getColumnsVisibleFunction());\r
- \r
- Listener selectionListener = Simantics.getSession().sync(new ResourceRead<Listener>(configuration) {\r
-\r
- @Override\r
- public Listener perform(ReadGraph graph) throws DatabaseException {\r
- ViewsResources VIEW = ViewsResources.getInstance(graph);\r
- Resource listener = graph.getPossibleObject(resource, VIEW.Explorer_SelectionListener);\r
- if(listener == null) return null;\r
- return graph.adapt(listener, Listener.class);\r
- }\r
- \r
- });\r
- \r
- if(selectionListener != null) node.addListenerToControl(SWT.Selection, selectionListener);\r
- \r
- node.addListenerToControl(SWT.Selection, new Listener() {\r
- \r
- @Override\r
- public void handleEvent(Event event) {\r
- \r
- TreeItem item = (TreeItem)event.item;\r
-// Tree tree = item.getParent();\r
-// GraphExplorer explorer = (GraphExplorer)tree.getData("GraphExplorer");\r
-// final Resource runtimeDiagram = (Resource)explorer.getRoot().getConstant(BuiltinKeys.INPUT);\r
-// final boolean checked = item.getChecked();\r
- NodeContext nc = (NodeContext)item.getData();\r
- Object obj = nc.getConstant(BuiltinKeys.INPUT);\r
-\r
- if (obj instanceof Variable) {\r
- final Variable var = (Variable) obj;\r
- Simantics.getSession().async(new WriteRequest(Simantics.getSession().getService(VirtualGraph.class)) {\r
- @Override\r
- public void perform(WriteGraph graph) throws DatabaseException {\r
- ViewsResources VIEW = ViewsResources.getInstance(graph);\r
- System.err.println("setParameter " + context.getURI(graph) + " -> " + var.getURI(graph));\r
- ViewUtils.setParameter(graph, context, VIEW.Explorer_Selection, var.getURI(graph), Bindings.STRING);\r
- }\r
- });\r
- }\r
- }\r
- \r
- });\r
- \r
- return node;\r
- \r
- }\r
- \r
-}\r
-\r
+package org.simantics.views.swt.loader;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.TreeItem;
+import org.simantics.browsing.ui.BuiltinKeys;
+import org.simantics.browsing.ui.NodeContext;
+import org.simantics.databoard.Bindings;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.VirtualGraph;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.ResourceRead;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.Simantics;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.scenegraph.ParentNode;
+import org.simantics.scenegraph.loader.ScenegraphLoader;
+import org.simantics.views.ViewUtils;
+import org.simantics.views.ontology.ViewsResources;
+import org.simantics.views.swt.client.base.ISWTViewNode;
+import org.simantics.views.swt.client.impl.SWTExplorer;
+
+public class ExplorerLoader implements ScenegraphLoader {
+
+ final private Resource configuration;
+
+ public ExplorerLoader(Resource configuration) {
+ this.configuration = configuration;
+ }
+
+ @Override
+ public ISWTViewNode create(ParentNode<ISWTViewNode> parent, final Variable context) throws DatabaseException {
+
+ SWTExplorer node = parent.addNode(SWTExplorer.class);
+
+ node.setStyle(LoaderUtils.getStyle(configuration));
+
+ String browseContextURI = Simantics.getSession().sync(new ResourceRead<String>(configuration) {
+
+ @Override
+ public String perform(ReadGraph graph) throws DatabaseException {
+ ViewsResources VIEW = ViewsResources.getInstance(graph);
+ Resource browseContext = graph.getSingleObject(resource, VIEW.Explorer_BrowseContext);
+ return graph.getURI(browseContext);
+ }
+
+ });
+
+ node.setBrowseContextURI(browseContextURI);
+
+ node.setLayoutData(LoaderUtils.getGridData(configuration));
+
+ node.setColumns(LoaderUtils.getColumns(configuration));
+
+ LoaderUtils.listen(configuration, context, ViewsResources.URIs.Explorer_InputTransformation, node.getInputFunction());
+
+ LoaderUtils.listen(configuration, context, ViewsResources.URIs.Explorer_HasColumnsVisible, node.getColumnsVisibleFunction());
+
+ Listener selectionListener = Simantics.getSession().sync(new ResourceRead<Listener>(configuration) {
+
+ @Override
+ public Listener perform(ReadGraph graph) throws DatabaseException {
+ ViewsResources VIEW = ViewsResources.getInstance(graph);
+ Resource listener = graph.getPossibleObject(resource, VIEW.Explorer_SelectionListener);
+ if(listener == null) return null;
+ return graph.adapt(listener, Listener.class);
+ }
+
+ });
+
+ if(selectionListener != null) node.addListenerToControl(SWT.Selection, selectionListener);
+
+ node.addListenerToControl(SWT.Selection, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+
+ TreeItem item = (TreeItem)event.item;
+// Tree tree = item.getParent();
+// GraphExplorer explorer = (GraphExplorer)tree.getData("GraphExplorer");
+// final Resource runtimeDiagram = (Resource)explorer.getRoot().getConstant(BuiltinKeys.INPUT);
+// final boolean checked = item.getChecked();
+ NodeContext nc = (NodeContext)item.getData();
+ Object obj = nc.getConstant(BuiltinKeys.INPUT);
+
+ if (obj instanceof Variable) {
+ final Variable var = (Variable) obj;
+ Simantics.getSession().async(new WriteRequest(Simantics.getSession().getService(VirtualGraph.class)) {
+ @Override
+ public void perform(WriteGraph graph) throws DatabaseException {
+ ViewsResources VIEW = ViewsResources.getInstance(graph);
+ System.err.println("setParameter " + context.getURI(graph) + " -> " + var.getURI(graph));
+ ViewUtils.setParameter(graph, context, VIEW.Explorer_Selection, var.getURI(graph), Bindings.STRING);
+ }
+ });
+ }
+ }
+
+ });
+
+ return node;
+
+ }
+
+}
+