]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/color/ColorDialog.java
Sync git svn branch with SVN repository r33269.
[simantics/platform.git] / bundles / org.simantics.utils.ui / src / org / simantics / utils / ui / color / ColorDialog.java
diff --git a/bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/color/ColorDialog.java b/bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/color/ColorDialog.java
new file mode 100644 (file)
index 0000000..195a16c
--- /dev/null
@@ -0,0 +1,84 @@
+package org.simantics.utils.ui.color;\r
+\r
+import org.eclipse.jface.dialogs.Dialog;\r
+import org.eclipse.jface.layout.GridDataFactory;\r
+import org.eclipse.jface.layout.GridLayoutFactory;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.graphics.Point;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.swt.widgets.Display;\r
+import org.eclipse.swt.widgets.Group;\r
+import org.eclipse.swt.widgets.Shell;\r
+\r
+public class ColorDialog extends Dialog{\r
+       protected ColorComposite colorComposite;\r
+       protected Color value;\r
+       \r
+       public ColorDialog(Shell parentShell) {\r
+               super(parentShell);     \r
+       }\r
+       \r
+       @Override\r
+       protected void configureShell(Shell newShell) {\r
+               super.configureShell(newShell);\r
+               newShell.setText("Color");\r
+       }\r
+\r
+       \r
+       public void setInitialValue(Color initialValue) {\r
+               this.value = new Color(initialValue);\r
+       }\r
+       \r
+       @Override\r
+    protected Point getInitialSize() {\r
+        return new Point(400, 400);\r
+    }\r
+       \r
+       @Override\r
+       protected Control createDialogArea(Composite parent) {\r
+               Composite composite = new Composite(parent, SWT.NONE);\r
+               GridLayoutFactory.fillDefaults().numColumns(1).margins(6, 0).applyTo(composite);\r
+               GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).applyTo(composite);\r
+               colorComposite = new ColorComposite(composite, 0);\r
+        GridData childData = new GridData(GridData.FILL_BOTH);\r
+        colorComposite.setLayoutData(childData); \r
+        if (value != null)\r
+               colorComposite.setColor(value);\r
+        Group builtinGroup = new Group(composite, SWT.NONE);\r
+        builtinGroup.setText("System colors");\r
+        GridLayoutFactory.fillDefaults().numColumns(8).spacing(2, 2).margins(4, 4).applyTo(builtinGroup);\r
+        for (int i = SWT.COLOR_WHITE; i <= SWT.COLOR_DARK_GRAY; i++) {\r
+               org.eclipse.swt.graphics.Color c = Display.getCurrent().getSystemColor(i);\r
+               Color color = new Color(c.getRGB());\r
+               createColorButton(builtinGroup, color);\r
+        }\r
+        \r
+\r
+        return composite;\r
+       }\r
+       \r
+       protected Button createColorButton(Composite parent, Color color) {\r
+               Button button = new Button(parent, SWT.PUSH);\r
+       button.setImage(ColorIconCreator.createImage(color, 32, SWT.BORDER));\r
+       button.setData(color);\r
+       button.addSelectionListener(new SelectionAdapter() {\r
+               @Override\r
+               public void widgetSelected(SelectionEvent e) {\r
+                       colorComposite.setColor(color);\r
+               }\r
+               });\r
+       return button;\r
+       }\r
+\r
+       \r
+       public Color getColor() {\r
+               return colorComposite.getColor();\r
+       }\r
+       \r
+\r
+}\r