# Class TableRowSkinBase<T, C extends IndexedCell, R extends IndexedCell>

java.lang.Object
javafx.scene.control.SkinBase<C>
javafx.scene.control.skin.LabeledSkinBase<C>
javafx.scene.control.skin.CellSkinBase<C>
javafx.scene.control.skin.TableRowSkinBase<T,C,R>

Type Parameters:
  `T` - The type of the cell (i.e. the generic type of the `IndexedCell` subclass).
  `C` - The cell type (e.g. TableRow or TreeTableRow)
  `R` - The type of cell that is contained within each row (e.g. `TableCell` or `TreeTableCell`).

All Implemented Interfaces:
  `Skin<C>`

Direct Known Subclasses:
  `TableRowSkin`, `TreeTableRowSkin`

public abstract class TableRowSkinBase<T, C extends IndexedCell, R extends IndexedCell> extends CellSkinBase<C>
TableRowSkinBase is the base skin class used by controls such as `TableRow` and `TreeTableRow` (the concrete classes are `TableRowSkin` and `TreeTableRowSkin`, respectively).

Since:
  9
See Also:
  - `TableRow`
  - `TreeTableRow`
  - `TableRowSkin`
  - `TreeTableRowSkin`

- ## Property Summary

  Properties
  Type
  Property
  Description
  `protected ObjectProperty<Node>`
  `graphic`
  Returns the graphic to draw on the inside of the disclosure node.

  ### Properties declared in class javafx.scene.control.skin.CellSkinBase

  `cellSize`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TableRowSkinBase(C control)`
  Creates a new instance of TableRowSkinBase, although note that this instance does not handle any behavior / input mappings - this needs to be handled appropriately by subclasses.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract R`
  `createCell(TableColumnBase<T,?> tc)`
  Creates a new cell instance that is suitable for representing the given table column instance.
  `protected abstract TableColumnBase<T,?>`
  `getTableColumn(R cell)`
  Returns the `TableColumnBase` instance for the given cell instance.
  `protected abstract ObservableList<? extends TableColumnBase>`
  `getVisibleLeafColumns()`
  Returns an unmodifiable list containing the currently visible leaf columns.
  `protected ObjectProperty<Node>`
  `graphicProperty()`
  Returns the graphic to draw on the inside of the disclosure node.
  `protected abstract void`
  `updateCell(R cell, C row)`
  A method to allow the given cell to be told that it is a member of the given row.

  ### Methods declared in class javafx.scene.control.skin.CellSkinBase

  `cellSizeProperty, getCellSize, getClassCssMetaData`

  ### Methods declared in class javafx.scene.control.skin.LabeledSkinBase

  `computeBaselineOffset, computeMinWidth, layoutChildren, layoutLabelInArea, layoutLabelInArea, updateChildren`

  ### Methods declared in class javafx.scene.control.SkinBase

  `computeMaxHeight, computeMaxWidth, computeMinHeight, computePrefHeight, computePrefWidth, consumeMouseEvents, dispose, executeAccessibleAction, getChildren, getCssMetaData, getNode, getSkinnable, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, queryAccessibleAttribute, registerChangeListener, registerInvalidationListener, registerListChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners, unregisterInvalidationListeners, unregisterListChangeListeners`

  ### Methods declared in class java.lang.Object

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

  ### Methods declared in interface javafx.scene.control.Skin

  `install`

- ## Property Details

  - ### graphic

    protected ObjectProperty<Node> graphicProperty
    Returns the graphic to draw on the inside of the disclosure node. Null is acceptable when no graphic should be shown. Commonly this is the graphic associated with a TreeItem (i.e. treeItem.getGraphic()), rather than a graphic associated with a cell.
    See Also:
      - `graphicProperty()`

- ## Constructor Details

  - ### TableRowSkinBase

    public TableRowSkinBase(C control)
    Creates a new instance of TableRowSkinBase, although note that this instance does not handle any behavior / input mappings - this needs to be handled appropriately by subclasses.
    Parameters:
      `control` - The control that this skin should be installed onto.

- ## Method Details

  - ### createCell

    protected abstract R createCell(TableColumnBase<T,?> tc)
    Creates a new cell instance that is suitable for representing the given table column instance.
    Parameters:
      `tc` - the table column
    Returns:
      the created cell

  - ### updateCell

    protected abstract void updateCell(R cell, C row)
    A method to allow the given cell to be told that it is a member of the given row. How this is implemented is dependent on the actual cell implementation.
    Parameters:
      `cell` - The cell for which we want to inform it of its owner row.
      `row` - The row which will be set on the given cell.

  - ### getTableColumn

    protected abstract TableColumnBase<T,?> getTableColumn(R cell)
    Returns the `TableColumnBase` instance for the given cell instance.
    Parameters:
      `cell` - The cell for which a TableColumn is desired.
    Returns:
      the table column

  - ### getVisibleLeafColumns

    protected abstract ObservableList<? extends TableColumnBase> getVisibleLeafColumns()
    Returns an unmodifiable list containing the currently visible leaf columns.
    Returns:
      the list of visible leaf columns

  - ### graphicProperty

    protected ObjectProperty<Node> graphicProperty()
    Returns the graphic to draw on the inside of the disclosure node. Null is acceptable when no graphic should be shown. Commonly this is the graphic associated with a TreeItem (i.e. treeItem.getGraphic()), rather than a graphic associated with a cell.
    Returns:
      the graphic to draw on the inside of the disclosure node