package org.ovirt.engine.ui.webadmin.widget.editor; import com.google.gwt.editor.client.adapters.TakesValueEditor; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.text.shared.Renderer; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.ValueListBox; /** * List box widget that adapts to UiCommon list model items. * * @param <T> * List box item type. */ public class ListModelListBox<T> extends ValueListBox<T> implements EditorWidget<T, TakesValueEditor<T>> { private TakesConstrainedValueEditor<T> editor; /** * Creates a list box that renders its items using the specified {@link Renderer}. * * @param renderer * Renderer for list box items. */ public ListModelListBox(Renderer<T> renderer) { super(renderer); } @Override public TakesConstrainedValueEditor<T> asEditor() { if (editor == null) { editor = TakesConstrainedValueEditor.of(this, this, this); } return editor; } public ListBox asListBox() { return (ListBox) getWidget(); } @Override public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) { return asListBox().addKeyUpHandler(handler); } @Override public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) { return asListBox().addKeyDownHandler(handler); } @Override public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) { return asListBox().addKeyPressHandler(handler); } @Override public int getTabIndex() { return asListBox().getTabIndex(); } @Override public void setAccessKey(char key) { asListBox().setAccessKey(key); } @Override public void setFocus(boolean focused) { asListBox().setFocus(focused); } @Override public void setTabIndex(int index) { asListBox().setTabIndex(index); } @Override public boolean isEnabled() { return asListBox().isEnabled(); } @Override public void setEnabled(boolean enabled) { asListBox().setEnabled(enabled); } }