]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.views.swt.client/src/org/simantics/views/swt/client/base/SWTRoot.java
Several Wiki documentation view improvements.
[simantics/platform.git] / bundles / org.simantics.views.swt.client / src / org / simantics / views / swt / client / base / SWTRoot.java
1 package org.simantics.views.swt.client.base;\r
2 \r
3 import org.eclipse.jface.resource.JFaceResources;\r
4 import org.eclipse.jface.resource.LocalResourceManager;\r
5 import org.eclipse.jface.resource.ResourceManager;\r
6 import org.eclipse.swt.widgets.Composite;\r
7 import org.eclipse.swt.widgets.Control;\r
8 import org.eclipse.ui.IWorkbenchSite;\r
9 \r
10 public class SWTRoot extends SWTParentNode implements ISWTViewNode {\r
11 \r
12         private static final long serialVersionUID = -3208359073385767918L;\r
13 \r
14         private final IWorkbenchSite site;\r
15 \r
16         private LocalResourceManager resourceManager;\r
17 \r
18         private Composite body;\r
19 \r
20         public SWTRoot(IWorkbenchSite site) {\r
21                 this.site = site;\r
22         }\r
23 \r
24         @Override\r
25         public void reset() {\r
26         }\r
27         \r
28         @Override\r
29         public SWTRoot getRootNode() {\r
30                 // This is a root node!\r
31                 return this;\r
32         }\r
33 \r
34         public ResourceManager getResourceManager() {\r
35                 if (resourceManager == null)\r
36                         throw new IllegalStateException("resource manager is null");\r
37                 return resourceManager;\r
38         }\r
39 \r
40         public ResourceManager peekResourceManager() {\r
41                 return resourceManager;\r
42         }\r
43 \r
44         @Override\r
45         public Control getControl() {\r
46                 return body;\r
47         }\r
48 \r
49         @Override\r
50         public IWorkbenchSite getSite() {\r
51                 return site;\r
52         }\r
53         \r
54         public void setFocus() {\r
55                 body.setFocus();\r
56         }\r
57         \r
58         public void setVisible(boolean value) {\r
59                 body.setVisible(value);\r
60         }\r
61         \r
62         public void createControls(Composite parent) {\r
63                 body = parent;\r
64                 resourceManager = new LocalResourceManager(JFaceResources.getResources(), body);\r
65                 for(ISWTViewNode child : children.values()) child.createControls(body);\r
66         }\r
67         \r
68         public Control getSingleChild() {\r
69                 if(children.size() != 1) throw new IllegalStateException("SWTRoot should have exactly one child (has " + children.size() + ").");\r
70                 return children.values().iterator().next().getControl();\r
71         }\r
72         \r
73 }\r