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

# Class ComboBoxBaseSkin<T>

java.lang.Object
javafx.scene.control.SkinBase<ComboBoxBase<T>>
javafx.scene.control.skin.ComboBoxBaseSkin<T>

Type Parameters:
  `T` - The type of the ComboBox-like control.

All Implemented Interfaces:
  `Skin<ComboBoxBase<T>>`

Direct Known Subclasses:
  `ComboBoxPopupControl`

public abstract class ComboBoxBaseSkin<T> extends SkinBase<ComboBoxBase<T>>
An abstract class intended to be used as the base skin for ComboBox-like controls that are based on `ComboBoxBase`. Most users of this skin class would be well-advised to also look at `ComboBoxPopupControl` for additional useful API.

Since:
  9
See Also:
  - `ComboBoxBase`
  - `ComboBoxPopupControl`

## Constructor Summary

Constructors
Constructor
Description
`ComboBoxBaseSkin(ComboBoxBase<T> control)`
Creates a new instance of ComboBoxBaseSkin, 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`
`computeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)`
Calculates the baseline offset based on the first managed child.
`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`
`computeMaxWidth(double height, double topInset, double rightInset, double bottomInset, double leftInset)`
Computes the maximum allowable width of the Skin, based on the provided height.
`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`.
`abstract Node`
`getDisplayNode()`
This method should return a Node that will be positioned within the ComboBox 'button' area.
`abstract void`
`hide()`
This method will be called when the ComboBox popup should be hidden.
`protected void`
`layoutChildren(double x, double y, double w, double h)`
Called during the layout pass of the scenegraph.
`abstract void`
`show()`
This method will be called when the ComboBox popup should be displayed.

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

`computeMinHeight, computeMinWidth, consumeMouseEvents, dispose, executeAccessibleAction, getChildren, getClassCssMetaData, getCssMetaData, getNode, getSkinnable, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, queryAccessibleAttribute, 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`

## Constructor Details

### ComboBoxBaseSkin

public ComboBoxBaseSkin(ComboBoxBase<T> control)
Creates a new instance of ComboBoxBaseSkin, 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

### getDisplayNode

public abstract Node getDisplayNode()
This method should return a Node that will be positioned within the ComboBox 'button' area.

Returns:
  the node that will be positioned within the ComboBox 'button' area

### show

public abstract void show()
This method will be called when the ComboBox popup should be displayed. It is up to specific skin implementations to determine how this is handled.

### hide

public abstract void hide()
This method will be called when the ComboBox popup should be hidden. It is up to specific skin implementations to determine how this is handled.

### layoutChildren

protected void layoutChildren(double x, double y, double w, double h)
Called during the layout pass of the scenegraph.

Overrides:
  `layoutChildren` in class `SkinBase<ComboBoxBase<T>>`
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 `SkinBase<ComboBoxBase<T>>`
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 `SkinBase<ComboBoxBase<T>>`
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

### computeMaxWidth

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

Overrides:
  `computeMaxWidth` in class `SkinBase<ComboBoxBase<T>>`
Parameters:
  `height` - The height of the Skin, in case this value might dictate the maximum width.
  `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 width 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 `SkinBase<ComboBoxBase<T>>`
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.

### computeBaselineOffset

protected double computeBaselineOffset(double topInset, double rightInset, double bottomInset, double leftInset)
Calculates the baseline offset based on the first managed child. If there is no such child, returns `Node.getBaselineOffset()`.

Overrides:
  `computeBaselineOffset` in class `SkinBase<ComboBoxBase<T>>`
Parameters:
  `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:
  baseline offset