]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.views.swt/src/org/simantics/views/swt/ModelledWizardPageImpl.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.views.swt / src / org / simantics / views / swt / ModelledWizardPageImpl.java
1 package org.simantics.views.swt;\r
2 \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
18 \r
19 public class ModelledWizardPageImpl implements ModelledWizardPage {\r
20 \r
21         final private Resource configuration;\r
22         private SWTRoot root;\r
23         \r
24         public ModelledWizardPageImpl(Resource configuration) {\r
25                 this.configuration = configuration;\r
26         }\r
27         \r
28         @Override\r
29         public SWTRoot getRoot() {\r
30                 return root;\r
31         }\r
32 \r
33         class Page extends WizardPage {\r
34 \r
35                 final private Resource runtime;\r
36                 \r
37                 public Page(String title, Resource runtime) {\r
38                         super(title, title, null);\r
39                         this.runtime = runtime;\r
40                 }\r
41                 \r
42                 @Override\r
43                 public void createControl(Composite parent) {\r
44 \r
45                         try {\r
46 \r
47                                 Resource control = Simantics.getSession().sync(new UniqueRead<Resource>() {\r
48                                         @Override\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
52                                         }\r
53                                 });\r
54                                 \r
55                                 SWTViewLoaderProcess process = new SWTViewLoaderProcess(null, null);\r
56                                 root = process.load(control, runtime);\r
57                                 root.createControls(parent);\r
58 \r
59                                 setControl(root.getSingleChild());\r
60 \r
61                         } catch (DatabaseException e) {\r
62                                 \r
63                                 e.printStackTrace();\r
64                                 Logger.defaultLogError(e);\r
65                                 \r
66                         }\r
67                         \r
68                 }\r
69                 \r
70         }\r
71         \r
72         public IWizardPage create(ISessionContext context, WidgetSupport support, Resource runtime) throws DatabaseException {\r
73 \r
74                 String title = Simantics.getSession().syncRequest(new Read<String>() {\r
75                         @Override\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
79                         }\r
80                 });\r
81 \r
82                 return new Page(title, runtime);\r
83                 \r
84         }\r
85         \r
86 }\r