X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.views.swt%2Fsrc%2Forg%2Fsimantics%2Fviews%2Fswt%2Floader%2FExplorerLoader.java.keep;h=a767ed970d7db4d8561a83c5410e14d2229464ee;hb=894991ee53490cb8e28dd48b0da686203411324a;hp=4116086debc6757157b6e389ea67ce9d7d1c75f3;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.views.swt/src/org/simantics/views/swt/loader/ExplorerLoader.java.keep b/bundles/org.simantics.views.swt/src/org/simantics/views/swt/loader/ExplorerLoader.java.keep index 4116086de..a767ed970 100644 --- a/bundles/org.simantics.views.swt/src/org/simantics/views/swt/loader/ExplorerLoader.java.keep +++ b/bundles/org.simantics.views.swt/src/org/simantics/views/swt/loader/ExplorerLoader.java.keep @@ -1,109 +1,109 @@ -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 parent, final Variable context) throws DatabaseException { - - SWTExplorer node = parent.addNode(SWTExplorer.class); - - node.setStyle(LoaderUtils.getStyle(configuration)); - - String browseContextURI = Simantics.getSession().sync(new ResourceRead(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(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; - - } - -} - +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 parent, final Variable context) throws DatabaseException { + + SWTExplorer node = parent.addNode(SWTExplorer.class); + + node.setStyle(LoaderUtils.getStyle(configuration)); + + String browseContextURI = Simantics.getSession().sync(new ResourceRead(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(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; + + } + +} +