]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/base/LeafWidgetManager.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / base / LeafWidgetManager.java
1 package org.simantics.document.swt.core.base;\r
2 \r
3 \r
4 import java.util.TreeMap;\r
5 \r
6 import org.eclipse.swt.widgets.Composite;\r
7 import org.eclipse.swt.widgets.Control;\r
8 import org.simantics.document.server.JSONObject;\r
9 import org.simantics.document.server.client.WidgetData;\r
10 import org.simantics.document.swt.core.SWTDocument;\r
11 \r
12 public abstract class LeafWidgetManager<W extends Control> extends PropertyWidgetManager<WidgetContainer<W>> {\r
13 \r
14         class Container extends WidgetContainer<W> {\r
15                 \r
16                 @SuppressWarnings("unchecked")\r
17                 @Override\r
18                 protected void doUpdateProperties(SWTDocument document, Control control, JSONObject object) {\r
19                         LeafWidgetManager.this.doUpdateProperties(document, (W)control, object);\r
20                 }\r
21                 \r
22                 @Override\r
23                 protected Control doCreateControl(SWTDocument document, Composite parent, JSONObject object) {\r
24                         return LeafWidgetManager.this.doCreateControl(document, parent, object);\r
25                 }\r
26                 \r
27         }\r
28         \r
29         @Override\r
30         public WidgetContainer<W> createWidget(JSONObject object) {\r
31                 return new Container();\r
32         }       \r
33         \r
34         @Override\r
35         public void updateChildren(SWTDocument document, JSONObject object, WidgetContainer<W> widget, TreeMap<String,WidgetData> childMap) {\r
36                 throw new UnsupportedOperationException("Widget type " + object.getType() + " does not support children");\r
37         }\r
38         \r
39         @Override\r
40         public void updateProperties(SWTDocument document, JSONObject object, WidgetContainer<W> widget) {\r
41                 widget.updateProperties(document, object);\r
42         }\r
43         \r
44         abstract protected void doUpdateProperties(SWTDocument document, W control, JSONObject object);\r
45         abstract protected W doCreateControl(SWTDocument document, Composite parent, JSONObject object);\r
46         \r
47 }