/** * Adds a value change listener. The listener is called when the selection * set of this multi select is changed either by the user or * programmatically. * * @see #addSelectionListener(MultiSelectionListener) * * @param listener * the value change listener, not null * @return a registration for the listener */ @Override public Registration addValueChangeListener( HasValue.ValueChangeListener<Set<T>> listener) { return addSelectionListener( event -> listener.valueChange(new ValueChangeEvent<>(this, event.getOldValue(), event.isUserOriginated()))); }