]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/color/ColorGradientCellEditor.java
Sync git svn branch with SVN repository r33269.
[simantics/platform.git] / bundles / org.simantics.utils.ui / src / org / simantics / utils / ui / color / ColorGradientCellEditor.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 /*\r
13  *\r
14  * @author Toni Kalajainen\r
15  */\r
16 package org.simantics.utils.ui.color;\r
17 \r
18 import org.eclipse.jface.viewers.DialogCellEditor;\r
19 import org.eclipse.jface.window.Window;\r
20 import org.eclipse.swt.graphics.Color;\r
21 import org.eclipse.swt.widgets.Composite;\r
22 import org.eclipse.swt.widgets.Control;\r
23 \r
24 public class ColorGradientCellEditor extends DialogCellEditor {\r
25 \r
26     public ColorGradientCellEditor(Composite parent) {\r
27         super(parent);\r
28     }\r
29 \r
30     /**\r
31      * The composite showing the gradient\r
32      */\r
33     private ColorGradientCanvas canvas;\r
34 \r
35     /* (non-Javadoc)\r
36      * Method declared on DialogCellEditor.\r
37      */\r
38     protected Control createContents(Composite cell) {\r
39         Color bg = cell.getBackground();\r
40         canvas = new ColorGradientCanvas(cell, getStyle());\r
41         canvas.setBackground(bg);\r
42         return canvas;\r
43     }\r
44 \r
45     /* (non-Javadoc)\r
46      * Method declared on DialogCellEditor.\r
47      */\r
48     protected Object openDialogBox(Control cellEditorWindow) {\r
49         ColorGradient value = (ColorGradient)getValue();\r
50         ColorGradientDialog dialog = new ColorGradientDialog(cellEditorWindow.getShell(), value);\r
51         if (dialog.open() == Window.OK)\r
52             return dialog.getGradient();\r
53         return value;\r
54     }\r
55 \r
56     /* (non-Javadoc)\r
57      * Method declared on DialogCellEditor.\r
58      */\r
59     protected void updateContents(Object value) {\r
60         ColorGradient cg = (ColorGradient) value;\r
61         canvas.setGradient(cg);\r
62     }    \r
63     \r
64 \r
65 }\r