Interface MultiSelect<C extends Component,​T>

    • Method Detail

      • select

        default void select​(T... items)
        Adds the given items to the set of currently selected items.

        By default this does not clear any previous selection. To do that, use deselectAll().

        If the all the items were already selected, this is a NO-OP.

        This is a short-hand for updateSelection(Set, Set) with nothing to deselect.

        Parameters:
        items - to add to selection, not null
      • deselect

        default void deselect​(T... items)
        Removes the given items from the set of currently selected items.

        If the none of the items were selected, this is a NO-OP.

        This is a short-hand for updateSelection(Set, Set) with nothing to select.

        Parameters:
        items - to remove from selection, not null
      • select

        default void select​(Iterable<T> items)
        Adds the given items to the set of currently selected items.

        By default this does not clear any previous selection. To do that, use deselectAll().

        If the all the items were already selected, this is a NO-OP.

        This is a short-hand for updateSelection(Set, Set) with nothing to deselect.

        Parameters:
        items - to add to selection, not null
      • deselect

        default void deselect​(Iterable<T> items)
        Removes the given items from the set of currently selected items.

        If the none of the items were selected, this is a NO-OP.

        This is a short-hand for updateSelection(Set, Set) with nothing to select.

        Parameters:
        items - to remove from selection, not null
      • updateSelection

        void updateSelection​(Set<T> addedItems,
                             Set<T> removedItems)
        Updates the selection by adding and removing the given items from it.

        If all the added items were already selected and the removed items were not selected, this is a NO-OP.

        Duplicate items (in both add and remove sets) are ignored.

        Parameters:
        addedItems - the items to add, not null
        removedItems - the items to remove, not null
      • getSelectedItems

        Set<T> getSelectedItems()
        Returns an immutable set of the currently selected items. It is safe to invoke other SelectionModel methods while iterating over the set.

        Implementation note: the iteration order of the items in the returned set should be well-defined and documented by the implementing class.

        Returns:
        the items in the current selection, not null
      • deselectAll

        default void deselectAll()
        Deselects all currently selected items.
      • isSelected

        default boolean isSelected​(T item)
        Returns whether the given item is currently selected.
        Parameters:
        item - the item to check, not null
        Returns:
        true if the item is selected, false otherwise
      • addSelectionListener

        Registration addSelectionListener​(MultiSelectionListener<C,​T> listener)
        Adds a selection listener that will be called when the selection is changed either by the user or programmatically.
        Parameters:
        listener - the value change listener, not null
        Returns:
        a registration for the listener
      • getEmptyValue

        default Set<T> getEmptyValue()
        MultiSelect empty value should always be an empty set by default and not null.
        Specified by:
        getEmptyValue in interface HasValue<C extends Component,​T>
        Returns:
        An empty set, not null
      • getValue

        default Set<T> getValue()
        Description copied from interface: HasValue
        Returns the current value of this object.

        Implementation note: the implementing class should document whether null values may be returned or not, and override HasValue.getEmptyValue() if the empty value is not null.

        Specified by:
        getValue in interface HasValue<C extends Component,​T>
        Returns:
        the current value
      • setValue

        default void setValue​(Set<T> value)
        Description copied from interface: HasValue
        Sets the value of this object. If the new value is not equal to getValue(), fires a value change event. May throw IllegalArgumentException if the value is not acceptable.

        Implementation note: the implementing class should document whether null values are accepted or not, and override HasValue.getEmptyValue() if the empty value is not null.

        Specified by:
        setValue in interface HasValue<C extends Component,​T>
        Parameters:
        value - the new value