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