Farben werden in jowidgets mit Hilfe einer
IColorConstant gesetzt. Die Schnittstelle hat
die folgende Methode:
ColorValue getDefaultValue();
Ein ColorValue Objekt hat den folgenden
Konstruktor:
public ColorValue(final int red, final int green, final int blue) {...}
Dabei kann der rot, grün und blau Anteil festgelegt werden. Die
Klasse ColorValue implementiert die
Schnittstelle IColorConstant und kann somit zum
Setzen von Farben verwendet werden. Das folgende Beispiel soll das
demonstrieren:
1 frame.setBackgroundColor(new ColorValue(7, 106, 3));
Die Idee hinter der Schnittstelle
IColorConstant ist, dass man neben konkreten
Farben auch logische Farbkonstanten
definieren kann. Zudem sollte mit Hilfe einer
IColorRegistry der
defaultValue überschrieben werden können.
Derzeit ist eine Color Registry jedoch nicht
implementiert[17].
Die enum org.jowidgets.api.color.Colors
definiert einige Farbkonstanten:
1 public enum Colors implements IColorConstant {
2
3 //logical colors
4
5 /**
6 * Default foreground color
7 */
8 DEFAULT(new ColorValue(0, 0, 0)),
9
10 /**
11 * Error color
12 */
13 ERROR(new ColorValue(220, 0, 0)),
14
15 /**
16 * Warning color
17 */
18 WARNING(new ColorValue(209, 124, 34)),
19
20 /**
21 * Color for a strong label markup
22 */
23 STRONG(new ColorValue(0, 70, 213)),
24
25 /**
26 * Color for disabled items
27 */
28 DISABLED(new ColorValue(130, 130, 130)),
29
30 /**
31 * Background color for even table rows when using striped rendering
32 */
33 DEFAULT_TABLE_EVEN_BACKGROUND_COLOR(new ColorValue(222, 235, 235)),
34
35 /**
36 * Color for selected backgrounds
37 */
38 SELECTED_BACKGROUND(new ColorValue(16, 63, 149)),
39
40 //named colors
41
42 BLACK(new ColorValue(0, 0, 0)),
43
44 WHITE(new ColorValue(255, 255, 255)),
45
46 DARK_GREY(new ColorValue(80, 80, 80)),
47
48 GREY(new ColorValue(140, 140, 140)),
49
50 LIGHT_GREY(new ColorValue(225, 225, 225)),
51
52 GREEN(new ColorValue(7, 106, 3));
53
54 private ColorValue colorValue;
55
56 private Colors(final ColorValue colorValue) {
57 this.colorValue = colorValue;
58 }
59
60 @Override
61 public ColorValue getDefaultValue() {
62 return colorValue;
63 }
64
65 }Diese werden hauptsächlich von jowidgets Widgets und von jo-client-platform Widgets verwendet. Nach dem gleichen Schema könnte man sich eigene Color Enums erstellen, zum Beispiel für die Verwendung in einer applikations- oder firmeninternen Bibliothek.
Mit Hilfe der Colors Klasse könnte man die
Hintergrundfarbe der Frames auch wie folgt setzen:
frame.setBackgroundColor(Colors.GREEN);Mit Hilfe des ColorTableSnipped werden alle Colors in einer Tabelle angezeigt:
[17] Wobei es sich um eine Erweiterung handeln würde, die sich relativ einfach umsetzen ließe und nicht invasiv wäre.