Module javafx.controls
Package javafx.scene.control

## Class TableView.TableViewFocusModel<S>

- java.lang.Object
- - javafx.scene.control.FocusModel<T>
  - - javafx.scene.control.TableFocusModel<S,​TableColumn<S,​?>>
    - - javafx.scene.control.TableView.TableViewFocusModel<S>

- Enclosing class:
    TableView<S>

      public static class TableView.TableViewFocusModel<S>
      extends TableFocusModel<S,​TableColumn<S,​?>>

  A `FocusModel` with additional functionality to support the requirements of a TableView control.
  Since:
    JavaFX 2.0
  See Also:
    `TableView`

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `ReadOnlyObjectProperty<TablePosition>` | `focusedCell` | The position of the current item in the TableView which has the focus.

    - ### Properties inherited from class javafx.scene.control.FocusModel

      `focusedIndex, focusedItem`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TableViewFocusModel​(TableView<S> tableView)` | Creates a default TableViewFocusModel instance that will be used to manage focus of the provided TableView control.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `focus​(int index)` | Causes the item at the given index to receive the focus.
    `void` | `focus​(int row, TableColumn<S,​?> column)` | Causes the item at the given index to receive the focus.
    `void` | `focus​(TablePosition pos)` | Convenience method for setting focus on a particular row or cell using a `TablePosition`.
    `void` | `focusAboveCell()` | Attempts to move focus to the cell above the currently focused cell.
    `void` | `focusBelowCell()` | Attempts to move focus to the cell below the currently focused cell.
    `ReadOnlyObjectProperty<TablePosition>` | `focusedCellProperty()` | The position of the current item in the TableView which has the focus.
    `void` | `focusLeftCell()` | Attempts to move focus to the cell to the left of the currently focused cell.
    `void` | `focusNext()` | Attempts to give focus to the row after to the currently focused row.
    `void` | `focusPrevious()` | Attempts to give focus to the row previous to the currently focused row.
    `void` | `focusRightCell()` | Attempts to move focus to the cell to the right of the the currently focused cell.
    `TablePosition` | `getFocusedCell()` | Gets the value of the property focusedCell.
    `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.
    `boolean` | `isFocused​(int row, TableColumn<S,​?> column)` | Tests whether the row / cell at the given location currently has the focus within the TableView.

    - ### Methods inherited from class javafx.scene.control.FocusModel

      `focusedIndexProperty, focusedItemProperty, getFocusedIndex, getFocusedItem, isFocused`

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

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

- - ### Property Detail

    - #### focusedCell

          public final ReadOnlyObjectProperty<TablePosition> focusedCellProperty

      The position of the current item in the TableView which has the focus.
      See Also:
        `getFocusedCell()`

  - ### Constructor Detail

    - #### TableViewFocusModel

          public TableViewFocusModel​(TableView<S> tableView)

      Creates a default TableViewFocusModel instance that will be used to manage focus of the provided TableView control.
      Parameters:
        `tableView` - The tableView upon which this focus model operates.
      Throws:
        `NullPointerException` - The TableView argument can not be null.

  - ### Method Detail

    - #### getItemCount

          protected int getItemCount()

      Returns the number of items in the data model that underpins the control. An example would be that a ListView focus model would likely return `listView.getItems().size()`. The valid range of focusable indices is between 0 and whatever is returned by this method.
      Specified by:
        `getItemCount` in class `FocusModel<S>`
      Returns:
        the number of items in the data model that underpins the control

    - #### getModelItem

          protected S getModelItem​(int index)

      Returns the item at the given index. An example using ListView would be `listView.getItems().get(index)`.
      Specified by:
        `getModelItem` in class `FocusModel<S>`
      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.

    - #### focusedCellProperty

          public final ReadOnlyObjectProperty<TablePosition> focusedCellProperty()

      The position of the current item in the TableView which has the focus.
      See Also:
        `getFocusedCell()`

    - #### getFocusedCell

          public final TablePosition getFocusedCell()

      Gets the value of the property focusedCell.
      Property description:
        The position of the current item in the TableView which has the focus.

    - #### focus

          public void focus​(int row,
                            TableColumn<S,​?> column)

      Causes the item at the given index to receive the focus.
      Specified by:
        `focus` in class `TableFocusModel<S,​TableColumn<S,​?>>`
      Parameters:
        `row` - The row index of the item to give focus to.
        `column` - The column of the item to give focus to. Can be null.

    - #### focus

          public void focus​(TablePosition pos)

      Convenience method for setting focus on a particular row or cell using a `TablePosition`.
      Parameters:
        `pos` - The table position where focus should be set.

    - #### isFocused

          public boolean isFocused​(int row,
                                   TableColumn<S,​?> column)

      Tests whether the row / cell at the given location currently has the focus within the TableView.
      Specified by:
        `isFocused` in class `TableFocusModel<S,​TableColumn<S,​?>>`
      Parameters:
        `row` - the row
        `column` - the column
      Returns:
        true if the row / cell at the given location currently has the focus within the UI control

    - #### focus

          public void focus​(int index)

      Causes the item at the given index to receive the focus. This does not cause the current selection to change. Updates the focusedItem and focusedIndex properties such that `focusedIndex = -1` unless

          0 <= index < model size

      .
      Overrides:
        `focus` in class `FocusModel<S>`
      Parameters:
        `index` - The index of the item to get focus.

    - #### focusAboveCell

          public void focusAboveCell()

      Attempts to move focus to the cell above the currently focused cell.
      Specified by:
        `focusAboveCell` in class `TableFocusModel<S,​TableColumn<S,​?>>`

    - #### focusBelowCell

          public void focusBelowCell()

      Attempts to move focus to the cell below the currently focused cell.
      Specified by:
        `focusBelowCell` in class `TableFocusModel<S,​TableColumn<S,​?>>`

    - #### focusLeftCell

          public void focusLeftCell()

      Attempts to move focus to the cell to the left of the currently focused cell.
      Specified by:
        `focusLeftCell` in class `TableFocusModel<S,​TableColumn<S,​?>>`

    - #### focusRightCell

          public void focusRightCell()

      Attempts to move focus to the cell to the right of the the currently focused cell.
      Specified by:
        `focusRightCell` in class `TableFocusModel<S,​TableColumn<S,​?>>`

    - #### focusPrevious

          public void focusPrevious()

      Attempts to give focus to the row previous to the currently focused row. If the current focus owner is the first row, or is -1 (representing that there is no current focus owner), calling this method will have no result.
      Overrides:
        `focusPrevious` in class `FocusModel<S>`

    - #### focusNext

          public void focusNext()

      Attempts to give focus to the row after to the currently focused row. If the current focus owner is the last row, calling this method will have no result.
      Overrides:
        `focusNext` in class `FocusModel<S>`