]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.server/src/org/simantics/document/server/client/WidgetData.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / client / WidgetData.java
1 package org.simantics.document.server.client;\r
2 \r
3 import java.util.HashSet;\r
4 import java.util.TreeMap;\r
5 \r
6 import org.simantics.document.server.IEventCommand;\r
7 import org.simantics.document.server.JSONObject;\r
8 \r
9 public class WidgetData {\r
10         \r
11         public Object widget;\r
12         public JSONObject object;\r
13         public Document document;\r
14         public TreeMap<String, WidgetData> childmap = new TreeMap<String, WidgetData>(new AlphanumericComparator());\r
15     public HashSet<Object> listenerRegistrations = new HashSet<Object>();\r
16 \r
17         public WidgetData(Document document, Object widget, JSONObject object) {\r
18                 this.widget = widget;\r
19                 this.object = object;\r
20                 this.document = document;\r
21         }\r
22         \r
23         @SuppressWarnings({ "rawtypes" })\r
24         public Object createElement() {\r
25                 if(object == null)\r
26                         return null;\r
27                 WidgetManager manager = document.getManager(object);\r
28                 return manager == null ? null : manager.createWidget(object);\r
29         }\r
30         \r
31         @SuppressWarnings({ "unchecked", "rawtypes" })\r
32         public void updateChildren() {\r
33                 if(object != null && widget != null && childmap != null) {\r
34                         WidgetManager manager = document.getManager(object);\r
35                         if(manager != null)\r
36                                 manager.updateChildren(document, object, widget, childmap);\r
37                 }\r
38         }\r
39         \r
40         @SuppressWarnings({ "unchecked", "rawtypes" })\r
41         public void updateProperties() {\r
42                 if(object == null)\r
43                         return;\r
44                 WidgetManager manager = document.getManager(object);\r
45                 if(manager != null)\r
46                         manager.updateProperties(document, object, widget);             \r
47         }\r
48         \r
49     @SuppressWarnings({ "rawtypes", "unchecked" })\r
50     public void updateCommands() {\r
51         if(object == null)\r
52             return;\r
53         \r
54         // Then create the updated registrations\r
55         CommandManager manager = document.getCommandManager(object); \r
56         \r
57         // First remove all handler registrations\r
58         if(manager != null) {\r
59                 for(Object listener : listenerRegistrations) {\r
60                         manager.removeListener(widget, listener);\r
61                 }\r
62         }\r
63         listenerRegistrations.clear();\r
64         if(manager != null)\r
65             listenerRegistrations.addAll(manager.updateCommandListeners(document, object, widget));\r
66         \r
67     }\r
68     \r
69     @SuppressWarnings({ "unchecked", "rawtypes" })\r
70     public IEventCommand eventCommand(String command) {\r
71         if(object == null)\r
72             return null;\r
73         WidgetManager manager = document.getManager(object);\r
74         if(manager != null)\r
75             return manager.eventCommand(document, object, widget, command); \r
76         else\r
77             return null;\r
78     }\r
79         \r
80 }\r