package org.ovirt.engine.ui.webadmin.section.main.view.popup.host; import org.ovirt.engine.ui.common.editor.UiCommonEditorDriver; import org.ovirt.engine.ui.common.widget.PatternFlyCompatible; import org.ovirt.engine.ui.common.widget.editor.generic.ListModelSuggestBoxEditor; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import com.google.gwt.core.shared.GWT; import com.google.gwt.event.logical.shared.HasValueChangeHandlers; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.Focusable; public class NicLabelEditor extends AbstractModelBoundPopupWidget<ListModel<String>> implements HasValueChangeHandlers<ListModel<String>>, Focusable, PatternFlyCompatible { public interface Driver extends UiCommonEditorDriver<ListModel<String>, NicLabelEditor> { } private final Driver driver = GWT.create(Driver.class); @Path("selectedItem") protected ListModelSuggestBoxEditor suggestBoxEditor; public NicLabelEditor() { suggestBoxEditor = new ListModelSuggestBoxEditor(); initWidget(suggestBoxEditor); driver.initialize(this); } @Override public void edit(final ListModel<String> model) { driver.edit(model); model.getSelectedItemChangedEvent().addListener((ev, sender, args) -> ValueChangeEvent.fire(NicLabelEditor.this, model)); } @Override public ListModel<String> flush() { return driver.flush(); } @Override public void cleanup() { driver.cleanup(); } @Override public HandlerRegistration addValueChangeHandler(ValueChangeHandler<ListModel<String>> handler) { return addHandler(handler, ValueChangeEvent.getType()); } @Override public int getTabIndex() { return suggestBoxEditor.getTabIndex(); } @Override public void setAccessKey(char key) { suggestBoxEditor.setAccessKey(key); } @Override public void setFocus(boolean focused) { suggestBoxEditor.setFocus(focused); } @Override public void setTabIndex(int index) { suggestBoxEditor.setTabIndex(index); } @Override public void setUsePatternFly(boolean usePatternfly) { suggestBoxEditor.setUsePatternFly(usePatternfly); suggestBoxEditor.hideLabel(); } }