package org.simantics.document.server.client; import java.util.HashSet; import java.util.TreeMap; import org.simantics.document.server.IEventCommand; import org.simantics.document.server.JSONObject; public class WidgetData { public Object widget; public JSONObject object; public Document document; public TreeMap childmap = new TreeMap(new AlphanumericComparator()); public HashSet listenerRegistrations = new HashSet(); public WidgetData(Document document, Object widget, JSONObject object) { this.widget = widget; this.object = object; this.document = document; } @SuppressWarnings({ "rawtypes" }) public Object createElement() { if(object == null) return null; WidgetManager manager = document.getManager(object); return manager == null ? null : manager.createWidget(object); } @SuppressWarnings({ "unchecked", "rawtypes" }) public void updateChildren() { if(object != null && widget != null && childmap != null) { WidgetManager manager = document.getManager(object); if(manager != null) manager.updateChildren(document, object, widget, childmap); } } @SuppressWarnings({ "unchecked", "rawtypes" }) public void updateProperties() { if(object == null) return; WidgetManager manager = document.getManager(object); if(manager != null) manager.updateProperties(document, object, widget); } @SuppressWarnings({ "rawtypes", "unchecked" }) public void updateCommands() { if(object == null) return; // Then create the updated registrations CommandManager manager = document.getCommandManager(object); // First remove all handler registrations if(manager != null) { for(Object listener : listenerRegistrations) { manager.removeListener(widget, listener); } } listenerRegistrations.clear(); if(manager != null) listenerRegistrations.addAll(manager.updateCommandListeners(document, object, widget)); } @SuppressWarnings({ "unchecked", "rawtypes" }) public IEventCommand eventCommand(String command) { if(object == null) return null; WidgetManager manager = document.getManager(object); if(manager != null) return manager.eventCommand(document, object, widget, command); else return null; } }