Für die meisten Widget Schnittstellen existieren Wrapper Klassen,
welche es ermöglichen, von einem Widget abzuleiten und eigene
Funktionen hinzuzufügen. Die Wrapper befinden sich im Packet
org.jowidgets.tools.widgets.wrapper
. Die
folgenden Wrapper sind derzeit vorhanden:
ButtonWrapper
CheckBoxWrapper
ComboBoxWrapper
ComponentWrapper
CompositeWrapper
ContainerWrapper
ControlWrapper
DisplayWrapper
FrameWrapper
InputControlWrapper
InputDialogWrapper
TabFolderWrapper
TableWrapper
TreeWrapper
WidgetWrapper
WindowWrapper
Die Implementierung eines Wrappers ist immer nach dem gleichen
Schema aufgebaut. Das folgende Beispiel zeigt den
ComboBoxWrapper
:
1 package org.jowidgets.tools.widgets.wrapper; 2 3 import java.util.Collection; 4 import java.util.List; 5 6 import org.jowidgets.api.widgets.IComboBox; 7 import org.jowidgets.util.IObservableValue; 8 9 public class ComboBoxWrapper<VALUE_TYPE> 10 extends InputControlWrapper<VALUE_TYPE> 11 implements IComboBox<VALUE_TYPE> { 12 13 public ComboBoxWrapper(final IComboBox<VALUE_TYPE> widget) { 14 super(widget); 15 } 16 17 @Override 18 protected IComboBox<VALUE_TYPE> getWidget() { 19 return (IComboBox<VALUE_TYPE>) super.getWidget(); 20 } 21 22 @Override 23 public IObservableValue<VALUE_TYPE> getObservableValue() { 24 return getWidget().getObservableValue(); 25 } 26 27 @Override 28 public List<VALUE_TYPE> getElements() { 29 return getWidget().getElements(); 30 } 31 32 @Override 33 public void setElements(final Collection<? extends VALUE_TYPE> elements) { 34 getWidget().setElements(elements); 35 } 36 37 // ... removed some methods in example 38 39 @Override 40 public boolean isPopupVisible() { 41 return getWidget().isPopupVisible(); 42 } 43 44 }
Falls für eine Widget Schnittstelle noch kein Wrapper existiert, kann ein solcher also einfach selbst erstellt werden[8].