package org.ovirt.engine.ui.common.widget.editor.generic;
import org.ovirt.engine.ui.common.widget.editor.EditorWidget;
import org.ovirt.engine.ui.common.widget.editor.TakesValueWithChangeHandlersEditor;
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.Composite;
import com.google.gwt.user.client.ui.RadioButton;
/**
* This class extends Composite instead of RadioButton because RadioButton is a Boolean type editor.
*/
public class EntityModelRadioButton extends Composite implements EditorWidget<Boolean, LeafValueEditor<Boolean>>, TakesValue<Boolean>, HasValueChangeHandlers<Boolean> {
private TakesValueWithChangeHandlersEditor<Boolean> editor;
public EntityModelRadioButton(String group) {
initWidget(new RadioButton(group));
}
@Override
public TakesValueWithChangeHandlersEditor<Boolean> asEditor() {
if (editor == null) {
editor = TakesValueWithChangeHandlersEditor.of(this, this);
}
return editor;
}
public RadioButton asRadioButton() {
return (RadioButton) getWidget();
}
@Override
public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
return asRadioButton().addKeyUpHandler(handler);
}
@Override
public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
return asRadioButton().addKeyDownHandler(handler);
}
@Override
public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
return asRadioButton().addKeyPressHandler(handler);
}
@Override
public int getTabIndex() {
return asRadioButton().getTabIndex();
}
@Override
public void setAccessKey(char key) {
asRadioButton().setAccessKey(key);
}
@Override
public void setFocus(boolean focused) {
asRadioButton().setFocus(focused);
}
@Override
public void setTabIndex(int index) {
asRadioButton().setTabIndex(index);
}
@Override
public boolean isEnabled() {
return asRadioButton().isEnabled();
}
@Override
public void setEnabled(boolean enabled) {
asRadioButton().setEnabled(enabled);
}
@Override
public Boolean getValue() {
return asRadioButton().getValue();
}
@Override
public void setValue(Boolean value) {
asRadioButton().setValue(value);
}
@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Boolean> handler) {
return asRadioButton().addValueChangeHandler(handler);
}
public void setLabel(String label) {
asRadioButton().setText(label);
}
}