3.4. BluePrints - Übersicht

BluePrints werden benötigt, um Widgets zu erzeugen.

Mit Hilfe eines BluePrint wird das (Default) Setup eines Widgets festgelegt. Wenn ein Widget erzeugt wird, werden alle Eigenschaften, welche auf dem Setup definiert sind, für das Widget übernommen. Einige Parameter eines Setups sind Pflichtparameter. Diese sind sind mit der @Mandatory Annotation gekennzeichnet. Für Pflichtparameter existieren, wenn dies sinnvoll möglich ist, Defaultwerte, welche beliebig überschrieben werden können. Siehe dazu auch Widget Defaults. Die Setter Methoden eines BluePrint haben, wie beim Builder Pattern üblich, immer die Instanz als Rückgabewert. Dadurch lassen sich die Methodenaufrufe einfach verketten.

Ein BluePrint kann Eigenschaften enthalten, welche für das Widget nicht mehr veränderbar sind. Zum Beispiel muss die Orientation eines SplitComposite initial auf horizontal oder vertikal festgelegt werden, und ist nachträglich nicht mehr änderbar. Durch die klare Trennung der Setup und Widget Schnittstellen lassen sich (auch für eigene Widgets) sogenannte imutable Member einfach umsetzen, ohne dabei lange Parameterlisten in Konstruktoren zu benötigen. Dies kann die Implementierung eines Widgets erleichtern, weil nicht alle Eigenschaften modifizierbar implementiert werden müssen.

Die Frage, ob eine Eigenschaft imutable ist oder nicht ist eine Designfrage. Man könnte sich zum Beispiel auf den Standpunkt stellen, dass ein Fenster entweder closeable ist oder nicht. Diesen Zustand während der Anzeige des Fensters zu ändern wäre ungewöhnlich, daher kann man sich den Implementierungsaufwand dafür auch einsparen. Das man den Titel eines Fensters zur Laufzeit ändert, ist jedoch üblich. Beispielsweise zeigt das Explorer Fenster von Windows immer den ausgewählten Ordner im Titel an. Diese Eigenschaft sollte also eher veränderbar entworfen werden. Das Prinzip, dass Widgets unveränderbare Eigenschaften haben, findet sich auch bei SWT wieder. Dort werden diese über den Style, welcher eine Bitmaske darstellt, gesetzt.

Für die Erstellung eigener Widget Bibliotheken kann der BluePrint Mechanismus verwendet werden. Dabei müssen die BluePrint Schnittstellen nicht selbst implementiert werden, da die Implementierung von der Blue Print Proxy Factory mit Hilfe von Java Proxies umgesetzt wird. Das Definieren der BluePrint Schnittstelle reicht also aus.


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation