public HandlerRegistration addValueChangeHandler(ValueChangeHandler<T> handler) {
        // Initialization code
        if (!valueChangeHandlerInitialized) {
            valueChangeHandlerInitialized = true;
            addDomHandler(e -> ValueChangeEvent.fire(ValueBoxBase.this, getValue()), InputEvent.getType());
        }
        return addHandler(handler, ValueChangeEvent.getType());
    }
Creates a value box that wraps the given browser element handle. This is
only used by subclasses.

@param elem the browser element to wrap
stroom-core-client-widget/src/main/java/com/google/gwt/user/client/ui/ValueBoxBase.java