--- /dev/null
+package org.simantics.document.swt.core;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.simantics.document.server.JSONObject;\r
+import org.simantics.document.server.client.CommandMapping;\r
+import org.simantics.document.server.client.CommandMappingImpl;\r
+import org.simantics.document.server.client.WidgetMapping;\r
+import org.simantics.document.server.client.WidgetMappingImpl;\r
+import org.simantics.document.swt.core.base.ScrolledCompositeContent;\r
+import org.simantics.document.swt.core.widget.BrowserWidget;\r
+import org.simantics.document.swt.core.widget.ButtonWidget;\r
+import org.simantics.document.swt.core.widget.ComboWidget;\r
+import org.simantics.document.swt.core.widget.CommandEventWidget;\r
+import org.simantics.document.swt.core.widget.Explorer;\r
+import org.simantics.document.swt.core.widget.FillComposite;\r
+import org.simantics.document.swt.core.widget.GridCell;\r
+import org.simantics.document.swt.core.widget.GridComposite;\r
+import org.simantics.document.swt.core.widget.LabelWidget;\r
+import org.simantics.document.swt.core.widget.SCLTextEditor;\r
+import org.simantics.document.swt.core.widget.ScrolledCompositeWidget;\r
+import org.simantics.document.swt.core.widget.TrackedTextWidget;\r
+\r
+public class SWTViews {\r
+\r
+ private static WidgetMappingImpl mapping = null;\r
+ \r
+ public static WidgetMapping getMapping() {\r
+ \r
+ if(mapping == null) {\r
+ mapping = new WidgetMappingImpl();\r
+ mapping.register("Root", new FillComposite());\r
+ mapping.register("GridComposite", new GridComposite());\r
+ mapping.register("ScrolledComposite", new ScrolledCompositeWidget());\r
+ mapping.register("GridCell", new GridCell());\r
+ mapping.register("Label", new LabelWidget());\r
+ mapping.register("Button", new ButtonWidget());\r
+ mapping.register("TrackedText", new TrackedTextWidget());\r
+ mapping.register("Combo", new ComboWidget());\r
+ mapping.register("Explorer", new Explorer());\r
+ mapping.register("CommandEvent", new CommandEventWidget());\r
+ mapping.register("Browser", new BrowserWidget());\r
+ mapping.register("SCLTextEditor", new SCLTextEditor());\r
+ }\r
+ \r
+ return mapping;\r
+ \r
+ }\r
+ \r
+ private static CommandMappingImpl commandMapping = null;\r
+ \r
+ public static CommandMapping getCommandMapping() {\r
+ \r
+ if(commandMapping == null) {\r
+ \r
+ commandMapping = new CommandMappingImpl();\r
+ commandMapping.register("Button", new ButtonWidget.ButtonCommandManager());\r
+ \r
+ }\r
+ \r
+ return commandMapping;\r
+ \r
+ }\r
+\r
+ public static void notifyScrolledComposite(Control c) {\r
+ if(c instanceof ScrolledCompositeContent) {\r
+ ScrolledCompositeContent content = (ScrolledCompositeContent)c;\r
+ content.refreshSize();\r
+ return;\r
+ }\r
+ Composite parent = c.getParent();\r
+ if(parent == null) return;\r
+ notifyScrolledComposite(parent);\r
+ }\r
+ \r
+ public static Map<String, Object> encoded = new HashMap<String, Object>();\r
+ \r
+ public static String encode(JSONObject object, String property, Object data) {\r
+ String key = object.getId() + "#" + property;\r
+ encoded.put(key, data);\r
+ return key;\r
+ }\r
+ \r
+ public static Object decode(String key) {\r
+ return encoded.get(key);\r
+ }\r
+ \r
+}\r