Module javafx.controls
Package javafx.scene.control

# Class MultipleSelectionModel<T>

java.lang.Object
javafx.scene.control.SelectionModel<T>
javafx.scene.control.MultipleSelectionModel<T>

Type Parameters:
  `T` - The type of the item contained in the control that can be selected.

Direct Known Subclasses:
  `TableSelectionModel`

public abstract class MultipleSelectionModel<T> extends SelectionModel<T>
An abstract class that extends `SelectionModel` to add API to support multiple selection.

Since:
  JavaFX 2.0
See Also:
  - `SelectionModel`
  - `SelectionMode`

## Property Summary

Properties
Type
Property
Description
`final ObjectProperty<SelectionMode>`
`selectionMode`
Specifies the selection mode to use in this selection model.

### Properties inherited from class javafx.scene.control.SelectionModel

`selectedIndex, selectedItem`

## Constructor Summary

Constructors
Constructor
Description
`MultipleSelectionModel()`
Creates a default MultipleSelectionModel instance.

## Method Summary

Modifier and Type
Method
Description
`abstract ObservableList<Integer>`
`getSelectedIndices()`
Returns a read-only ObservableList of all selected indices.
`abstract ObservableList<T>`
`getSelectedItems()`
Returns a read-only ObservableList of all selected items.
`final SelectionMode`
`getSelectionMode()`
Gets the value of the `selectionMode` property.
`abstract void`
`selectAll()`
Convenience method to select all available indices.
`abstract void`
`selectFirst()`
This method will attempt to select the first index in the control.
`abstract void`
`selectIndices(int index, int... indices)`
This method allows for one or more selections to be set at the same time.
`final ObjectProperty<SelectionMode>`
`selectionModeProperty()`
Specifies the selection mode to use in this selection model.
`abstract void`
`selectLast()`
This method will attempt to select the last index in the control.
`void`
`selectRange(int start, int end)`
Selects all indices from the given start index to the item before the given end index.
`final void`
`setSelectionMode(SelectionMode value)`
Sets the value of the `selectionMode` property.

### Methods inherited from class javafx.scene.control.SelectionModel

`clearAndSelect, clearSelection, clearSelection, getSelectedIndex, getSelectedItem, isEmpty, isSelected, select, select, selectedIndexProperty, selectedItemProperty, selectNext, selectPrevious, setSelectedIndex, setSelectedItem`

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

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

## Property Details

### selectionMode

public final ObjectProperty<SelectionMode> selectionModeProperty

Specifies the selection mode to use in this selection model. The selection mode specifies how many items in the underlying data model can be selected at any one time.

By default, the selection mode is `SelectionMode.SINGLE`.

See Also:
  - `getSelectionMode()`
  - `setSelectionMode(SelectionMode)`
  - `selectionModeProperty()`

## Constructor Details

### MultipleSelectionModel

public MultipleSelectionModel()
Creates a default MultipleSelectionModel instance.

## Method Details

### setSelectionMode

public final void setSelectionMode(SelectionMode value)
Sets the value of the `selectionMode` property.

Property description:

  Specifies the selection mode to use in this selection model. The selection mode specifies how many items in the underlying data model can be selected at any one time.

  By default, the selection mode is `SelectionMode.SINGLE`.

Parameters:
  `value` - the value for the `selectionMode` property
See Also:
  - `getSelectionMode()`
  - `selectionModeProperty()`

### getSelectionMode

public final SelectionMode getSelectionMode()
Gets the value of the `selectionMode` property.

Property description:

  Specifies the selection mode to use in this selection model. The selection mode specifies how many items in the underlying data model can be selected at any one time.

  By default, the selection mode is `SelectionMode.SINGLE`.

Returns:
  the value of the `selectionMode` property
See Also:
  - `setSelectionMode(SelectionMode)`
  - `selectionModeProperty()`

### selectionModeProperty

public final ObjectProperty<SelectionMode> selectionModeProperty()

Specifies the selection mode to use in this selection model. The selection mode specifies how many items in the underlying data model can be selected at any one time.

By default, the selection mode is `SelectionMode.SINGLE`.

Returns:
  the `selectionMode` property
See Also:
  - `getSelectionMode()`
  - `setSelectionMode(SelectionMode)`

### getSelectedIndices

public abstract ObservableList<Integer> getSelectedIndices()

Returns a read-only ObservableList of all selected indices. The ObservableList will be updated by the selection model to always reflect changes in selection. This can be observed by adding a `ListChangeListener` to the returned ObservableList.

Returns:
  the list of selected indices

### getSelectedItems

public abstract ObservableList<T> getSelectedItems()

Returns a read-only ObservableList of all selected items. The ObservableList will be updated further by the selection model to always reflect changes in selection. This can be observed by adding a `ListChangeListener` to the returned ObservableList.

Returns:
  the list of selected items

### selectIndices

public abstract void selectIndices(int index, int... indices)

This method allows for one or more selections to be set at the same time. It will ignore any value that is not within the valid range (i.e. greater than or equal to zero, and less than the total number of items in the underlying data model). Any duplication of indices will be ignored.

If there is already one or more indices selected in this model, calling this method will not clear these selections - to do so it is necessary to first call clearSelection.

The last valid value given will become the selected index / selected item.

Parameters:
  `index` - the first index to select
  `indices` - zero or more additional indices to select

### selectRange

public void selectRange(int start, int end)

Selects all indices from the given start index to the item before the given end index. This means that the selection is inclusive of the start index, and exclusive of the end index. This method will work regardless of whether start < end or start > end: the only constant is that the index before the given end index will become the selected index.

If there is already one or more indices selected in this model, calling this method will not clear these selections - to do so it is necessary to first call clearSelection.

Parameters:
  `start` - The first index to select - this index will be selected.
  `end` - The last index of the selection - this index will not be selected.

### selectAll

public abstract void selectAll()

Convenience method to select all available indices.

### selectFirst

public abstract void selectFirst()

This method will attempt to select the first index in the control. If clearSelection is not called first, this method will have the result of selecting the first index, whilst retaining the selection of any other currently selected indices.

If the first index is already selected, calling this method will have no result, and no selection event will take place.

Specified by:
  `selectFirst` in class `SelectionModel<T>`

### selectLast

public abstract void selectLast()

This method will attempt to select the last index in the control. If clearSelection is not called first, this method will have the result of selecting the last index, whilst retaining the selection of any other currently selected indices.

If the last index is already selected, calling this method will have no result, and no selection event will take place.

Specified by:
  `selectLast` in class `SelectionModel<T>`