1 package org.simantics.document.server.client;
\r
3 import java.util.HashSet;
\r
4 import java.util.TreeMap;
\r
6 import org.simantics.document.server.IEventCommand;
\r
7 import org.simantics.document.server.JSONObject;
\r
9 public class WidgetData {
\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
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
23 @SuppressWarnings({ "rawtypes" })
\r
24 public Object createElement() {
\r
27 WidgetManager manager = document.getManager(object);
\r
28 return manager == null ? null : manager.createWidget(object);
\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
36 manager.updateChildren(document, object, widget, childmap);
\r
40 @SuppressWarnings({ "unchecked", "rawtypes" })
\r
41 public void updateProperties() {
\r
44 WidgetManager manager = document.getManager(object);
\r
46 manager.updateProperties(document, object, widget);
\r
49 @SuppressWarnings({ "rawtypes", "unchecked" })
\r
50 public void updateCommands() {
\r
54 // Then create the updated registrations
\r
55 CommandManager manager = document.getCommandManager(object);
\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
63 listenerRegistrations.clear();
\r
65 listenerRegistrations.addAll(manager.updateCommandListeners(document, object, widget));
\r
69 @SuppressWarnings({ "unchecked", "rawtypes" })
\r
70 public IEventCommand eventCommand(String command) {
\r
73 WidgetManager manager = document.getManager(object);
\r
75 return manager.eventCommand(document, object, widget, command);
\r