3.4.1. Die BluePrint Factory

Für die Core Widgets kann man sich die Instanzen der BluePrints von der BluePrintFactory erzeugen lassen. Diese erhält man vom Toolkit wie folgt:

    IBluePrintFactory bluePrintFactory = Toolkit.getBluePrintFactory();

Andere Widget Bibliotheken oder auch die Addon Widgets stellen jeweils ihre eigene BluePrint Factory zur Verfügung. Die Klasse BrowserBPF liefert zum Beispiel die BluePrints für die Browser Widgets.

Die Abbreviation Accessor Klasse BPF

Alle Methoden der Schnittstelle IBluePrintFactory sind auch über die statische Abbreviation Accessor Klasse org.jowidgets.tools.widgets.blueprint.BPF verfügbar. Dadurch kann man zum Beispiel anstatt:

    final IFrameBluePrint frameBp = Toolkit.getBluePrintFactory().frame();

auch das Folgende schreiben:

    final IFrameBluePrint frameBp = BPF.frame();
Beispiel für die Verwendung des IFrameBluePrint

Im folgenden Beispiel wird ein BluePrint für ein Frame mit dem Titel My Frame erzeugt, welches immer beim Anzeigen zentriert werden soll (bezüglich des Vaterfensters, und falls es ein Root Fenster ist, bezüglich des Bildschirms), welches beim Schließen automatisch disposed wird und dessen Größe nicht durch den Nutzer geändert werden kann:

  1      final IFrameBluePrint frameBp = BPF.frame();
  2      frameBp
  3          .setTitle("My Frame")
  4          .setAutoCenterPolicy(AutoCenterPolicy.ALWAYS)
  5          .setAutoDispose(true)
  6          .setResizable(false);

Mit diesem Frame BluePrint kann man zum Beispiel mit Hilfe des Toolkit ein Root Frame

    IFrame frame = Toolkit.createRootFrame(frameBp);

oder auch wie folgt ein Kind Fenster erzeugen

    IFrame childFrame = frame.createChildWindow(frameBp);
Beispiel für die Verwendung des ISliderViewerBluePrint

Im folgenden Beispiel wird ein BluePrint für ein SliderViewer erzeugt, welcher Double Werte von 0.0 bis 1.0 annimmt, vertikal ausgerichtet ist, keine Scala anzeigt, das Tooltip Brigthness hat und an den ObservabelValue brightness gebunden ist.

  1      final ISliderViewerBluePrint<Double> sliderViewerBp = BPF.sliderViewer();
  2      sliderViewerBp
  3          .setConverter(SliderConverterFactory.linearConverter(1.0))
  4          .setOrientation(Orientation.VERTICAL)
  5          .setRenderTicks(false)
  6          .setToolTipText("Brigthness")
  7          .setObservableValue(brightness);

Mit Hilfe dieses BluePrint könnte zum Beispiel wie folgt ein SliderViewer Widget erzeugt werden:

    final ISliderViewer<Double> sliderViewer = frame.add(sliderViewerBp);
Beispiele für die Verwendung des ILabelBluePrint

Das folgende Beispiel zeigt die Wiederverwendung eines Label BluePrint:

  1      final ILabelBluePrint labelBp   = BPF.label();
  2      labelBp
  3          .setAlignment(AlignmentHorizontal.RIGHT)
  4          .setForegroundColor(Colors.ERROR)
  5          .setIcon(IconsSmall.ERROR);
  6          
  7      container.add(labelBp.setText("Error 1"));
  8      container.add(labelBp.setText("Error 2"));
  9      container.add(labelBp.setText("Error 3"));

Das Alignment, die Farbe sowie das Icon wird nur ein Mal definiert und daraus anschließend drei Label Widgets mit unterschiedlichem Text erzeugt.


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation