com.google.gwt.view.client

## Interface SelectionModel<T>

- Type Parameters:
    `T` - the data type of records in the list
  All Superinterfaces:
    HasHandlers, ProvidesKey<T>, SelectionChangeEvent.HasSelectionChangedHandlers
  All Known Subinterfaces:
    SetSelectionModel<T>
  All Known Implementing Classes:
    DefaultSelectionModel, MultiSelectionModel, NoSelectionModel, OrderedMultiSelectionModel, SelectionModel.AbstractSelectionModel, SingleSelectionModel

      public interface SelectionModel<T>
      extends SelectionChangeEvent.HasSelectionChangedHandlers, ProvidesKey<T>

  A model for selection within a list.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `SelectionModel.AbstractSelectionModel<T>` A default implementation of `SelectionModel` that provides listener addition and removal.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `HandlerRegistration` | `addSelectionChangeHandler(SelectionChangeEvent.Handler handler)` Adds a `SelectionChangeEvent` handler.
    `boolean` | `isSelected(T object)` Check if an object is selected.
    `void` | `setSelected(T object, boolean selected)` Set the selected state of an object and fire a `SelectionChangeEvent` if the selection has changed.

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

    - ### Methods inherited from interface com.google.gwt.view.client.ProvidesKey

      `getKey`

- - ### Method Detail

    - #### addSelectionChangeHandler

          HandlerRegistration addSelectionChangeHandler(SelectionChangeEvent.Handler handler)

      Adds a `SelectionChangeEvent` handler.
      Specified by:
        `addSelectionChangeHandler` in interface `SelectionChangeEvent.HasSelectionChangedHandlers`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### isSelected

          boolean isSelected(T object)

      Check if an object is selected.
      Parameters:
        `object` - the object
      Returns:
        true if selected, false if not

    - #### setSelected

          void setSelected(T object,
                         boolean selected)

      Set the selected state of an object and fire a `SelectionChangeEvent` if the selection has changed. Subclasses should not fire an event in the case where selected is true and the object was already selected, or selected is false and the object was not previously selected.
      Parameters:
        `object` - the object to select or deselect
        `selected` - true to select, false to deselect