Class SkinBase<C extends Control>

java.lang.Object
javafx.scene.control.SkinBase<C>
All Implemented Interfaces:
Skin<C>
Direct Known Subclasses:
AccordionSkin, ButtonBarSkin, ChoiceBoxSkin, ComboBoxBaseSkin, HTMLEditorSkin, LabeledSkinBase, MenuBarSkin, MenuButtonSkinBase, PaginationSkin, ProgressIndicatorSkin, ScrollBarSkin, ScrollPaneSkin, SeparatorSkin, SliderSkin, SpinnerSkin, SplitPaneSkin, TabPaneSkin, TextInputControlSkin, ToolBarSkin, VirtualContainerBase

public abstract class SkinBase<C extends Control>
extends Object
implements Skin<C>
Base implementation class for defining the visual representation of user interface controls by defining a scene graph of nodes to represent the skin. A user interface control is abstracted behind the Skinnable interface.
Since:
JavaFX 8.0
  • Constructor Summary

    Constructors
    Modifier Constructor Description
    protected SkinBase​(C control)
    Constructor for all SkinBase instances.
  • 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 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 computeMinWidth​(double height, double topInset, double rightInset, double bottomInset, double leftInset)
    Computes the minimum 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.
    protected void consumeMouseEvents​(boolean value)
    Determines whether all mouse events should be automatically consumed.
    protected void executeAccessibleAction​(AccessibleAction action, Object... parameters)
    This method is called by the assistive technology to request the action indicated by the argument should be executed.
    ObservableList<Node> getChildren()
    Returns the children of the skin.
    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.
    protected void layoutChildren​(double contentX, double contentY, double contentWidth, double contentHeight)
    Called during the layout pass of the scenegraph.
    protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
    Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.
    protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment)
    Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.
    protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)
    Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.
    protected void positionInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
    Utility method which positions the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.
    protected void positionInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)
    Utility method which positions the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.
    void pseudoClassStateChanged​(PseudoClass pseudoClass, boolean active)
    Used to specify that a pseudo-class of this Node has changed.
    protected Object queryAccessibleAttribute​(AccessibleAttribute attribute, Object... parameters)
    This method is called by the assistive technology to request the value for an attribute.
    protected void registerChangeListener​(ObservableValue<?> observable, Consumer<ObservableValue<?>> operation)
    Registers an operation to perform when the given observable sends a change event.
    protected void registerInvalidationListener​(Observable observable, Consumer<Observable> operation)
    Registers an operation to perform when the given observable sends an invalidation event.
    protected void registerListChangeListener​(ObservableList<?> observableList, Consumer<ListChangeListener.Change<?>> operation)
    Registers an operation to perform when the given observableList sends a list change event.
    protected double snappedBottomInset()
    Utility method to get the bottom inset which includes padding and border inset.
    protected double snappedLeftInset()
    Utility method to get the left inset which includes padding and border inset.
    protected double snappedRightInset()
    Utility method to get the right inset which includes padding and border inset.
    protected double snappedTopInset()
    Utility method to get the top inset which includes padding and border inset.
    protected double snapPosition​(double value)
    Deprecated.
    replaced by snapPositionX() and snapPositionY()
    protected double snapPositionX​(double value)
    Convenience method for accessing the snapPositionX() method on the skinnable.
    protected double snapPositionY​(double value)
    Convenience method for accessing the snapPositionY() method on the skinnable.
    protected double snapSize​(double value)
    Deprecated.
    replaced by snapSizeX() and snapSizeY()
    protected double snapSizeX​(double value)
    Convenience method for accessing the snapSizeX() method on the skinnable.
    protected double snapSizeY​(double value)
    Convenience method for accessing the snapSizeY() method on the skinnable.
    protected double snapSpace​(double value)
    Deprecated.
    replaced by snapSpaceX() and snapSpaceY()
    protected double snapSpaceX​(double value)
    Convenience method for accessing the snapSpaceX() method on the skinnable.
    protected double snapSpaceY​(double value)
    Convenience method for accessing the snapSpaceY() method on the skinnable.
    protected Consumer<ObservableValue<?>> unregisterChangeListeners​(ObservableValue<?> observable)
    Unregisters all operations that have been registered using registerChangeListener(ObservableValue, Consumer) for the given observable.
    protected Consumer<Observable> unregisterInvalidationListeners​(Observable observable)
    Unregisters all operations that have been registered using registerInvalidationListener(Observable, Consumer) for the given observable.
    protected Consumer<ListChangeListener.Change<?>> unregisterListChangeListeners​(ObservableList<?> observableList)
    Unregisters all operations that have been registered using registerListChangeListener(ObservableList, Consumer) for the given observableList.

    Methods declared in class java.lang.Object

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

    Methods declared in interface javafx.scene.control.Skin

    dispose, getNode, getSkinnable
  • Constructor Details

    • SkinBase

      protected SkinBase​(C control)
      Constructor for all SkinBase instances.
      Parameters:
      control - The control for which this Skin should attach to.
  • Method Details

    • getChildren

      public final ObservableList<Node> getChildren()
      Returns the children of the skin.
      Returns:
      the children of the skin
    • layoutChildren

      protected void layoutChildren​(double contentX, double contentY, double contentWidth, double contentHeight)
      Called during the layout pass of the scenegraph.
      Parameters:
      contentX - the x position
      contentY - the y position
      contentWidth - the width
      contentHeight - the height
    • consumeMouseEvents

      protected final void consumeMouseEvents​(boolean value)
      Determines whether all mouse events should be automatically consumed.
      Parameters:
      value - the consume mouse events flag
    • registerChangeListener

      protected final void registerChangeListener​(ObservableValue<?> observable, Consumer<ObservableValue<?>> operation)
      Registers an operation to perform when the given observable sends a change event. Does nothing if either observable or operation are null. If multiple operations are registered on the same observable, they will be performed in the order in which they were registered.
      Parameters:
      observable - the observable to observe for change events, may be null
      operation - the operation to perform when the observable sends a change event, may be null
      Since:
      9
    • unregisterChangeListeners

      protected final Consumer<ObservableValue<?>> unregisterChangeListeners​(ObservableValue<?> observable)
      Unregisters all operations that have been registered using registerChangeListener(ObservableValue, Consumer) for the given observable. Does nothing if observable is null.
      Parameters:
      observable - the observable for which the registered operations should be removed, may be null
      Returns:
      a composed consumer representing all previously registered operations, or null if none have been registered or the observable is null
      Since:
      9
    • registerInvalidationListener

      protected final void registerInvalidationListener​(Observable observable, Consumer<Observable> operation)
      Registers an operation to perform when the given observable sends an invalidation event. Does nothing if either observable or operation are null. If multiple operations are registered on the same observable, they will be performed in the order in which they were registered.
      Parameters:
      observable - the observable to observe for invalidation events, may be null
      operation - the operation to perform when the observable sends an invalidation event, may be null
      Since:
      17
    • unregisterInvalidationListeners

      protected final Consumer<Observable> unregisterInvalidationListeners​(Observable observable)
      Unregisters all operations that have been registered using registerInvalidationListener(Observable, Consumer) for the given observable. Does nothing if observable is null.
      Parameters:
      observable - the observable for which the registered operations should be removed, may be null
      Returns:
      a composed consumer representing all previously registered operations, or null if none have been registered or the observable is null
      Since:
      17
    • registerListChangeListener

      protected final void registerListChangeListener​(ObservableList<?> observableList, Consumer<ListChangeListener.Change<?>> operation)
      Registers an operation to perform when the given observableList sends a list change event. Does nothing if either observableList or operation are null. If multiple operations are registered on the same observable list, they will be performed in the order in which they were registered.
      Parameters:
      observableList - the observableList to observe for list change events, may be null
      operation - the operation to perform when the observableList sends a list change event, may be null
      Since:
      17
    • unregisterListChangeListeners

      protected final Consumer<ListChangeListener.Change<?>> unregisterListChangeListeners​(ObservableList<?> observableList)
      Unregisters all operations that have been registered using registerListChangeListener(ObservableList, Consumer) for the given observableList. Does nothing if observableList is null.
      Parameters:
      observableList - the observableList for which the registered operations should be removed, may be null
      Returns:
      a composed consumer representing all previously registered operations, or null if none have been registered or the observableList is null
      Since:
      17
    • computeMinWidth

      protected double computeMinWidth​(double height, double topInset, double rightInset, double bottomInset, double leftInset)
      Computes the minimum allowable width of the Skin, based on the provided height.
      Parameters:
      height - The height of the Skin, in case this value might dictate the minimum 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 minimum width of this Skin.
    • 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.
      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.
    • 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.
      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.
      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.
    • 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.
      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.
      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
    • 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().
      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
    • snappedTopInset

      protected double snappedTopInset()
      Utility method to get the top inset which includes padding and border inset. Then snapped to whole pixels if getSkinnable().isSnapToPixel() is true.
      Returns:
      Rounded up insets top
    • snappedBottomInset

      protected double snappedBottomInset()
      Utility method to get the bottom inset which includes padding and border inset. Then snapped to whole pixels if getSkinnable().isSnapToPixel() is true.
      Returns:
      Rounded up insets bottom
    • snappedLeftInset

      protected double snappedLeftInset()
      Utility method to get the left inset which includes padding and border inset. Then snapped to whole pixels if getSkinnable().isSnapToPixel() is true.
      Returns:
      Rounded up insets left
    • snappedRightInset

      protected double snappedRightInset()
      Utility method to get the right inset which includes padding and border inset. Then snapped to whole pixels if getSkinnable().isSnapToPixel() is true.
      Returns:
      Rounded up insets right
    • snapSpace

      @Deprecated(since="9") protected double snapSpace​(double value)
      Deprecated.
      replaced by snapSpaceX() and snapSpaceY()
      If getSkinnable().isSnapToPixel() is false, this method returns the same value, else it tries to return a value rounded to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
    • snapSpaceX

      protected double snapSpaceX​(double value)
      Convenience method for accessing the snapSpaceX() method on the skinnable. It is equivalent to calling getSkinnable().snapSpaceX(value).
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
      See Also:
      Region.snapSpaceX(double)
    • snapSpaceY

      protected double snapSpaceY​(double value)
      Convenience method for accessing the snapSpaceY() method on the skinnable. It is equivalent to calling getSkinnable().snapSpaceY(value).
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
      See Also:
      Region.snapSpaceY(double)
    • snapSize

      @Deprecated(since="9") protected double snapSize​(double value)
      Deprecated.
      replaced by snapSizeX() and snapSizeY()
      If getSkinnable().isSnapToPixel() is false, this method returns the same value, else it tries to return a value ceiled to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
    • snapSizeX

      protected double snapSizeX​(double value)
      Convenience method for accessing the snapSizeX() method on the skinnable. It is equivalent to calling getSkinnable().snapSizeX(value).
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
      Since:
      9
      See Also:
      Region.snapSizeX(double)
    • snapSizeY

      protected double snapSizeY​(double value)
      Convenience method for accessing the snapSizeY() method on the skinnable. It is equivalent to calling getSkinnable().snapSizeY(value).
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
      Since:
      9
      See Also:
      Region.snapSizeY(double)
    • snapPosition

      @Deprecated(since="9") protected double snapPosition​(double value)
      Deprecated.
      replaced by snapPositionX() and snapPositionY()
      If getSkinnable().isSnapToPixel() is false, this method returns the same value, else it tries to return a value rounded to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
    • snapPositionX

      protected double snapPositionX​(double value)
      Convenience method for accessing the snapPositionX() method on the skinnable. It is equivalent to calling getSkinnable().snapPositionX(value).
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
      See Also:
      Region.snapPositionX(double)
    • snapPositionY

      protected double snapPositionY​(double value)
      Convenience method for accessing the snapPositionY() method on the skinnable. It is equivalent to calling getSkinnable().snapPositionY(value).
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
      See Also:
      Region.snapPositionY(double)
    • positionInArea

      protected void positionInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
      Utility method which positions the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      This function does not resize the node and uses the node's layout bounds width and height to determine how it should be positioned within the area.

      If the vertical alignment is VPos.BASELINE then it will position the node so that its own baseline aligns with the passed in baselineOffset, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this skin, then the x/y position values will be rounded to their nearest pixel boundaries.

      Parameters:
      child - the child being positioned within this skin
      areaX - the horizontal offset of the layout area relative to this skin
      areaY - the vertical offset of the layout area relative to this skin
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • positionInArea

      protected void positionInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)
      Utility method which positions the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      This function does not resize the node and uses the node's layout bounds width and height to determine how it should be positioned within the area.

      If the vertical alignment is VPos.BASELINE then it will position the node so that its own baseline aligns with the passed in baselineOffset, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this skin, then the x/y position values will be rounded to their nearest pixel boundaries.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      Parameters:
      child - the child being positioned within this skin
      areaX - the horizontal offset of the layout area relative to this skin
      areaY - the vertical offset of the layout area relative to this skin
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
      Since:
      JavaFX 8.0
    • layoutInArea

      protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will resize it to fill the specified area unless the node's maximum size prevents it. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first to the area's width (up to the child's max width limit) and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height to the area height (up to child's max height limit) and pass that height to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this skin, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this skin
      areaX - the horizontal offset of the layout area relative to this skin
      areaY - the vertical offset of the layout area relative to this skin
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • layoutInArea

      protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will resize it to fill the specified area unless the node's maximum size prevents it. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first to the area's width (up to the child's max width limit) and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height to the area height (up to child's max height limit) and pass that height to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      If snapToPixel is true for this skin, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this skin
      areaX - the horizontal offset of the layout area relative to this skin
      areaY - the vertical offset of the layout area relative to this skin
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • layoutInArea

      protected void layoutInArea​(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this skin defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will use fillWidth and fillHeight to determine whether to resize it to fill the area or keep the child at its preferred dimension. If fillWidth/fillHeight are true, then this method will only resize the child up to its max size limits. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height first and pass that value to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      If snapToPixel is true for this skin, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this skin
      areaX - the horizontal offset of the layout area relative to this skin
      areaY - the vertical offset of the layout area relative to this skin
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      fillWidth - whether or not the child should be resized to fill the area width or kept to its preferred width
      fillHeight - whether or not the child should e resized to fill the area height or kept to its preferred height
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • 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.
      Returns:
      The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
    • pseudoClassStateChanged

      public final void pseudoClassStateChanged​(PseudoClass pseudoClass, boolean active)
      Used to specify that a pseudo-class of this Node has changed. If the pseudo-class is used in a CSS selector that matches this Node, CSS will be reapplied. Typically, this method is called from the invalidated method of a property that is used as a pseudo-class. For example:
      
      
           private static final PseudoClass MY_PSEUDO_CLASS_STATE = PseudoClass.getPseudoClass("my-state");
      
           BooleanProperty myPseudoClassState = new BooleanPropertyBase(false) {
      
                 @Override public void invalidated() {
                      pseudoClassStateChanged(MY_PSEUDO_CLASS_STATE, get());
                 }
      
                 @Override public Object getBean() {
                     return MyControl.this;
                 }
      
                 @Override public String getName() {
                     return "myPseudoClassState";
                 }
             };
       
      Parameters:
      pseudoClass - the pseudo-class that has changed state
      active - whether or not the state is active
      Since:
      JavaFX 8.0
      See Also:
      Node.pseudoClassStateChanged(javafx.css.PseudoClass, boolean)
    • 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.

      Parameters:
      attribute - the requested attribute
      parameters - optional list of parameters
      Returns:
      the value for the requested attribute
      Since:
      JavaFX 8u40
      See Also:
      AccessibleAttribute, Node.queryAccessibleAttribute(javafx.scene.AccessibleAttribute, java.lang.Object...)
    • executeAccessibleAction

      protected void executeAccessibleAction​(AccessibleAction action, Object... parameters)
      This method is called by the assistive technology to request the action indicated by the argument should be executed.

      This method is commonly overridden by subclasses to implement action that are required for a specific role.
      If a particular action is not handled, the superclass implementation must be called.

      Parameters:
      action - the action to execute
      parameters - optional list of parameters
      Since:
      JavaFX 8u40
      See Also:
      AccessibleAction, Node.executeAccessibleAction(javafx.scene.AccessibleAction, java.lang.Object...)