For example, Composite widgets often need to listen to events generated on their wrapped widget. Upon the firing of a wrapped widget's event, the composite widget must fire its own listeners with itself as the source of the event. To use a DelegatingKeyboardListenerCollection , simply use the DelegatingKeyboardListenerCollection instead of a KeyboardListenerCollection . For example, in SuggestBox , the following code is used to listen to keyboard events on the SuggestBox 's underlying widget.
public void addKeyboardListener(KeyboardListener listener) { if (keyboardListeners == null) { keyboardListeners = new DelegatingKeyboardListenerCollection(this, box); } keyboardListeners.add(listener); }