package org.aplikator.client.local.widgets;
import org.aplikator.client.shared.descriptor.PropertyDTO;
import org.gwtbootstrap3.client.ui.CheckBox;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
public class CheckBoxWidget extends DataFieldBase implements DataField<Boolean> {
private CheckBox box = new CheckBox();
public CheckBoxWidget(String caption, PropertyDTO property, int size) {
super(caption, property);
controlHolder.add(box);
//box.addStyleName(PaneWidgetResources.INSTANCE.css().formData());
box.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
public void onValueChange(ValueChangeEvent<Boolean> event) {
setDirty(true);
}
});
this.setGridSize(size);
}
public void setValue(Boolean value) {
box.setValue(value, false);
}
public Boolean getValue() {
return box.getValue();
}
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Boolean> handler) {
return box.addValueChangeHandler(handler);
}
public void setEnabled(boolean enabled) {
if (property.getRefferedThrough() != null) {
enabled = false;
}
box.setEnabled(enabled);
}
@Override
public void grabFocus() {
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute() {
box.setFocus(true);
}
});
}
}