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