1 package org.simantics.document.swt.core.widget;
\r
3 import java.util.HashMap;
\r
4 import java.util.List;
\r
5 import java.util.TreeMap;
\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
17 public class CommandEventWidget extends PropertyWidgetManager<Object> {
\r
20 public Object createWidget(JSONObject object) {
\r
25 public void updateProperties(SWTDocument document, JSONObject object, Object widget) {
\r
30 public void updateChildren(SWTDocument document, JSONObject object, Object widget,
\r
31 TreeMap<String, WidgetData> childMap) {
\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
52 AbstractEventHandler handler = object.getJSONField("SCLFunction");
\r
53 return new PostEventCommand(document, handler, data);
\r