public class TreeCellSkin<T> extends CellSkinBase<TreeCell<T>>
Default skin implementation for the
TreeCell
control.- Since:
- 9
- See Also:
TreeCell
-
Property Summary
Properties Type Property Description DoubleProperty
indent
The amount of space to multiply by the treeItem.level to get the left margin for this tree cell. -
Constructor Summary
Constructors Constructor Description TreeCellSkin(TreeCell<T> control)
Creates a new TreeCellSkin instance, installing the necessary child nodes into the Controlchildren
list, as well as the necessary input mappings for handling key, mouse, etc events. -
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 thisSkinBase
.protected double
computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)
Calculates the preferred width of thisSkinBase
.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 toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.double
getIndent()
Gets the value of the property indent.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 textvoid
setIndent(double value)
Sets the value of the property indent.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.LabeledSkinBase
computeBaselineOffset, computeMaxWidth, computeMinWidth, layoutLabelInArea, layoutLabelInArea, queryAccessibleAttribute
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
-
Property Details
-
indent
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)
-
-
Constructor Details
-
TreeCellSkin
Creates a new TreeCellSkin instance, installing the necessary child nodes into the Controlchildren
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 Details
-
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
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 methodsSkin.getSkinnable()
andSkin.getNode()
should return null following a call to dispose. Calling dispose twice has no effect. -
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 classLabeledSkinBase<TreeCell<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 classLabeledSkinBase<TreeCell<T>>
- Parameters:
x
- the x positiony
- the y positionw
- the widthh
- the 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 classLabeledSkinBase<TreeCell<T>>
- Parameters:
width
- The width of the Skin, in case this value might dictate the minimum height.topInset
- the pixel snapped top insetrightInset
- the pixel snapped right insetbottomInset
- the pixel snapped bottom insetleftInset
- the pixel snapped left inset- Returns:
- A double representing the minimum height of this Skin.
-
computePrefHeight
protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset)Calculates the preferred height of thisSkinBase
. 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 classLabeledSkinBase<TreeCell<T>>
- Parameters:
width
- the width that should be used if preferred height depends on ittopInset
- the pixel snapped top insetrightInset
- the pixel snapped right insetbottomInset
- the pixel snapped bottom insetleftInset
- the pixel snapped left inset- Returns:
- the calculated preferred height
-
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 classLabeledSkinBase<TreeCell<T>>
- Parameters:
width
- The width of the Skin, in case this value might dictate the maximum height.topInset
- the pixel snapped top insetrightInset
- the pixel snapped right insetbottomInset
- the pixel snapped bottom insetleftInset
- the pixel snapped left inset- Returns:
- A double representing the maximum height of this Skin.
-
computePrefWidth
protected double computePrefWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)Calculates the preferred width of thisSkinBase
. 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 classLabeledSkinBase<TreeCell<T>>
- Parameters:
height
- the height that should be used if preferred width depends on ittopInset
- the pixel snapped top insetrightInset
- the pixel snapped right insetbottomInset
- the pixel snapped bottom insetleftInset
- the pixel snapped left inset- Returns:
- the calculated preferred width
-
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
This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.- Overrides:
getCssMetaData
in classCellSkinBase<TreeCell<T>>
- Returns:
- The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
-