]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/TrackedTextWidget.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / widget / TrackedTextWidget.java
index 4aa9d7c44f5f40baec4764d796bd9320118d07ed..48ffde413eeafdcf856626e8b748b40748b43790 100644 (file)
-package org.simantics.document.swt.core.widget;\r
-\r
-import java.util.Collection;\r
-\r
-import org.eclipse.jface.dialogs.IInputValidator;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.graphics.Color;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.simantics.datatypes.literal.Font;\r
-import org.simantics.datatypes.literal.RGB;\r
-import org.simantics.document.server.JSONObject;\r
-import org.simantics.document.server.handler.AbstractEventHandler;\r
-import org.simantics.document.server.io.CommandContextImpl;\r
-import org.simantics.document.swt.core.SWTDocument;\r
-import org.simantics.document.swt.core.base.LeafWidgetManager;\r
-import org.simantics.utils.strings.StringInputProblem;\r
-import org.simantics.utils.strings.StringInputValidator;\r
-import org.simantics.utils.ui.widgets.ITrackedColorProvider;\r
-import org.simantics.utils.ui.widgets.TrackedModifyEvent;\r
-import org.simantics.utils.ui.widgets.TrackedModifyListener;\r
-import org.simantics.utils.ui.widgets.TrackedText;\r
-\r
-public class TrackedTextWidget extends LeafWidgetManager<Text> {\r
-\r
-       @Override\r
-       protected void doUpdateProperties(final SWTDocument document, Text control, JSONObject object) {\r
-\r
-               if(control.isDisposed()) return;\r
-               \r
-               TrackedText tt = (TrackedText)control.getData(TrackedText.TRACKED_TEXT_KEY);\r
-               \r
-               String text = object.getJSONField("text");\r
-\r
-               final AbstractEventHandler onModify = object.getJSONField("onModify");\r
-               final StringInputValidator validator = object.getJSONField("validator");\r
-               \r
-               RGB.Integer invalidBackground = object.getBeanJSONFieldDefault("invalidBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));\r
-               RGB.Integer inactiveBackground = object.getBeanJSONFieldDefault("inactiveBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));\r
-               RGB.Integer hoverBackground = object.getBeanJSONFieldDefault("hoverBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));\r
-               RGB.Integer editingBackground = object.getBeanJSONFieldDefault("editingBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));\r
-\r
-               RGB.Integer foreground = object.getBeanJSONFieldDefault("foreground", RGB.Integer.BINDING, new RGB.Integer(0,0,0));\r
-               \r
-               Font font = object.getBeanJSONFieldDefault("font", Font.BINDING, new Font("Arial",10,"Normal"));\r
-               \r
-               final Color invalid = document.getColor(invalidBackground);\r
-               final Color inactive = document.getColor(inactiveBackground);\r
-               final Color hover = document.getColor(hoverBackground);\r
-               final Color editing = document.getColor(editingBackground);\r
-               \r
-               tt.setColorProvider(new ITrackedColorProvider() {\r
-                       \r
-                       @Override\r
-                       public Color getInvalidBackground() {\r
-                               return invalid;\r
-                       }\r
-                       \r
-                       @Override\r
-                       public Color getInactiveBackground() {\r
-                               return inactive;\r
-                       }\r
-                       \r
-                       @Override\r
-                       public Color getHoverBackground() {\r
-                               return hover;\r
-                       }\r
-                       \r
-                       @Override\r
-                       public Color getEditingBackground() {\r
-                               return editing;\r
-                       }\r
-                       \r
-               });\r
-               \r
-               if(text != null)\r
-                   tt.setTextWithoutNotify(text);\r
-               else\r
-                   System.err.println(this + " text == null");\r
-               // This applies coloring\r
-               tt.setEditable(true);\r
-               \r
-               tt.addModifyListener(new TrackedModifyListener() {\r
-                       \r
-                       @Override\r
-                       public void modifyText(TrackedModifyEvent e) {\r
-                CommandContextImpl parameters = new CommandContextImpl();\r
-                parameters.putString("text", e.getText());\r
-                               document.post(onModify, parameters);\r
-                       }\r
-                       \r
-               });\r
-               \r
-               if(validator != null) {\r
-                       tt.setInputValidator(new IInputValidator() {\r
-\r
-                               @Override\r
-                               public String isValid(String newText) {\r
-                                       Collection<StringInputProblem> problems = validator.validate(newText);\r
-                                       if(problems.isEmpty()) return null;\r
-                                       else if (problems.size() == 1) {\r
-                                               return problems.iterator().next().getDescription();\r
-                                       } else return problems.toString();\r
-                               }\r
-\r
-                       });\r
-               }\r
-               \r
-               control.setFont(document.getFont(font));\r
-               control.setForeground(document.getColor(foreground));\r
-               \r
-       }\r
-\r
-       @Override\r
-       protected Text doCreateControl(SWTDocument document, Composite parent, JSONObject object) {\r
-        int style = SWT.NONE;\r
-\r
-        Boolean multiLine = object.getJSONFieldDefault("multiLine", false);\r
-        if(Boolean.TRUE.equals(multiLine))\r
-            style |= SWT.MULTI;\r
-        \r
-        Boolean vscroll = object.getJSONFieldDefault("VScroll", false);\r
-        if(Boolean.TRUE.equals(vscroll))\r
-            style |= SWT.V_SCROLL;\r
-        \r
-        Boolean hscroll = object.getJSONFieldDefault("HScroll", false);\r
-        if(Boolean.TRUE.equals(hscroll))\r
-            style |= SWT.H_SCROLL;\r
-        \r
-               TrackedText tt = new TrackedText(parent, style);\r
-\r
-               return tt.getWidget();\r
-       }\r
-       \r
-}\r
+package org.simantics.document.swt.core.widget;
+
+import java.util.Collection;
+
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.simantics.datatypes.literal.Font;
+import org.simantics.datatypes.literal.RGB;
+import org.simantics.document.server.JSONObject;
+import org.simantics.document.server.handler.AbstractEventHandler;
+import org.simantics.document.server.io.CommandContextImpl;
+import org.simantics.document.swt.core.SWTDocument;
+import org.simantics.document.swt.core.base.LeafWidgetManager;
+import org.simantics.utils.strings.StringInputProblem;
+import org.simantics.utils.strings.StringInputValidator;
+import org.simantics.utils.ui.widgets.ITrackedColorProvider;
+import org.simantics.utils.ui.widgets.TrackedModifyEvent;
+import org.simantics.utils.ui.widgets.TrackedModifyListener;
+import org.simantics.utils.ui.widgets.TrackedText;
+
+public class TrackedTextWidget extends LeafWidgetManager<Text> {
+
+       @Override
+       protected void doUpdateProperties(final SWTDocument document, Text control, JSONObject object) {
+
+               if(control.isDisposed()) return;
+               
+               TrackedText tt = (TrackedText)control.getData(TrackedText.TRACKED_TEXT_KEY);
+               
+               String text = object.getJSONField("text");
+
+               final AbstractEventHandler onModify = object.getJSONField("onModify");
+               final StringInputValidator validator = object.getJSONField("validator");
+               
+               RGB.Integer invalidBackground = object.getBeanJSONFieldDefault("invalidBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));
+               RGB.Integer inactiveBackground = object.getBeanJSONFieldDefault("inactiveBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));
+               RGB.Integer hoverBackground = object.getBeanJSONFieldDefault("hoverBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));
+               RGB.Integer editingBackground = object.getBeanJSONFieldDefault("editingBackground", RGB.Integer.BINDING, new RGB.Integer(255,255,255));
+
+               RGB.Integer foreground = object.getBeanJSONFieldDefault("foreground", RGB.Integer.BINDING, new RGB.Integer(0,0,0));
+               
+               Font font = object.getBeanJSONFieldDefault("font", Font.BINDING, new Font("Arial",10,"Normal"));
+               
+               final Color invalid = document.getColor(invalidBackground);
+               final Color inactive = document.getColor(inactiveBackground);
+               final Color hover = document.getColor(hoverBackground);
+               final Color editing = document.getColor(editingBackground);
+               
+               tt.setColorProvider(new ITrackedColorProvider() {
+                       
+                       @Override
+                       public Color getInvalidBackground() {
+                               return invalid;
+                       }
+                       
+                       @Override
+                       public Color getInactiveBackground() {
+                               return inactive;
+                       }
+                       
+                       @Override
+                       public Color getHoverBackground() {
+                               return hover;
+                       }
+                       
+                       @Override
+                       public Color getEditingBackground() {
+                               return editing;
+                       }
+                       
+               });
+               
+               if(text != null)
+                   tt.setTextWithoutNotify(text);
+               else
+                   System.err.println(this + " text == null");
+               // This applies coloring
+               tt.setEditable(true);
+               
+               tt.addModifyListener(new TrackedModifyListener() {
+                       
+                       @Override
+                       public void modifyText(TrackedModifyEvent e) {
+                CommandContextImpl parameters = new CommandContextImpl();
+                parameters.putString("text", e.getText());
+                               document.post(onModify, parameters);
+                       }
+                       
+               });
+               
+               if(validator != null) {
+                       tt.setInputValidator(new IInputValidator() {
+
+                               @Override
+                               public String isValid(String newText) {
+                                       Collection<StringInputProblem> problems = validator.validate(newText);
+                                       if(problems.isEmpty()) return null;
+                                       else if (problems.size() == 1) {
+                                               return problems.iterator().next().getDescription();
+                                       } else return problems.toString();
+                               }
+
+                       });
+               }
+               
+               control.setFont(document.getFont(font));
+               control.setForeground(document.getColor(foreground));
+               
+       }
+
+       @Override
+       protected Text doCreateControl(SWTDocument document, Composite parent, JSONObject object) {
+        int style = SWT.NONE;
+
+        Boolean multiLine = object.getJSONFieldDefault("multiLine", false);
+        if(Boolean.TRUE.equals(multiLine))
+            style |= SWT.MULTI;
+        
+        Boolean vscroll = object.getJSONFieldDefault("VScroll", false);
+        if(Boolean.TRUE.equals(vscroll))
+            style |= SWT.V_SCROLL;
+        
+        Boolean hscroll = object.getJSONFieldDefault("HScroll", false);
+        if(Boolean.TRUE.equals(hscroll))
+            style |= SWT.H_SCROLL;
+        
+               TrackedText tt = new TrackedText(parent, style);
+
+               return tt.getWidget();
+       }
+       
+}