- java.lang.Object
-
- javafx.scene.control.SelectionModel<T>
-
- javafx.scene.control.MultipleSelectionModel<T>
-
- javafx.scene.control.TableSelectionModel<S>
-
- javafx.scene.control.TableView.TableViewSelectionModel<S>
-
public abstract static class TableView.TableViewSelectionModel<S> extends TableSelectionModel<S>
A simple extension of theSelectionModel
abstract class to allow for special support for TableView controls.- Since:
- JavaFX 2.0
-
-
Property Summary
-
Properties inherited from class javafx.scene.control.TableSelectionModel
cellSelectionEnabled
-
Properties inherited from class javafx.scene.control.MultipleSelectionModel
selectionMode
-
Properties inherited from class javafx.scene.control.SelectionModel
selectedIndex, selectedItem
-
-
Constructor Summary
Constructors Constructor Description TableViewSelectionModel(TableView<S> tableView)
Builds a default TableViewSelectionModel instance with the provided TableView.
-
Method Summary
Modifier and Type Method Description void
clearAndSelect(int row)
A method that clears any selection prior to setting the selection to the given index.abstract void
clearAndSelect(int row, TableColumn<S,?> column)
Clears all selection, and then selects the cell at the given row/column intersection.void
clearAndSelect(int row, TableColumnBase<S,?> column)
Clears all selection, and then selects the cell at the given row/column intersection.void
clearSelection()
Clears the selection model of all selected indices.void
clearSelection(int index)
This method will clear the selection of the item in the given index.abstract void
clearSelection(int row, TableColumn<S,?> column)
Removes selection from the specified row/column position (in view indexes).void
clearSelection(int row, TableColumnBase<S,?> column)
Removes selection from the specified row/column position (in view indexes).void
focus(int row)
int
getFocusedIndex()
protected int
getItemCount()
Returns the number of items in the data model that underpins the control.protected S
getModelItem(int index)
Returns the item at the given index.abstract ObservableList<TablePosition>
getSelectedCells()
A read-only ObservableList representing the currently selected cells in this TableView.ObservableList<Integer>
getSelectedIndices()
Returns a read-only ObservableList of all selected indices.ObservableList<T>
getSelectedItems()
Returns a read-only ObservableList of all selected items.protected List<S>
getTableModel()
Convenience method that returns getTableView().getItems().TableView<S>
getTableView()
Returns the TableView instance that this selection model is installed in.boolean
isEmpty()
This method is available to test whether there are any selected indices/items.boolean
isSelected(int index)
Convenience method to inform if the given index is currently selected in this SelectionModel.abstract boolean
isSelected(int row, TableColumn<S,?> column)
Convenience function which tests whether the given row and column index is currently selected in this table instance.boolean
isSelected(int row, TableColumnBase<S,?> column)
Convenience function which tests whether the given row and column index is currently selected in this table instance.void
select(int row)
This will select the given index in the selection model, assuming the index is within the valid range (i.e.abstract void
select(int row, TableColumn<S,?> column)
Selects the cell at the given row/column intersection.void
select(int row, TableColumnBase<S,?> column)
Selects the cell at the given row/column intersection.void
select(T obj)
This method will attempt to select the index that contains the given object.void
selectAll()
Convenience method to select all available indices.void
selectFirst()
This method will attempt to select the first index in the control.void
selectIndices(int row, int... rows)
This method allows for one or more selections to be set at the same time.void
selectLast()
This method will attempt to select the last index in the control.void
selectNext()
This method will attempt to select the index directly after the current focused index.void
selectPrevious()
This method will attempt to select the index directly before the current focused index.void
selectRange(int minRow, TableColumnBase<S,?> minColumn, int maxRow, TableColumnBase<S,?> maxColumn)
Selects the cells in the range (minRow, minColumn) to (maxRow, maxColumn), inclusive.-
Methods inherited from class javafx.scene.control.TableSelectionModel
cellSelectionEnabledProperty, isCellSelectionEnabled, selectAboveCell, selectBelowCell, selectLeftCell, selectRightCell, setCellSelectionEnabled
-
Methods inherited from class javafx.scene.control.MultipleSelectionModel
getSelectionMode, selectionModeProperty, selectRange, setSelectionMode
-
Methods inherited from class javafx.scene.control.SelectionModel
getSelectedIndex, getSelectedItem, selectedIndexProperty, selectedItemProperty, setSelectedIndex, setSelectedItem
-
-
-
-
Constructor Detail
-
TableViewSelectionModel
public TableViewSelectionModel(TableView<S> tableView)
Builds a default TableViewSelectionModel instance with the provided TableView.- Parameters:
tableView
- The TableView upon which this selection model should operate.- Throws:
NullPointerException
- TableView can not be null.
-
-
Method Detail
-
getSelectedCells
public abstract ObservableList<TablePosition> getSelectedCells()
A read-only ObservableList representing the currently selected cells in this TableView. Rather than directly modify this list, please use the other methods provided in the TableViewSelectionModel.- Returns:
- a read-only ObservableList representing the currently selected cells in this TableView
-
isSelected
public boolean isSelected(int row, TableColumnBase<S,?> column)
Convenience function which tests whether the given row and column index is currently selected in this table instance. If the table control is in its 'cell selection' mode (where individual cells can be selected, rather than entire rows), and if the column argument is null, this method should return true only if all cells in the given row are selected.- Specified by:
isSelected
in classTableSelectionModel<S>
- Parameters:
row
- the rowcolumn
- the column- Returns:
- true if the given row and column index is currently selected in this table instance
-
isSelected
public abstract boolean isSelected(int row, TableColumn<S,?> column)
Convenience function which tests whether the given row and column index is currently selected in this table instance.- Parameters:
row
- the rowcolumn
- the column- Returns:
- true if row and column index is currently selected
-
select
public void select(int row, TableColumnBase<S,?> column)
Selects the cell at the given row/column intersection. If the table control is in its 'cell selection' mode (where individual cells can be selected, rather than entire rows), and if the column argument is null, this method should select all cells in the given row.- Specified by:
select
in classTableSelectionModel<S>
- Parameters:
row
- the rowcolumn
- the column
-
select
public abstract void select(int row, TableColumn<S,?> column)
Selects the cell at the given row/column intersection.- Parameters:
row
- the rowcolumn
- the column
-
clearAndSelect
public void clearAndSelect(int row, TableColumnBase<S,?> column)
Clears all selection, and then selects the cell at the given row/column intersection. If the table control is in its 'cell selection' mode (where individual cells can be selected, rather than entire rows), and if the column argument is null, this method should select all cells in the given row.- Specified by:
clearAndSelect
in classTableSelectionModel<S>
- Parameters:
row
- the rowcolumn
- the column
-
clearAndSelect
public abstract void clearAndSelect(int row, TableColumn<S,?> column)
Clears all selection, and then selects the cell at the given row/column intersection.- Parameters:
row
- the rowcolumn
- the column
-
clearSelection
public void clearSelection(int row, TableColumnBase<S,?> column)
Removes selection from the specified row/column position (in view indexes). If this particular cell (or row if the column value is -1) is not selected, nothing happens. If the table control is in its 'cell selection' mode (where individual cells can be selected, rather than entire rows), and if the column argument is null, this method should deselect all cells in the given row.- Specified by:
clearSelection
in classTableSelectionModel<S>
- Parameters:
row
- the rowcolumn
- the column
-
clearSelection
public abstract void clearSelection(int row, TableColumn<S,?> column)
Removes selection from the specified row/column position (in view indexes). If this particular cell (or row if the column value is -1) is not selected, nothing happens.- Parameters:
row
- the rowcolumn
- the column
-
selectRange
public void selectRange(int minRow, TableColumnBase<S,?> minColumn, int maxRow, TableColumnBase<S,?> maxColumn)
Selects the cells in the range (minRow, minColumn) to (maxRow, maxColumn), inclusive.- Specified by:
selectRange
in classTableSelectionModel<S>
- Parameters:
minRow
- the minRowminColumn
- the minColumnmaxRow
- the maxRowmaxColumn
- the maxColumn
-
getTableView
public TableView<S> getTableView()
Returns the TableView instance that this selection model is installed in.- Returns:
- the TableView
-
getTableModel
protected List<S> getTableModel()
Convenience method that returns getTableView().getItems().- Returns:
- The items list of the current TableView.
-
getModelItem
protected S getModelItem(int index)
Returns the item at the given index. An example using ListView would belistView.getItems().get(index)
.- Parameters:
index
- The index of the item that is requested from the underlying data model.- Returns:
- Returns null if the index is out of bounds, or an element of type T that is related to the given index.
-
getItemCount
protected int getItemCount()
Returns the number of items in the data model that underpins the control. An example would be that a ListView selection model would likely returnlistView.getItems().size()
. The valid range of selectable indices is between 0 and whatever is returned by this method.- Returns:
- the number of items in the data model that underpins the control
-
focus
public void focus(int row)
-
getFocusedIndex
public int getFocusedIndex()
-
getSelectedIndices
public ObservableList<Integer> getSelectedIndices()
Description copied from class:MultipleSelectionModel
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.- Specified by:
getSelectedIndices
in classMultipleSelectionModel<T>
- Returns:
- the list of selected indices
-
getSelectedItems
public ObservableList<T> getSelectedItems()
Description copied from class:MultipleSelectionModel
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.- Specified by:
getSelectedItems
in classMultipleSelectionModel<T>
- Returns:
- the list of selected items
-
clearAndSelect
public void clearAndSelect(int row)
Description copied from class:SelectionModel
A method that clears any selection prior to setting the selection to the given index. The purpose of this method is to avoid having to callSelectionModel.clearSelection()
first, meaning that observers that are listening to theselected index
property will not see the selected index being temporarily set to -1.- Specified by:
clearAndSelect
in classSelectionModel<T>
- Parameters:
row
- The index that should be the only selected index in this selection model.
-
select
public void select(int row)
Description copied from class:SelectionModel
This will select the given index in the selection model, assuming the index is 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).
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
SelectionModel.clearSelection()
.If the index is already selected, it will not be selected again, or unselected. However, if multiple selection is implemented, then calling select on an already selected index will have the effect of making the index the new selected index (as returned by
SelectionModel.getSelectedIndex()
.- Specified by:
select
in classSelectionModel<T>
- Parameters:
row
- The position of the item to select in the selection model.
-
select
public void select(T obj)
Description copied from class:SelectionModel
This method will attempt to select the index that contains the given object. It will iterate through the underlying data model until it finds an item whose value is equal to the given object. At this point it will stop iterating - this means that this method will not select multiple indices.
- Specified by:
select
in classSelectionModel<T>
- Parameters:
obj
- The object to attempt to select in the underlying data model.
-
selectIndices
public void selectIndices(int row, int... rows)
Description copied from class:MultipleSelectionModel
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.
- Specified by:
selectIndices
in classMultipleSelectionModel<T>
- Parameters:
row
- the first index to selectrows
- zero or more additional indices to select
-
selectAll
public void selectAll()
Description copied from class:MultipleSelectionModel
Convenience method to select all available indices.
- Specified by:
selectAll
in classMultipleSelectionModel<T>
-
selectFirst
public void selectFirst()
Description copied from class:MultipleSelectionModel
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 classMultipleSelectionModel<T>
-
selectLast
public void selectLast()
Description copied from class:MultipleSelectionModel
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 classMultipleSelectionModel<T>
-
clearSelection
public void clearSelection(int index)
Description copied from class:SelectionModel
This method will clear the selection of the item in the given index. If the given index is not selected, nothing will happen.
- Specified by:
clearSelection
in classSelectionModel<T>
- Parameters:
index
- The selected item to deselect.
-
clearSelection
public void clearSelection()
Description copied from class:SelectionModel
Clears the selection model of all selected indices.
- Specified by:
clearSelection
in classSelectionModel<T>
-
isSelected
public boolean isSelected(int index)
Description copied from class:SelectionModel
Convenience method to inform if the given index is currently selected in this SelectionModel. Is functionally equivalent to calling
getSelectedIndices().contains(index)
.- Specified by:
isSelected
in classSelectionModel<T>
- Parameters:
index
- The index to check as to whether it is currently selected or not.- Returns:
- True if the given index is selected, false otherwise.
-
isEmpty
public boolean isEmpty()
Description copied from class:SelectionModel
This method is available to test whether there are any selected indices/items. It will return true if there are no selected items, and false if there are.- Specified by:
isEmpty
in classSelectionModel<T>
- Returns:
- Will return true if there are no selected items, and false if there are.
-
selectPrevious
public void selectPrevious()
Description copied from class:SelectionModel
This method will attempt to select the index directly before the current focused index. If clearSelection is not called first, this method will have the result of selecting the previous index, whilst retaining the selection of any other currently selected indices.
Calling this method will only succeed if:
- There is currently a lead/focused index.
- The lead/focus index is not the first index in the control.
- The previous index is not already selected.
If any of these conditions is false, no selection event will take place.
- Specified by:
selectPrevious
in classSelectionModel<T>
-
selectNext
public void selectNext()
Description copied from class:SelectionModel
This method will attempt to select the index directly after the current focused index. If clearSelection is not called first, this method will have the result of selecting the next index, whilst retaining the selection of any other currently selected indices.
Calling this method will only succeed if:
- There is currently a lead/focused index.
- The lead/focus index is not the last index in the control.
- The next index is not already selected.
If any of these conditions is false, no selection event will take place.
- Specified by:
selectNext
in classSelectionModel<T>
-
-