com.google.gwt.view.client

## Class SelectionModel.AbstractSelectionModel<T>

- java.lang.Object
- - com.google.gwt.view.client.SelectionModel.AbstractSelectionModel<T>

- Type Parameters:
    `T` - the data type of records in the list
  All Implemented Interfaces:
    HasHandlers, ProvidesKey<T>, SelectionChangeEvent.HasSelectionChangedHandlers, SelectionModel<T>
  Direct Known Subclasses:
    DefaultSelectionModel, MultiSelectionModel, NoSelectionModel, SingleSelectionModel
  Enclosing interface:
    SelectionModel<T>

      public abstract static class SelectionModel.AbstractSelectionModel<T>
      extends java.lang.Object
      implements SelectionModel<T>

  A default implementation of `SelectionModel` that provides listener addition and removal.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.google.gwt.view.client.SelectionModel

      `SelectionModel.AbstractSelectionModel<T>`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SelectionModel.AbstractSelectionModel(ProvidesKey<T> keyProvider)` Construct an AbstractSelectionModel with a given key provider.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `HandlerRegistration` | `addSelectionChangeHandler(SelectionChangeEvent.Handler handler)` Adds a `SelectionChangeEvent` handler.
    `void` | `fireEvent(GwtEvent<?> event)` Fires the given event to the handlers listening to the event's type.
    `protected void` | `fireSelectionChangeEvent()` Fire a `SelectionChangeEvent`.
    `java.lang.Object` | `getKey(T item)` Get the key for a list item.
    `ProvidesKey<T>` | `getKeyProvider()` Returns a `ProvidesKey` instance that simply returns the input data item.
    `protected boolean` | `isEventCancelled()` Return true if the next scheduled event should be canceled.
    `protected boolean` | `isEventScheduled()` Return true if an event is scheduled to be fired.
    `protected void` | `scheduleSelectionChangeEvent()` Schedules a `SelectionChangeEvent` to fire at the end of the current event loop.
    `protected void` | `setEventCancelled(boolean isEventCancelled)` Set whether the next scheduled event should be canceled.
    `protected void` | `setEventScheduled(boolean isEventScheduled)` Set whether an event is scheduled to be fired.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

      `isSelected, setSelected`

- - ### Constructor Detail

    - #### SelectionModel.AbstractSelectionModel

          protected SelectionModel.AbstractSelectionModel(ProvidesKey<T> keyProvider)

      Construct an AbstractSelectionModel with a given key provider.
      Parameters:
        `keyProvider` - an instance of ProvidesKey, or null if the record object should act as its own key

  - ### Method Detail

    - #### addSelectionChangeHandler

          public HandlerRegistration addSelectionChangeHandler(SelectionChangeEvent.Handler handler)

      Description copied from interface: `SelectionModel`
      Adds a `SelectionChangeEvent` handler.
      Specified by:
        `addSelectionChangeHandler` in interface `SelectionChangeEvent.HasSelectionChangedHandlers`
      Specified by:
        `addSelectionChangeHandler` in interface `SelectionModel<T>`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### fireEvent

          public void fireEvent(GwtEvent<?> event)

      Description copied from interface: `HasHandlers`
      Fires the given event to the handlers listening to the event's type.

      Any exceptions thrown by handlers will be bundled into a `UmbrellaException` and then re-thrown after all handlers have completed. An exception thrown by a handler will not prevent other handlers from executing.

      Specified by:
        `fireEvent` in interface `HasHandlers`
      Parameters:
        `event` - the event

    - #### getKey

          public java.lang.Object getKey(T item)

      Description copied from interface: `ProvidesKey`
      Get the key for a list item.
      Specified by:
        `getKey` in interface `ProvidesKey<T>`
      Parameters:
        `item` - the list item
      Returns:
        the key that represents the item

    - #### getKeyProvider

          public ProvidesKey<T> getKeyProvider()

      Returns a `ProvidesKey` instance that simply returns the input data item.
      Returns:
        the key provider, which may be null

    - #### fireSelectionChangeEvent

          protected void fireSelectionChangeEvent()

      Fire a `SelectionChangeEvent`. Multiple firings may be coalesced.

    - #### isEventCancelled

          protected boolean isEventCancelled()

      Return true if the next scheduled event should be canceled.
      Returns:
        true if the event is canceled

    - #### isEventScheduled

          protected boolean isEventScheduled()

      Return true if an event is scheduled to be fired.
      Returns:
        true if the event is scheduled

    - #### scheduleSelectionChangeEvent

          protected void scheduleSelectionChangeEvent()

      Schedules a `SelectionChangeEvent` to fire at the end of the current event loop.

    - #### setEventCancelled

          protected void setEventCancelled(boolean isEventCancelled)

      Set whether the next scheduled event should be canceled.
      Parameters:
        `isEventCancelled` - if true, cancel the event

    - #### setEventScheduled

          protected void setEventScheduled(boolean isEventScheduled)

      Set whether an event is scheduled to be fired.
      Parameters:
        `isEventScheduled` - if true, schedule the event