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); } }); } }