3.13. Farben

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:

Abbildung 35. ColorTableSnipped

ColorTableSnipped



[17] Wobei es sich um eine Erweiterung handeln würde, die sich relativ einfach umsetzen ließe und nicht invasiv wäre.


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation