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;
8 import org.simantics.document.server.io.CommandContext;
9 import org.simantics.document.server.io.ICommand;
11 public class WidgetData {
14 public JSONObject object;
15 public Document document;
16 public TreeMap<String, WidgetData> childmap = new TreeMap<String, WidgetData>(new AlphanumericComparator());
17 public HashSet<Object> listenerRegistrations = new HashSet<Object>();
19 public WidgetData(Document document, Object widget, JSONObject object) {
22 this.document = document;
25 @SuppressWarnings({ "rawtypes" })
26 public Object createElement() {
29 WidgetManager manager = document.getManager(object);
30 return manager == null ? null : manager.createWidget(object);
33 @SuppressWarnings({ "unchecked", "rawtypes" })
34 public void updateChildren() {
35 if(object != null && widget != null && childmap != null) {
36 WidgetManager manager = document.getManager(object);
38 manager.updateChildren(document, object, widget, childmap);
42 @SuppressWarnings({ "unchecked", "rawtypes" })
43 public void updateProperties() {
46 WidgetManager manager = document.getManager(object);
48 manager.updateProperties(document, object, widget);
51 @SuppressWarnings({ "rawtypes", "unchecked" })
52 public void updateCommands() {
56 // Then create the updated registrations
57 CommandManager manager = document.getCommandManager(object);
59 // First remove all handler registrations
61 for(Object listener : listenerRegistrations) {
62 manager.removeListener(widget, listener);
65 listenerRegistrations.clear();
67 listenerRegistrations.addAll(manager.updateCommandListeners(document, object, widget));
71 @SuppressWarnings({ "unchecked", "rawtypes" })
72 public IEventCommand eventCommand(ICommand command, CommandContext c) {
75 WidgetManager manager = document.getManager(object);
77 return manager.eventCommand(document, object, widget, command, c);