]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.server/src/org/simantics/document/server/client/WidgetData.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / client / WidgetData.java
diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/client/WidgetData.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/client/WidgetData.java
new file mode 100644 (file)
index 0000000..a7da068
--- /dev/null
@@ -0,0 +1,80 @@
+package org.simantics.document.server.client;\r
+\r
+import java.util.HashSet;\r
+import java.util.TreeMap;\r
+\r
+import org.simantics.document.server.IEventCommand;\r
+import org.simantics.document.server.JSONObject;\r
+\r
+public class WidgetData {\r
+       \r
+       public Object widget;\r
+       public JSONObject object;\r
+       public Document document;\r
+       public TreeMap<String, WidgetData> childmap = new TreeMap<String, WidgetData>(new AlphanumericComparator());\r
+    public HashSet<Object> listenerRegistrations = new HashSet<Object>();\r
+\r
+       public WidgetData(Document document, Object widget, JSONObject object) {\r
+               this.widget = widget;\r
+               this.object = object;\r
+               this.document = document;\r
+       }\r
+       \r
+       @SuppressWarnings({ "rawtypes" })\r
+       public Object createElement() {\r
+               if(object == null)\r
+                       return null;\r
+               WidgetManager manager = document.getManager(object);\r
+               return manager == null ? null : manager.createWidget(object);\r
+       }\r
+       \r
+       @SuppressWarnings({ "unchecked", "rawtypes" })\r
+       public void updateChildren() {\r
+               if(object != null && widget != null && childmap != null) {\r
+                       WidgetManager manager = document.getManager(object);\r
+                       if(manager != null)\r
+                               manager.updateChildren(document, object, widget, childmap);\r
+               }\r
+       }\r
+       \r
+       @SuppressWarnings({ "unchecked", "rawtypes" })\r
+       public void updateProperties() {\r
+               if(object == null)\r
+                       return;\r
+               WidgetManager manager = document.getManager(object);\r
+               if(manager != null)\r
+                       manager.updateProperties(document, object, widget);             \r
+       }\r
+       \r
+    @SuppressWarnings({ "rawtypes", "unchecked" })\r
+    public void updateCommands() {\r
+        if(object == null)\r
+            return;\r
+        \r
+        // Then create the updated registrations\r
+        CommandManager manager = document.getCommandManager(object); \r
+        \r
+        // First remove all handler registrations\r
+        if(manager != null) {\r
+               for(Object listener : listenerRegistrations) {\r
+                       manager.removeListener(widget, listener);\r
+               }\r
+        }\r
+        listenerRegistrations.clear();\r
+        if(manager != null)\r
+            listenerRegistrations.addAll(manager.updateCommandListeners(document, object, widget));\r
+        \r
+    }\r
+    \r
+    @SuppressWarnings({ "unchecked", "rawtypes" })\r
+    public IEventCommand eventCommand(String command) {\r
+        if(object == null)\r
+            return null;\r
+        WidgetManager manager = document.getManager(object);\r
+        if(manager != null)\r
+            return manager.eventCommand(document, object, widget, command); \r
+        else\r
+            return null;\r
+    }\r
+       \r
+}\r