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

## Class TreeTableRowSkin<T>

- 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<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>
        - - javafx.scene.control.skin.TreeTableRowSkin<T>

- All Implemented Interfaces:
    `Skin<TreeTableRow<T>>`

      public class TreeTableRowSkin<T>
      extends TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>

  Default skin implementation for the `TreeTableRow` control.
  Since:
    9
  See Also:
    `TreeTableRow`

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `protected ObjectProperty<Node>` | `graphic` | Returns the graphic to draw on the inside of the disclosure node.
    `DoubleProperty` | `indent` | The amount of space to multiply by the treeItem.level to get the left margin for this tree cell.

    - ### Properties inherited from class javafx.scene.control.skin.CellSkinBase

      `cellSize`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TreeTableRowSkin​(TreeTableRow<T> control)` | Creates a new TreeTableRowSkin instance, installing the necessary child nodes into the Control `children` list, as well as the necessary input mappings for handling key, mouse, etc events.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `protected TreeTableCell<T,​?>` | `createCell​(TableColumnBase tcb)` | Creates a new cell instance that is suitable for representing the given table column instance.
    `void` | `dispose()` | Called by a Skinnable when the Skin is replaced on the Skinnable.
    `static List<CssMetaData<? extends Styleable,​?>>` | `getClassCssMetaData()` | Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
    `List<CssMetaData<? extends Styleable,​?>>` | `getCssMetaData()` | This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.
    `double` | `getIndent()` | Gets the value of the property indent.
    `protected TreeTableColumn<T,​?>` | `getTableColumn​(TreeTableCell cell)` | Returns the `TableColumnBase` instance for the given cell instance.
    `protected ObservableList<TreeTableColumn<T,​?>>` | `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.
    `DoubleProperty` | `indentProperty()` | The amount of space to multiply by the treeItem.level to get the left margin for this tree cell.
    `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 Object` | `queryAccessibleAttribute​(AccessibleAttribute attribute, Object... parameters)` | This method is called by the assistive technology to request the value for an attribute.
    `void` | `setIndent​(double value)` | Sets the value of the property indent.
    `protected void` | `updateCell​(TreeTableCell<T,​?> cell, TreeTableRow<T> row)` | A method to allow the given cell to be told that it is a member of the given row.
    `protected void` | `updateChildren()` | Updates the children managed by LabeledSkinBase, which can be the Labeled graphic and/or a Text node.

    - ### Methods inherited from class javafx.scene.control.skin.TableRowSkinBase

      `computeMaxHeight, computeMinHeight, computePrefHeight, computePrefWidth`

    - ### Methods inherited from class javafx.scene.control.skin.CellSkinBase

      `cellSizeProperty, getCellSize`

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

      `computeBaselineOffset, computeMaxWidth, computeMinWidth, layoutLabelInArea, layoutLabelInArea`

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

      `consumeMouseEvents, 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 Detail

    - #### indent

          public final DoubleProperty indentProperty

      The amount of space to multiply by the treeItem.level to get the left margin for this tree cell. This is settable from CSS
      See Also:
        `getIndent()`, `setIndent(double)`

    - #### 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.
      Overrides:
        `graphicProperty` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`

  - ### Constructor Detail

    - #### TreeTableRowSkin

          public TreeTableRowSkin​(TreeTableRow<T> control)

      Creates a new TreeTableRowSkin instance, installing the necessary child nodes into the Control `children` list, as well as the necessary input mappings for handling key, mouse, etc events.
      Parameters:
        `control` - The control that this skin should be installed onto.

  - ### Method Detail

    - #### setIndent

          public final void setIndent​(double value)

      Sets the value of the property indent.
      Property description:
        The amount of space to multiply by the treeItem.level to get the left margin for this tree cell. This is settable from CSS

    - #### getIndent

          public final double getIndent()

      Gets the value of the property indent.
      Property description:
        The amount of space to multiply by the treeItem.level to get the left margin for this tree cell. This is settable from CSS

    - #### indentProperty

          public final DoubleProperty indentProperty()

      The amount of space to multiply by the treeItem.level to get the left margin for this tree cell. This is settable from CSS
      See Also:
        `getIndent()`, `setIndent(double)`

    - #### dispose

          public void dispose()

      Called by a Skinnable when the Skin is replaced on the Skinnable. This method allows a Skin to implement any logic necessary to clean up itself after the Skin is no longer needed. It may be used to release native resources. The methods `Skin.getSkinnable()` and `Skin.getNode()` should return null following a call to dispose. Calling dispose twice has no effect.
      Specified by:
        `dispose` in interface `Skin<T>`
      Overrides:
        `dispose` in class `SkinBase<TreeTableRow<T>>`

    - #### updateChildren

          protected void updateChildren()

      Updates the children managed by LabeledSkinBase, which can be the Labeled graphic and/or a Text node. Only those nodes which actually must be used are used. For example, with a ContentDisplay of GRAPHIC_ONLY the text node is not added, and with a ContentDisplay of TEXT_ONLY, the graphic is not added.
      Overrides:
        `updateChildren` in class `LabeledSkinBase<TreeTableRow<T>>`

    - #### 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 `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`
      Parameters:
        `x` - the x position
        `y` - the y position
        `w` - the width
        `h` - the height

    - #### createCell

          protected TreeTableCell<T,​?> createCell​(TableColumnBase tcb)

      Creates a new cell instance that is suitable for representing the given table column instance.
      Specified by:
        `createCell` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`
      Parameters:
        `tcb` - the table column
      Returns:
        the created cell

    - #### getVisibleLeafColumns

          protected ObservableList<TreeTableColumn<T,​?>> getVisibleLeafColumns()

      Returns an unmodifiable list containing the currently visible leaf columns.
      Specified by:
        `getVisibleLeafColumns` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`
      Returns:
        the list of visible leaf columns

    - #### updateCell

          protected void updateCell​(TreeTableCell<T,​?> cell,
                                    TreeTableRow<T> 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.
      Specified by:
        `updateCell` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`
      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 TreeTableColumn<T,​?> getTableColumn​(TreeTableCell cell)

      Returns the `TableColumnBase` instance for the given cell instance.
      Specified by:
        `getTableColumn` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`
      Parameters:
        `cell` - The cell for which a TableColumn is desired.
      Returns:
        the table column

    - #### 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.
      Overrides:
        `graphicProperty` in class `TableRowSkinBase<TreeItem<T>,​TreeTableRow<T>,​TreeTableCell<T,​?>>`

    - #### getClassCssMetaData

          public static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()

      Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
      Returns:
        the CssMetaData associated with this class, which may include the CssMetaData of its superclasses

    - #### getCssMetaData

          public List<CssMetaData<? extends Styleable,​?>> getCssMetaData()

      This method should delegate to `Node.getClassCssMetaData()` so that a Node's CssMetaData can be accessed without the need for reflection.
      Overrides:
        `getCssMetaData` in class `CellSkinBase<TreeTableRow<T>>`
      Returns:
        The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.

    - #### queryAccessibleAttribute

          protected 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 `LabeledSkinBase<TreeTableRow<T>>`
      Parameters:
        `attribute` - the requested attribute
        `parameters` - optional list of parameters
      Returns:
        the value for the requested attribute
      See Also:
        `AccessibleAttribute`, `Node.queryAccessibleAttribute(javafx.scene.AccessibleAttribute, java.lang.Object...)`