]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/SWTViews.java
468bf7bdaec4295d561e25b2f32e1212dcc06eef
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / SWTViews.java
1 package org.simantics.document.swt.core;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
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;
26
27 public class SWTViews {
28
29         private static WidgetMappingImpl mapping = null;
30         
31         public static WidgetMapping getMapping() {
32                 
33                 if(mapping == null) {
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());
47                 }
48                 
49                 return mapping;
50                 
51         }
52         
53     private static CommandMappingImpl commandMapping = null;
54     
55     public static CommandMapping getCommandMapping() {
56         
57         if(commandMapping == null) {
58             
59             commandMapping = new CommandMappingImpl();
60             commandMapping.register("Button", new ButtonWidget.ButtonCommandManager());
61             
62         }
63         
64         return commandMapping;
65         
66     }
67
68         public static void notifyScrolledComposite(Control c) {
69                 if(c instanceof ScrolledCompositeContent) {
70                         ScrolledCompositeContent content = (ScrolledCompositeContent)c;
71                         content.refreshSize();
72                         return;
73                 }
74                 Composite parent = c.getParent();
75                 if(parent == null) return;
76                 notifyScrolledComposite(parent);
77         }
78         
79         public static Map<String, Object> encoded = new HashMap<String, Object>();
80         
81         public static String encode(JSONObject object, String property, Object data) {
82             String key = object.getId() + "#" + property;
83             encoded.put(key, data);
84             return key;
85         }
86         
87         public static Object decode(String key) {
88             return encoded.get(key);
89         }
90         
91 }