A Checkbox that toggles between 3 states: indeterminate, true, false
addValueChangeListener method to extend the given listener with custom logic to handle the indeterminate state.
There can only be 1 active valueChangeListener at any time. Please never
remove() a listener Registration, instead you can call
indeterminateCheckbox.addValueChangeListener(null). This makes sure the custom listener logic that handles indeterminate state is never lost.
When adding your own ValueChangeListener, one should always keep in mind to first check
event.getValue(), because when the checkbox appears indeterminate, the underlying value is not null but rather false (because null value is not supported)