1 package org.simantics.views.swt;
\r
3 import org.eclipse.jface.wizard.IWizardPage;
\r
4 import org.eclipse.jface.wizard.WizardPage;
\r
5 import org.eclipse.swt.widgets.Composite;
\r
6 import org.simantics.Simantics;
\r
7 import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport;
\r
8 import org.simantics.databoard.Bindings;
\r
9 import org.simantics.db.ReadGraph;
\r
10 import org.simantics.db.Resource;
\r
11 import org.simantics.db.common.request.UniqueRead;
\r
12 import org.simantics.db.common.utils.Logger;
\r
13 import org.simantics.db.exception.DatabaseException;
\r
14 import org.simantics.db.management.ISessionContext;
\r
15 import org.simantics.db.request.Read;
\r
16 import org.simantics.views.ontology.ViewsResources;
\r
17 import org.simantics.views.swt.client.base.SWTRoot;
\r
19 public class ModelledWizardPageImpl implements ModelledWizardPage {
\r
21 final private Resource configuration;
\r
22 private SWTRoot root;
\r
24 public ModelledWizardPageImpl(Resource configuration) {
\r
25 this.configuration = configuration;
\r
29 public SWTRoot getRoot() {
\r
33 class Page extends WizardPage {
\r
35 final private Resource runtime;
\r
37 public Page(String title, Resource runtime) {
\r
38 super(title, title, null);
\r
39 this.runtime = runtime;
\r
43 public void createControl(Composite parent) {
\r
47 Resource control = Simantics.getSession().sync(new UniqueRead<Resource>() {
\r
49 public Resource perform(ReadGraph graph) throws DatabaseException {
\r
50 ViewsResources VIEW = ViewsResources.getInstance(graph);
\r
51 return graph.getPossibleObject(configuration, VIEW.Wizard_Page_Control);
\r
55 SWTViewLoaderProcess process = new SWTViewLoaderProcess(null, null);
\r
56 root = process.load(control, runtime);
\r
57 root.createControls(parent);
\r
59 setControl(root.getSingleChild());
\r
61 } catch (DatabaseException e) {
\r
63 e.printStackTrace();
\r
64 Logger.defaultLogError(e);
\r
72 public IWizardPage create(ISessionContext context, WidgetSupport support, Resource runtime) throws DatabaseException {
\r
74 String title = Simantics.getSession().syncRequest(new Read<String>() {
\r
76 public String perform(ReadGraph graph) throws DatabaseException {
\r
77 ViewsResources VIEW = ViewsResources.getInstance(graph);
\r
78 return graph.getPossibleRelatedValue(configuration, VIEW.Wizard_Page_Title, Bindings.STRING);
\r
82 return new Page(title, runtime);
\r