package org.ovirt.engine.ui.common.widget.editor;
import org.ovirt.engine.ui.common.widget.AbstractValidatedWidgetWithLabel;
import org.ovirt.engine.ui.common.widget.VisibilityRenderer;
import com.google.gwt.editor.client.IsEditor;
import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor;
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.user.client.TakesValue;
/**
* Base class for composite Editors that use text input widget with a label.
*
* @param <T>
* The type being edited.
* @param <W>
* Text input widget type.
*/
public abstract class AbstractValueBoxWithLabelEditor<T, W extends EditorWidget<T, ValueBoxEditor<T>> & TakesValue<T> & HasValueChangeHandlers<T>> extends AbstractValidatedWidgetWithLabel<T, W>
implements IsEditor<WidgetWithLabelEditor<T, AbstractValueBoxWithLabelEditor<T, W>>> {
private final WidgetWithLabelEditor<T, AbstractValueBoxWithLabelEditor<T, W>> editor;
public AbstractValueBoxWithLabelEditor(W contentWidget, VisibilityRenderer visibilityRenderer) {
super(contentWidget, visibilityRenderer);
this.editor = WidgetWithLabelEditor.of(contentWidget.asEditor(), this);
}
public AbstractValueBoxWithLabelEditor(W contentWidget) {
this(contentWidget, new VisibilityRenderer.SimpleVisibilityRenderer());
}
public W asValueBox() {
return getContentWidget();
}
@Override
public WidgetWithLabelEditor<T, AbstractValueBoxWithLabelEditor<T, W>> asEditor() {
return editor;
}
public void setAutoComplete(String value) {
asValueBox().asWidget().getElement().setAttribute("autocomplete", "off"); //$NON-NLS-1$ //$NON-NLS-2$
}
}