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