]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/CommandEventWidget.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / widget / CommandEventWidget.java
1 package org.simantics.document.swt.core.widget;\r
2 \r
3 import java.util.HashMap;\r
4 import java.util.List;\r
5 import java.util.TreeMap;\r
6 \r
7 import org.simantics.document.server.IEventCommand;\r
8 import org.simantics.document.server.JSONObject;\r
9 import org.simantics.document.server.bean.DataDefinition;\r
10 import org.simantics.document.server.client.WidgetData;\r
11 import org.simantics.document.server.client.WidgetManager;\r
12 import org.simantics.document.server.handler.AbstractEventHandler;\r
13 import org.simantics.document.swt.core.SWTDocument;\r
14 import org.simantics.document.swt.core.base.PostEventCommand;\r
15 import org.simantics.document.swt.core.base.PropertyWidgetManager;\r
16 \r
17 public class CommandEventWidget  extends PropertyWidgetManager<Object> {\r
18 \r
19     @Override\r
20     public Object createWidget(JSONObject object) {\r
21         return null;\r
22     }\r
23 \r
24     @Override\r
25     public void updateProperties(SWTDocument document, JSONObject object, Object widget) {\r
26         // No properties\r
27     }\r
28 \r
29     @Override\r
30     public void updateChildren(SWTDocument document, JSONObject object, Object widget,\r
31             TreeMap<String, WidgetData> childMap) {\r
32         // No children\r
33     }\r
34 \r
35     @Override\r
36     public IEventCommand eventCommand(SWTDocument document, JSONObject object, Object component, String command) {\r
37         if("event".equals(command)) {\r
38             List<DataDefinition> dataDefinitions = object.getJSONField("dataDefinitions");\r
39             HashMap<String, String> data = new HashMap<String, String>();\r
40             for(DataDefinition dd : dataDefinitions) {\r
41                 WidgetData wd = document.getWidgetData().get(dd.getElementId());\r
42                 if(wd != null && wd.object != null) {\r
43                     @SuppressWarnings("rawtypes")\r
44                     WidgetManager manager = document.getManager(wd.object);\r
45                     if(manager != null) {\r
46                         @SuppressWarnings("unchecked")\r
47                         String result = manager.getProperty(document, wd.object, wd.widget, dd.getProperty());\r
48                         data.put(dd.getTarget(), result);\r
49                     }\r
50                 }\r
51             }\r
52             AbstractEventHandler handler = object.getJSONField("SCLFunction");\r
53             return new PostEventCommand(document, handler, data);\r
54         } else {\r
55             return null;\r
56         }\r
57     }\r
58     \r
59 }\r