Alle Widgets implementieren die Schnittstelle
org.jowidgets.api.widgets.IWidget
. Es folgt
eine kurze Übersicht über die wichtigsten Methoden:
Object getUiReference();
Liefert die UI Referenz des Widgets. Der Typ hängt von der
verwendeten SPI Implementierung ab. Beispielsweise wird für
ein org.jowidgets.api.widgets.IButton
bei
Verwendung der Swing Spi Implementierung ein
javax.swing.JButton
und bei der Verwendung
der SWT SPI Implementierung ein
org.eclipse.swt.widgets.Button
zurückgegeben.
Die Ui Referenz kann zum Beispiel verwendet werden, um native Widgets oder Funktionen nativer Widgets zu verwenden, welche in jowidgets nicht vorhanden sind. Allerdings hat man dann nicht mehr die Möglichkeit, den Code mit anderen nativen Ui Technologien zu verwenden.
Tipp: Wird solch eine natives Widget oder eine Funktion mehrfach verwendet, empfiehlt es sich, eine eigene Widget Schnittstelle dafür zu definieren. (Siehe dazu Erstellung eigener Widget Bibliotheken). Die Widget Implementierung kann dann vorerst nur für die benötigte native Technologie implementiert werden. Soll ein Modul, welches dieses Widget verwendet, später auch mit einer anderen Technologie verwendet werden, muss nur die Implementierung des Widgets angepasst werden, und nicht das Modul.
void setEnabled(boolean enabled); boolean isEnabled();
Ein Widget das disabled ist nimmt keine Nutzereingaben mehr an. Per default sind alle Widgets initial enabled.
IWidget getParent();
Liefert das übergeordnete Widget oder null, falls das Widget ein Root Element ist.
IWidget getRoot();
Für zusammengesetzte (Composite) Widgets wird das Root Widget zurückgegeben, also zum Beispiel ein org.jowidgets.api.widgets.IComposite. Ansonsten wird das Widget selbst zurückgegeben.
void dispose(); boolean isDisposed(); void addDisposeListener(IDisposeListener listener); void removeDisposeListener(IDisposeListener listener);
Mit Hilfe der Methode dispose()
kann ein
Widgets disposed werden, wenn man es
nicht mehr benötigt. Ein Widget, das
disposed wurde, kann nicht mehr verwendet
werden. Wird zum Beispiel ein Fenster
disposed wird es auch geschlossen. Wird
ein Control disposed, wird es auch aus seinem Container
entfernt. Mit Hilfe eines IDisposeListener
kann man sich als Observer registrieren, um über das
Dispose eines Widgets informiert zu
werden.