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