]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/SWTDocumentClient.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / SWTDocumentClient.java
index 99cbf6c310587ed1217d3bca77a6ca3c8279ae4c..58c280595b0ac8fd31de57ca3d5cd6a45fdbaebd 100644 (file)
-package org.simantics.document.swt.core;\r
-\r
-import java.util.Collection;\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.Map;\r
-\r
-import org.eclipse.jface.layout.GridDataFactory;\r
-import org.eclipse.jface.layout.GridLayoutFactory;\r
-import org.eclipse.jface.viewers.ISelectionProvider;\r
-import org.eclipse.swt.graphics.Color;\r
-import org.eclipse.swt.graphics.Device;\r
-import org.eclipse.swt.graphics.Font;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.ui.IWorkbenchSite;\r
-import org.simantics.db.common.utils.Logger;\r
-import org.simantics.document.server.JSONObject;\r
-import org.simantics.document.server.client.DocumentClient;\r
-import org.simantics.document.server.client.WidgetData;\r
-import org.simantics.document.server.client.WidgetMapping;\r
-import org.simantics.document.server.handler.AbstractEventHandler;\r
-import org.simantics.document.server.io.CommandContext;\r
-import org.simantics.document.swt.core.base.WidgetContainer;\r
-import org.simantics.document.swt.core.widget.FillComposite;\r
-import org.simantics.ui.colors.Colors;\r
-import org.simantics.ui.fonts.Fonts;\r
-import org.simantics.utils.threads.IThreadWorkQueue;\r
-import org.simantics.utils.threads.SWTThread;\r
-\r
-public class SWTDocumentClient extends DocumentClient implements SWTDocument {\r
-\r
-       private Composite container;\r
-       private IWorkbenchSite site;\r
-       private ISelectionProvider selectionProvider;\r
-       private Device device;\r
-       private IThreadWorkQueue thread;\r
-       private Map<org.simantics.datatypes.literal.RGB.Integer, Color> colors = new HashMap<org.simantics.datatypes.literal.RGB.Integer, Color>();\r
-       private Map<org.simantics.datatypes.literal.Font, Font> fonts = new HashMap<org.simantics.datatypes.literal.Font, Font>();\r
-\r
-       private boolean requireLayout=false;\r
-\r
-       public SWTDocumentClient(WidgetMapping mapping, ISelectionProvider selectionProvider, IWorkbenchSite site, Composite container) {\r
-               \r
-               super(mapping, SWTViews.getCommandMapping());\r
-               \r
-               this.container = container;\r
-               this.site = site;\r
-               this.selectionProvider = selectionProvider;\r
-               this.device = container.getDisplay();\r
-               this.thread = SWTThread.getThreadAccess(container);\r
-\r
-               JSONObject rootObject = new JSONObject("root");\r
-               rootObject.addJSONField("type", "Root");\r
-               FillComposite mgr = new FillComposite();\r
-               WidgetContainer<?> wc = mgr.createWidget(rootObject); \r
-               wc.createControl(this, container, rootObject);\r
-               \r
-               GridDataFactory.fillDefaults().grab(true, true).minSize(1, 1).applyTo((Control)wc.getControl());\r
-               GridLayoutFactory.fillDefaults().applyTo((Composite)wc.getControl());\r
-               \r
-               widgetData.put("root", new WidgetData(this, wc, rootObject));\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public IThreadWorkQueue thread() {\r
-               return thread;\r
-       }\r
-       \r
-       @Override\r
-       public Color getColor(org.simantics.datatypes.literal.RGB.Integer descriptor) {\r
-               Color color = colors.get(descriptor);\r
-               if(color == null) {\r
-                       color = Colors.swt(device, descriptor);\r
-                       colors.put(descriptor, color);\r
-               }\r
-               return color;\r
-       }\r
-       \r
-       @Override\r
-       public Font getFont(org.simantics.datatypes.literal.Font descriptor) {\r
-               Font font = fonts.get(descriptor);\r
-               if(font == null) {\r
-                       font = Fonts.swt(device, descriptor);\r
-                       fonts.put(descriptor, font);\r
-               }\r
-               return font;\r
-       }\r
-       \r
-       @Override\r
-       public ISelectionProvider getSelectionProvider() {\r
-               return selectionProvider;\r
-       }\r
-       \r
-       @Override\r
-       public IWorkbenchSite getSite() {\r
-               return site;\r
-       }\r
-       \r
-       @Override\r
-       public void post(final AbstractEventHandler handler, CommandContext parameters) {\r
-               handler.handle(parameters);\r
-       }\r
-\r
-       @Override\r
-       protected void updateDocument(Collection<JSONObject> objects) {\r
-               assert thread.currentThreadAccess();\r
-               super.updateDocument(objects);\r
-               if(requireLayout) {\r
-                       container.layout(true, true);\r
-                       requireLayout = false;\r
-               }\r
-       }\r
-\r
-       @Override\r
-       protected void updateTree(HashSet<WidgetData> updates) {\r
-               \r
-               if(updates.isEmpty()) return;\r
-               \r
-               for(WidgetData data : updates) {\r
-                       WidgetContainer<?> container = (WidgetContainer<?>)data.widget;\r
-                       Control ctrl = container.getControl();\r
-                       if (ctrl == null || ctrl.isDisposed())\r
-                               continue;\r
-                       if(ctrl instanceof Composite) {\r
-                               Composite composite = (Composite)ctrl;\r
-                               for(Control c : composite.getChildren()) {\r
-                                       c.dispose();\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               super.updateTree(updates);\r
-               \r
-               for(WidgetData data : widgetData.values()) {\r
-                       WidgetContainer<?> container = (WidgetContainer<?>)data.widget;\r
-                       if(container != null)\r
-                           container.getOrCreateControl(this, data.object);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void layout() {\r
-               requireLayout = true;\r
-       }\r
-       \r
-    @Override\r
-    public HashMap<String, WidgetData> getWidgetData() {\r
-        return widgetData;\r
-    }\r
-    \r
-    public void displayError(String error) {\r
-        Logger.defaultLogError(error);\r
-    }\r
-       \r
-}\r
+package org.simantics.document.swt.core;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Device;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbenchSite;
+import org.simantics.db.common.utils.Logger;
+import org.simantics.document.server.JSONObject;
+import org.simantics.document.server.client.DocumentClient;
+import org.simantics.document.server.client.WidgetData;
+import org.simantics.document.server.client.WidgetMapping;
+import org.simantics.document.server.handler.AbstractEventHandler;
+import org.simantics.document.server.io.CommandContext;
+import org.simantics.document.swt.core.base.WidgetContainer;
+import org.simantics.document.swt.core.widget.FillComposite;
+import org.simantics.ui.colors.Colors;
+import org.simantics.ui.fonts.Fonts;
+import org.simantics.utils.threads.IThreadWorkQueue;
+import org.simantics.utils.threads.SWTThread;
+
+public class SWTDocumentClient extends DocumentClient implements SWTDocument {
+
+       private Composite container;
+       private IWorkbenchSite site;
+       private ISelectionProvider selectionProvider;
+       private Device device;
+       private IThreadWorkQueue thread;
+       private Map<org.simantics.datatypes.literal.RGB.Integer, Color> colors = new HashMap<org.simantics.datatypes.literal.RGB.Integer, Color>();
+       private Map<org.simantics.datatypes.literal.Font, Font> fonts = new HashMap<org.simantics.datatypes.literal.Font, Font>();
+
+       private boolean requireLayout=false;
+
+       public SWTDocumentClient(WidgetMapping mapping, ISelectionProvider selectionProvider, IWorkbenchSite site, Composite container) {
+               
+               super(mapping, SWTViews.getCommandMapping());
+               
+               this.container = container;
+               this.site = site;
+               this.selectionProvider = selectionProvider;
+               this.device = container.getDisplay();
+               this.thread = SWTThread.getThreadAccess(container);
+
+               JSONObject rootObject = new JSONObject("root");
+               rootObject.addJSONField("type", "Root");
+               FillComposite mgr = new FillComposite();
+               WidgetContainer<?> wc = mgr.createWidget(rootObject); 
+               wc.createControl(this, container, rootObject);
+               
+               GridDataFactory.fillDefaults().grab(true, true).minSize(1, 1).applyTo((Control)wc.getControl());
+               GridLayoutFactory.fillDefaults().applyTo((Composite)wc.getControl());
+               
+               widgetData.put("root", new WidgetData(this, wc, rootObject));
+               
+       }
+       
+       @Override
+       public IThreadWorkQueue thread() {
+               return thread;
+       }
+       
+       @Override
+       public Color getColor(org.simantics.datatypes.literal.RGB.Integer descriptor) {
+               Color color = colors.get(descriptor);
+               if(color == null) {
+                       color = Colors.swt(device, descriptor);
+                       colors.put(descriptor, color);
+               }
+               return color;
+       }
+       
+       @Override
+       public Font getFont(org.simantics.datatypes.literal.Font descriptor) {
+               Font font = fonts.get(descriptor);
+               if(font == null) {
+                       font = Fonts.swt(device, descriptor);
+                       fonts.put(descriptor, font);
+               }
+               return font;
+       }
+       
+       @Override
+       public ISelectionProvider getSelectionProvider() {
+               return selectionProvider;
+       }
+       
+       @Override
+       public IWorkbenchSite getSite() {
+               return site;
+       }
+       
+       @Override
+       public void post(final AbstractEventHandler handler, CommandContext parameters) {
+               handler.handle(parameters);
+       }
+
+       @Override
+       protected void updateDocument(Collection<JSONObject> objects) {
+               assert thread.currentThreadAccess();
+               super.updateDocument(objects);
+               if(requireLayout) {
+                       container.layout(true, true);
+                       requireLayout = false;
+               }
+       }
+
+       @Override
+       protected void updateTree(HashSet<WidgetData> updates) {
+               
+               if(updates.isEmpty()) return;
+               
+               for(WidgetData data : updates) {
+                       WidgetContainer<?> container = (WidgetContainer<?>)data.widget;
+                       Control ctrl = container.getControl();
+                       if (ctrl == null || ctrl.isDisposed())
+                               continue;
+                       if(ctrl instanceof Composite) {
+                               Composite composite = (Composite)ctrl;
+                               for(Control c : composite.getChildren()) {
+                                       c.dispose();
+                               }
+                       }
+               }
+               
+               super.updateTree(updates);
+               
+               for(WidgetData data : widgetData.values()) {
+                       WidgetContainer<?> container = (WidgetContainer<?>)data.widget;
+                       if(container != null)
+                           container.getOrCreateControl(this, data.object);
+               }
+               
+       }
+       
+       @Override
+       public void layout() {
+               requireLayout = true;
+       }
+       
+    @Override
+    public HashMap<String, WidgetData> getWidgetData() {
+        return widgetData;
+    }
+    
+    public void displayError(String error) {
+        Logger.defaultLogError(error);
+    }
+       
+}