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].