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.