Class ListCell<T>

Type Parameters:
T - The type of the item contained within the ListCell.
All Implemented Interfaces:
Styleable, EventTarget, Skinnable
Direct Known Subclasses:
CheckBoxListCell, ChoiceBoxListCell, ComboBoxListCell, TextFieldListCell

public class ListCell<T>
extends IndexedCell<T>

The Cell type used within ListView instances. In addition to the API defined on Cell and IndexedCell, the ListCell is more tightly bound to a ListView, allowing for better support of editing events, etc.

A ListView maintains selection, indicating which cell(s) have been selected, and focus, indicating the current focus owner for any given ListView. For each property, each ListCell has a boolean reflecting whether this specific cell is selected or focused. To achieve this, each ListCell has a reference back to the ListView that it is being used within. Each ListCell belongs to one and only one ListView.

Note that in the case of virtualized controls like ListView, when a cell has focus this is not in the same sense as application focus. When a ListCell has focus it simply represents the fact that the cell will receive keyboard events in the situation that the owning ListView actually contains focus. Of course, in the case where a cell has a Node set in the graphic property, it is completely legal for this Node to request, and acquire focus as would normally be expected.

Since:
JavaFX 2.0
  • Property Details

  • Constructor Details

    • ListCell

      public ListCell()
      Creates a default ListCell with the default style class of 'list-cell'.
  • Method Details

    • getListView

      public final ListView<T> getListView()
      Gets the value of the property listView.
      Property description:
      The ListView associated with this Cell.
    • listViewProperty

      public final ReadOnlyObjectProperty<ListView<T>> listViewProperty()
      The ListView associated with this Cell.
      See Also:
      getListView()
    • createDefaultSkin

      protected Skin<?> createDefaultSkin()
      Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS -fx-skin or set explicitly in a sub-class with setSkin(...).
      Overrides:
      createDefaultSkin in class Control
      Returns:
      new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.
    • startEdit

      public void startEdit()
      Starts an edit to the value of the cell. Call this function to transition from a non-editing state into an editing state, if the cell is editable. If this cell is already in an editing state, it will stay in it.
      Overrides:
      startEdit in class Cell<T>
    • commitEdit

      public void commitEdit​(T newValue)
      Commits an edit to the value of the cell. Call this function when appropriate (based on the user interaction requirements of your cell editing user interface) to do two things:
      1. Fire the appropriate events back to the backing UI control (e.g., ListView). This will begin the process of pushing this edit back to the relevant data source / property (although it does not guarantee that this will be successful - that is dependent upon the specific edit commit handler being used). Refer to the UI control class javadoc for more detail.
      2. Begin the transition from an editing state into a non-editing state.

      In general there is no need to override this method in custom cell implementations - it should be sufficient to simply call this method when appropriate (e.g., when the user pressed the Enter key, you may do something like cell.commitEdit(converter.fromString(textField.getText()));

      Overrides:
      commitEdit in class Cell<T>
      Parameters:
      newValue - the value as input by the end user, which should be persisted in the relevant way given the data source underpinning the user interface and the install edit commit handler of the UI control
    • cancelEdit

      public void cancelEdit()
      Cancels an edit to the value of the cell. Call this function to transition from an editing state into a non-editing state, without saving any user input.
      Overrides:
      cancelEdit in class Cell<T>
    • updateListView

      public final void updateListView​(ListView<T> listView)
      Updates the ListView associated with this Cell. Note: This function is intended to be used by experts, primarily by those implementing new Skins. It is not common for developers or designers to access this function directly.
      Parameters:
      listView - the ListView associated with this cell
    • queryAccessibleAttribute

      public Object queryAccessibleAttribute​(AccessibleAttribute attribute, Object... parameters)
      This method is called by the assistive technology to request the value for an attribute.

      This method is commonly overridden by subclasses to implement attributes that are required for a specific role.
      If a particular attribute is not handled, the superclass implementation must be called.

      Overrides:
      queryAccessibleAttribute in class Control
      Parameters:
      attribute - the requested attribute
      parameters - optional list of parameters
      Returns:
      the value for the requested attribute
      See Also:
      AccessibleAttribute
    • executeAccessibleAction

      public void executeAccessibleAction​(AccessibleAction action, Object... parameters)
      This method is called by the assistive technology to request the action indicated by the argument should be executed.

      This method is commonly overridden by subclasses to implement action that are required for a specific role.
      If a particular action is not handled, the superclass implementation must be called.

      Overrides:
      executeAccessibleAction in class Control
      Parameters:
      action - the action to execute
      parameters - optional list of parameters
      See Also:
      AccessibleAction