package org.ovirt.engine.ui.common.widget.editor;
import com.google.gwt.editor.client.LeafValueEditor;
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.logical.shared.HasValueChangeHandlers;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.TakesValue;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Composite;
/**
* Base implementation of check a box editor connected to the model with the specific type T
*/
public abstract class BaseEntityModelCheckbox<T> extends Composite implements EditorWidget<T, LeafValueEditor<T>>, TakesValue<T>, HasValueChangeHandlers<T> {
private TakesValueWithChangeHandlersEditor<T> editor;
public BaseEntityModelCheckbox() {
initWidget(new CheckBox());
}
@Override
public TakesValueWithChangeHandlersEditor<T> asEditor() {
if (editor == null) {
editor = TakesValueWithChangeHandlersEditor.of(this, this);
}
return editor;
}
public CheckBox asCheckBox() {
return (CheckBox) getWidget();
}
@Override
public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
return asCheckBox().addKeyUpHandler(handler);
}
@Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return asCheckBox().addKeyDownHandler(handler);
}
@Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return asCheckBox().addKeyPressHandler(handler);
}
@Override
public int getTabIndex() {
return asCheckBox().getTabIndex();
}
@Override
public void setAccessKey(char key) {
asCheckBox().setAccessKey(key);
}
@Override
public void setFocus(boolean focused) {
asCheckBox().setFocus(focused);
}
@Override
public void setTabIndex(int index) {
asCheckBox().setTabIndex(index);
}
@Override
public boolean isEnabled() {
return asCheckBox().isEnabled();
}
@Override
public void setEnabled(boolean enabled) {
asCheckBox().setEnabled(enabled);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler handler) {
return asCheckBox().addValueChangeHandler(handler);
}
}