Jedes Jo Widget liefert mit Hilfe der folgenden Methode die native UI Referenz:
Object getUiReference();
Der Typ hängt dabei von der verwendeten SPI Implementierung ab.
Für Basis Widgets ist dies
in der Regel das direkte native Pendant, also zum Beispiel unter
Swing ein JPanel
für ein
IComposite
, ein JButton
für ein IButton
und so weiter. Es gibt jedoch
Ausnahmen, so liefert eine ITable
unter Swing
ein JScrollPane
welches eine
JTable
enthält und unter Swt eine
org.eclipse.swt.widget.Table
. Im Zweifelsfall
sollte man einfach in der aktuellen SPI Implementierung
nachschauen, oder es mittels
getClass().getName()
ausprobieren.
Composite Widgets liefern
meist ein JPanel
für Swing und ein
org.eclipse.swt.widget.Composite
für Swt,
aber auch hier gibt es Ausnahmen.
Man erhält als UI Referenz immer das native Root Widget, welches
von der Spi für die Erzeugung des Widget angelegt wurde. Dadurch
ist immer eindeutig, wo die native Widget Hierarchie für das Jo
Widget beginnt. Für die Swing SPI Implementierung wäre es also
nicht zulässig, die JTable
als UI Referenz
zurückzugeben. Will man eine Referenz auf die zugehörige
JTable
haben, kann man diese aus dem
JScrollPane
herausholen.