@Override
    public HandlerRegistration addValueChangeHandler(
            ValueChangeHandler<Boolean> handler) {
        // Is this the first value change handler? If so, time to add handlers
        if (!valueChangeHandlerInitialized) {
            ensureDomEventHandlers();
            valueChangeHandlerInitialized = true;
        }
        return addHandler(handler, ValueChangeEvent.getType());
    }
A standard check box widget.
<p>
This class also serves as a base class for
{@link com.google.gwt.user.client.ui.RadioButton}.

<p>
<img class='gallery' src='doc-files/CheckBox.png'/>
</p>

<p>
<h3>Built-in Bidi Text Support</h3>
This widget is capable of automatically adjusting its direction according to
its content. This feature is controlled by {@link #setDirectionEstimator} or
passing a DirectionEstimator parameter to the constructor, and is off by
default.
</p>

<h3>CSS Style Rules</h3>
<dl>
<dt>.gwt-CheckBox</dt>
<dd>the outer element</dd>
<dt>.gwt-CheckBox-disabled</dt>
<dd>applied when Checkbox is disabled</dd>
</dl>

<p>
<h3>Example</h3>
{@example com.google.gwt.examples.CheckBoxExample}
</p>
stroom-core-client-widget/src/main/java/stroom/widget/tickbox/client/view/CustomCheckBox.java