1 package org.simantics.document.swt.core;
3 import java.util.HashMap;
6 import org.eclipse.swt.widgets.Composite;
7 import org.eclipse.swt.widgets.Control;
8 import org.simantics.document.server.JSONObject;
9 import org.simantics.document.server.client.CommandMapping;
10 import org.simantics.document.server.client.CommandMappingImpl;
11 import org.simantics.document.server.client.WidgetMapping;
12 import org.simantics.document.server.client.WidgetMappingImpl;
13 import org.simantics.document.swt.core.base.ScrolledCompositeContent;
14 import org.simantics.document.swt.core.widget.BrowserWidget;
15 import org.simantics.document.swt.core.widget.ButtonWidget;
16 import org.simantics.document.swt.core.widget.ComboWidget;
17 import org.simantics.document.swt.core.widget.CommandEventWidget;
18 import org.simantics.document.swt.core.widget.Explorer;
19 import org.simantics.document.swt.core.widget.FillComposite;
20 import org.simantics.document.swt.core.widget.GridCell;
21 import org.simantics.document.swt.core.widget.GridComposite;
22 import org.simantics.document.swt.core.widget.LabelWidget;
23 import org.simantics.document.swt.core.widget.SCLTextEditor;
24 import org.simantics.document.swt.core.widget.ScrolledCompositeWidget;
25 import org.simantics.document.swt.core.widget.TrackedTextWidget;
27 public class SWTViews {
29 private static WidgetMappingImpl mapping = null;
31 public static WidgetMapping getMapping() {
34 mapping = new WidgetMappingImpl();
35 mapping.register("Root", new FillComposite());
36 mapping.register("GridComposite", new GridComposite());
37 mapping.register("ScrolledComposite", new ScrolledCompositeWidget());
38 mapping.register("GridCell", new GridCell());
39 mapping.register("Label", new LabelWidget());
40 mapping.register("Button", new ButtonWidget());
41 mapping.register("TrackedText", new TrackedTextWidget());
42 mapping.register("Combo", new ComboWidget());
43 mapping.register("Explorer", new Explorer());
44 mapping.register("CommandEvent", new CommandEventWidget());
45 mapping.register("Browser", new BrowserWidget());
46 mapping.register("SCLTextEditor", new SCLTextEditor());
53 private static CommandMappingImpl commandMapping = null;
55 public static CommandMapping getCommandMapping() {
57 if(commandMapping == null) {
59 commandMapping = new CommandMappingImpl();
60 commandMapping.register("Button", new ButtonWidget.ButtonCommandManager());
64 return commandMapping;
68 public static void notifyScrolledComposite(Control c) {
69 if(c instanceof ScrolledCompositeContent) {
70 ScrolledCompositeContent content = (ScrolledCompositeContent)c;
71 content.refreshSize();
74 Composite parent = c.getParent();
75 if(parent == null) return;
76 notifyScrolledComposite(parent);
79 public static Map<String, Object> encoded = new HashMap<String, Object>();
81 public static String encode(JSONObject object, String property, Object data) {
82 String key = object.getId() + "#" + property;
83 encoded.put(key, data);
87 public static Object decode(String key) {
88 return encoded.get(key);