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.
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();
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);
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);
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.