Module javafx.controls
Package javafx.scene.control.skin

# 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. `or javafx.scene.control.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 inherited from 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 double`
`computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)`
Computes the maximum allowable height of the Skin, based on the provided width.
`protected double`
`computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)`
Computes the minimum allowable height of the Skin, based on the provided width.
`protected double`
`computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)`
Calculates the preferred height of this `SkinBase`.
`protected double`
`computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)`
Calculates the preferred width of this `SkinBase`.
`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 void`
`layoutChildren(double x, double y, double w, double h)`
The Layout algorithm works like this: - Get the labeled w/h, graphic w/h, text w/h - Compute content w/h based on graphicVPos, graphicHPos, graphicTextGap, and graphic w/h and text w/h - (Note that the text content has been pre-truncated where necessary) - compute content x/y based on content w/h and labeled w/h and the labeled's hpos and vpos - position the graphic and text
`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 inherited from class javafx.scene.control.skin.CellSkinBase

`cellSizeProperty, getCellSize, getClassCssMetaData, getCssMetaData`

### Methods inherited from class javafx.scene.control.skin.LabeledSkinBase

`computeBaselineOffset, computeMaxWidth, computeMinWidth, layoutLabelInArea, layoutLabelInArea, queryAccessibleAttribute, updateChildren`

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

`consumeMouseEvents, dispose, executeAccessibleAction, getChildren, getNode, getSkinnable, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, registerChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners`

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

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

## 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

### layoutChildren

protected void layoutChildren(double x, double y, double w, double h)
The Layout algorithm works like this: - Get the labeled w/h, graphic w/h, text w/h - Compute content w/h based on graphicVPos, graphicHPos, graphicTextGap, and graphic w/h and text w/h - (Note that the text content has been pre-truncated where necessary) - compute content x/y based on content w/h and labeled w/h and the labeled's hpos and vpos - position the graphic and text

Overrides:
  `layoutChildren` in class `LabeledSkinBase<C extends IndexedCell>`
Parameters:
  `x` - the x position
  `y` - the y position
  `w` - the width
  `h` - the height

### computePrefWidth

protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)
Calculates the preferred width of this `SkinBase`. The default implementation calculates this width as the width of the area occupied by its managed children when they are positioned at their current positions at their preferred widths.

Overrides:
  `computePrefWidth` in class `LabeledSkinBase<C extends IndexedCell>`
Parameters:
  `height` - the height that should be used if preferred width depends on it
  `topInset` - the pixel snapped top inset
  `rightInset` - the pixel snapped right inset
  `bottomInset` - the pixel snapped bottom inset
  `leftInset` - the pixel snapped left inset
Returns:
  the calculated preferred width

### computePrefHeight

protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
Calculates the preferred height of this `SkinBase`. The default implementation calculates this height as the height of the area occupied by its managed children when they are positioned at their current positions at their preferred heights.

Overrides:
  `computePrefHeight` in class `LabeledSkinBase<C extends IndexedCell>`
Parameters:
  `width` - the width that should be used if preferred height depends on it
  `topInset` - the pixel snapped top inset
  `rightInset` - the pixel snapped right inset
  `bottomInset` - the pixel snapped bottom inset
  `leftInset` - the pixel snapped left inset
Returns:
  the calculated preferred height

### computeMinHeight

protected double computeMinHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
Computes the minimum allowable height of the Skin, based on the provided width.

Overrides:
  `computeMinHeight` in class `LabeledSkinBase<C extends IndexedCell>`
Parameters:
  `width` - The width of the Skin, in case this value might dictate the minimum height.
  `topInset` - the pixel snapped top inset
  `rightInset` - the pixel snapped right inset
  `bottomInset` - the pixel snapped bottom inset
  `leftInset` - the pixel snapped left inset
Returns:
  A double representing the minimum height of this Skin.

### computeMaxHeight

protected double computeMaxHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)
Computes the maximum allowable height of the Skin, based on the provided width.

Overrides:
  `computeMaxHeight` in class `LabeledSkinBase<C extends IndexedCell>`
Parameters:
  `width` - The width of the Skin, in case this value might dictate the maximum height.
  `topInset` - the pixel snapped top inset
  `rightInset` - the pixel snapped right inset
  `bottomInset` - the pixel snapped bottom inset
  `leftInset` - the pixel snapped left inset
Returns:
  A double representing the maximum height of this Skin.