51
51
import org .scijava .plugin .Plugin ;
52
52
import org .scijava .ui .awt .AWTColors ;
53
53
import org .scijava .util .ColorRGB ;
54
+ import org .scijava .util .ColorRGBA ;
54
55
import org .scijava .widget .ColorWidget ;
55
56
import org .scijava .widget .InputWidget ;
56
57
import org .scijava .widget .WidgetModel ;
@@ -79,6 +80,7 @@ public class SwingColorWidget extends SwingInputWidget<ColorRGB> implements
79
80
80
81
private JButton choose ;
81
82
private Color color ;
83
+ private boolean useAlpha = false ;
82
84
83
85
// -- ActionListener methods --
84
86
@@ -95,6 +97,7 @@ public void actionPerformed(final ActionEvent e) {
95
97
96
98
@ Override
97
99
public ColorRGB getValue () {
100
+ if (useAlpha ) return AWTColors .getColorRGBA (color );
98
101
return AWTColors .getColorRGB (color );
99
102
}
100
103
@@ -213,11 +216,15 @@ private int value(final Object o) {
213
216
214
217
@ Override
215
218
public void doRefresh () {
219
+ if (ColorRGBA .class .isAssignableFrom (get ().getValue ().getClass ())) {
220
+ useAlpha = true ;
221
+ }
216
222
final ColorRGB value = (ColorRGB ) get ().getValue ();
217
223
color = AWTColors .getColor (value );
218
224
225
+ int imageType = useAlpha ? BufferedImage .TYPE_INT_ARGB : BufferedImage .TYPE_INT_RGB ;
219
226
final BufferedImage image =
220
- new BufferedImage (SWATCH_WIDTH , SWATCH_HEIGHT , BufferedImage . TYPE_INT_RGB );
227
+ new BufferedImage (SWATCH_WIDTH , SWATCH_HEIGHT , imageType );
221
228
final Graphics g = image .getGraphics ();
222
229
g .setColor (color );
223
230
g .fillRect (0 , 0 , image .getWidth (), image .getHeight ());
0 commit comments