Class PopupControl

All Implemented Interfaces:
Styleable, EventTarget, Skinnable
Direct Known Subclasses:
ContextMenu, Tooltip

public class PopupControl
extends PopupWindow
implements Skinnable, Styleable
An extension of PopupWindow that allows for CSS styling.
Since:
JavaFX 2.0
  • Property Details

    • id

      public final StringProperty idProperty
      The id of this PopupControl. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).
      Default value:
      null
      See Also:
      getId(), setId(String)
    • style

      public final StringProperty styleProperty
      See Also:
      getStyle(), setStyle(String)
    • skin

      public final ObjectProperty<Skin<?>> skinProperty
      Skin is responsible for rendering this PopupControl. From the perspective of the PopupControl, the Skin is a black box. It listens and responds to changes in state in a PopupControl.

      There is a one-to-one relationship between a PopupControl and its Skin. Every Skin maintains a back reference to the PopupControl.

      A skin may be null.

      Specified by:
      skinProperty in interface Skinnable
      See Also:
      getSkin(), setSkin(Skin)
    • minWidth

      public final DoubleProperty minWidthProperty
      Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinWidth(forHeight) will return the control's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMinWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMinWidth(), setMinWidth(double)
    • minHeight

      public final DoubleProperty minHeightProperty
      Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinHeight(forWidth) will return the control's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMinHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMinHeight(), setMinHeight(double)
    • prefWidth

      public final DoubleProperty prefWidthProperty
      Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the control's internally computed preferred width.

      See Also:
      getPrefWidth(), setPrefWidth(double)
    • prefHeight

      public final DoubleProperty prefHeightProperty
      Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the control's internally computed preferred width.

      See Also:
      getPrefHeight(), setPrefHeight(double)
    • maxWidth

      public final DoubleProperty maxWidthProperty
      Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the control's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMaxWidth(), setMaxWidth(double)
    • maxHeight

      public final DoubleProperty maxHeightProperty
      Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the control's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMaxHeight(), setMaxHeight(double)
  • Field Details

    • USE_PREF_SIZE

      public static final double USE_PREF_SIZE
      Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setMaxWidth() or setMaxHeight() methods to indicate that the preferred dimension should be used for that max and/or min constraint.
      See Also:
      Constant Field Values
    • USE_COMPUTED_SIZE

      public static final double USE_COMPUTED_SIZE
      Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setPrefWidth(), setPrefHeight(), setMaxWidth(), setMaxHeight() methods to reset the control's size constraint back to it's intrinsic size returned by computeMinWidth(), computeMinHeight(), computePrefWidth(), computePrefHeight(), computeMaxWidth(), or computeMaxHeight().
      See Also:
      Constant Field Values
    • bridge

      protected PopupControl.CSSBridge bridge
      We need a special root node, except we can't replace the special root node already in the PopupControl. So we'll set our own special almost-root node that is a child of the root. This special root node is responsible for mapping the id, styleClass, and style defined on the PopupControl such that CSS will read the values from the PopupControl, and then apply CSS state to that special node. The node will then be able to pass cssSet calls along, such that any subclass of PopupControl will be able to use the Styleable properties and we'll be able to style it from CSS, in such a way that it participates and applies to the skin, exactly the way that normal Skin's work for normal Controls.
      Since:
      JavaFX 2.1
  • Constructor Details

    • PopupControl

      public PopupControl()
      Create a new empty PopupControl.
  • Method Details

    • idProperty

      public final StringProperty idProperty()
      The id of this PopupControl. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).
      Default value:
      null
      See Also:
      getId(), setId(String)
    • setId

      public final void setId​(String value)
      Sets the id of this PopupControl. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).
      Default value:
      null
      Parameters:
      value - the id assigned to this PopupControl using the setId method or null, if no id has been assigned.
    • getId

      public final String getId()
      The id of this PopupControl. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).
      Specified by:
      getId in interface Styleable
      Default value:
      null
      Returns:
      the id assigned to this PopupControl using the setId method or null, if no id has been assigned.
    • getStyleClass

      public final ObservableList<String> getStyleClass()
      Returns the list of String identifiers that make up the styleClass for this PopupControl.
      Specified by:
      getStyleClass in interface Styleable
      Returns:
      a list of String identifiers which can be used to logically group Nodes, specifically for an external style engine
      See Also:
      CSS3 class selectors
    • setStyle

      public final void setStyle​(String value)
      A string representation of the CSS style associated with this specific PopupControl. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
      Default value:
      empty string
      Parameters:
      value - The inline CSS style to use for this PopupControl. null is implicitly converted to an empty String.
    • getStyle

      public final String getStyle()
      A string representation of the CSS style associated with this specific PopupControl. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.
      Specified by:
      getStyle in interface Styleable
      Default value:
      empty string
      Returns:
      The inline CSS style associated with this PopupControl. If this PopupControl does not have an inline style, an empty String is returned.
    • styleProperty

      public final StringProperty styleProperty()
      See Also:
      getStyle(), setStyle(String)
    • skinProperty

      public final ObjectProperty<Skin<?>> skinProperty()
      Skin is responsible for rendering this PopupControl. From the perspective of the PopupControl, the Skin is a black box. It listens and responds to changes in state in a PopupControl.

      There is a one-to-one relationship between a PopupControl and its Skin. Every Skin maintains a back reference to the PopupControl.

      A skin may be null.

      Specified by:
      skinProperty in interface Skinnable
      See Also:
      getSkin(), setSkin(Skin)
    • setSkin

      public final void setSkin​(Skin<?> value)
      Sets the value of the property skin.
      Specified by:
      setSkin in interface Skinnable
      Property description:
      Skin is responsible for rendering this PopupControl. From the perspective of the PopupControl, the Skin is a black box. It listens and responds to changes in state in a PopupControl.

      There is a one-to-one relationship between a PopupControl and its Skin. Every Skin maintains a back reference to the PopupControl.

      A skin may be null.

      Parameters:
      value - the skin value for this control
    • getSkin

      public final Skin<?> getSkin()
      Gets the value of the property skin.
      Specified by:
      getSkin in interface Skinnable
      Property description:
      Skin is responsible for rendering this PopupControl. From the perspective of the PopupControl, the Skin is a black box. It listens and responds to changes in state in a PopupControl.

      There is a one-to-one relationship between a PopupControl and its Skin. Every Skin maintains a back reference to the PopupControl.

      A skin may be null.

      Returns:
      the skin for this control
    • setMinWidth

      public final void setMinWidth​(double value)
      Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinWidth(forHeight) will return the control's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMinWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      Parameters:
      value - the minimum width
    • getMinWidth

      public final double getMinWidth()
      Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinWidth(forHeight) will return the control's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMinWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      Returns:
      the minimum width
    • minWidthProperty

      public final DoubleProperty minWidthProperty()
      Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinWidth(forHeight) will return the control's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMinWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMinWidth(), setMinWidth(double)
    • setMinHeight

      public final void setMinHeight​(double value)
      Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinHeight(forWidth) will return the control's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMinHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      Parameters:
      value - the minimum height
    • getMinHeight

      public final double getMinHeight()
      Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinHeight(forWidth) will return the control's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMinHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      Returns:
      the minimum height
    • minHeightProperty

      public final DoubleProperty minHeightProperty()
      Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMinHeight(forWidth) will return the control's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMinHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMinHeight(), setMinHeight(double)
    • setMinSize

      public void setMinSize​(double minWidth, double minHeight)
      Convenience method for overriding the control's computed minimum width and height. This should only be called if the control's internally computed minimum size doesn't meet the application's layout needs.
      Parameters:
      minWidth - the override value for minimum width
      minHeight - the override value for minimum height
      See Also:
      setMinWidth(double), setMinHeight(double)
    • setPrefWidth

      public final void setPrefWidth​(double value)
      Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the control's internally computed preferred width.

      Parameters:
      value - the preferred width
    • getPrefWidth

      public final double getPrefWidth()
      Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the control's internally computed preferred width.

      Returns:
      the preferred width
    • prefWidthProperty

      public final DoubleProperty prefWidthProperty()
      Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the control's internally computed preferred width.

      See Also:
      getPrefWidth(), setPrefWidth(double)
    • setPrefHeight

      public final void setPrefHeight​(double value)
      Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the control's internally computed preferred width.

      Parameters:
      value - the preferred height
    • getPrefHeight

      public final double getPrefHeight()
      Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the control's internally computed preferred width.

      Returns:
      the preferred height
    • prefHeightProperty

      public final DoubleProperty prefHeightProperty()
      Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the control's internally computed preferred width.

      See Also:
      getPrefHeight(), setPrefHeight(double)
    • setPrefSize

      public void setPrefSize​(double prefWidth, double prefHeight)
      Convenience method for overriding the control's computed preferred width and height. This should only be called if the control's internally computed preferred size doesn't meet the application's layout needs.
      Parameters:
      prefWidth - the override value for preferred width
      prefHeight - the override value for preferred height
      See Also:
      setPrefWidth(double), setPrefHeight(double)
    • setMaxWidth

      public final void setMaxWidth​(double value)
      Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the control's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      Parameters:
      value - the maximum width
    • getMaxWidth

      public final double getMaxWidth()
      Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the control's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      Returns:
      the maximum width
    • maxWidthProperty

      public final DoubleProperty maxWidthProperty()
      Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the control's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMaxWidth(), setMaxWidth(double)
    • setMaxHeight

      public final void setMaxHeight​(double value)
      Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the control's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      Parameters:
      value - the maximum height
    • getMaxHeight

      public final double getMaxHeight()
      Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the control's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      Returns:
      the maximum height
    • maxHeightProperty

      public final DoubleProperty maxHeightProperty()
      Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the control's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

      See Also:
      getMaxHeight(), setMaxHeight(double)
    • setMaxSize

      public void setMaxSize​(double maxWidth, double maxHeight)
      Convenience method for overriding the control's computed maximum width and height. This should only be called if the control's internally computed maximum size doesn't meet the application's layout needs.
      Parameters:
      maxWidth - the override value for maximum width
      maxHeight - the override value for maximum height
      See Also:
      setMaxWidth(double), setMaxHeight(double)
    • minWidth

      public final double minWidth​(double height)
      Called during layout to determine the minimum width for this node. Returns the value from minWidth(forHeight) unless the application overrode the minimum width by setting the minWidth property.
      Parameters:
      height - the height
      Returns:
      the minimum width that this node should be resized to during layout
      See Also:
      setMinWidth(double)
    • minHeight

      public final double minHeight​(double width)
      Called during layout to determine the minimum height for this node. Returns the value from minHeight(forWidth) unless the application overrode the minimum height by setting the minHeight property.
      Parameters:
      width - The width
      Returns:
      the minimum height that this node should be resized to during layout
      See Also:
      setMinHeight(double)
    • prefWidth

      public final double prefWidth​(double height)
      Called during layout to determine the preferred width for this node. Returns the value from prefWidth(forHeight) unless the application overrode the preferred width by setting the prefWidth property.
      Parameters:
      height - the height
      Returns:
      the preferred width that this node should be resized to during layout
      See Also:
      setPrefWidth(double)
    • prefHeight

      public final double prefHeight​(double width)
      Called during layout to determine the preferred height for this node. Returns the value from prefHeight(forWidth) unless the application overrode the preferred height by setting the prefHeight property.
      Parameters:
      width - the width
      Returns:
      the preferred height that this node should be resized to during layout
      See Also:
      setPrefHeight(double)
    • maxWidth

      public final double maxWidth​(double height)
      Called during layout to determine the maximum width for this node. Returns the value from maxWidth(forHeight) unless the application overrode the maximum width by setting the maxWidth property.
      Parameters:
      height - the height
      Returns:
      the maximum width that this node should be resized to during layout
      See Also:
      setMaxWidth(double)
    • maxHeight

      public final double maxHeight​(double width)
      Called during layout to determine the maximum height for this node. Returns the value from maxHeight(forWidth) unless the application overrode the maximum height by setting the maxHeight property.
      Parameters:
      width - the width
      Returns:
      the maximum height that this node should be resized to during layout
      See Also:
      setMaxHeight(double)
    • createDefaultSkin

      protected Skin<?> createDefaultSkin()
      Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS -fx-skin or set explicitly in a sub-class with setSkin(...).
      Returns:
      new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.
      Since:
      JavaFX 8.0
    • getClassCssMetaData

      public static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()
      Returns:
      The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
      Since:
      JavaFX 8.0
    • getCssMetaData

      public List<CssMetaData<? extends Styleable,​?>> getCssMetaData()
      The CssMetaData of this Styleable. This may be returned as an unmodifiable list.
      Specified by:
      getCssMetaData in interface Styleable
      Returns:
      the CssMetaData
      Since:
      JavaFX 8.0
    • pseudoClassStateChanged

      public final void pseudoClassStateChanged​(PseudoClass pseudoClass, boolean active)
      Parameters:
      pseudoClass - the pseudo class
      active - the active state
      Since:
      JavaFX 8.0
      See Also:
      Node.pseudoClassStateChanged(javafx.css.PseudoClass, boolean)
    • getTypeSelector

      public String getTypeSelector()
      The type of this Styleable that is to be used in selector matching. This is analogous to an "element" in HTML. (CSS Type Selector).
      Specified by:
      getTypeSelector in interface Styleable
      Returns:
      "PopupControl"
      Since:
      JavaFX 8.0
    • getStyleableParent

      public Styleable getStyleableParent()
      Return the parent of this Styleable, or null if there is no parent. A PopupControl's styles are based on the popup "owner" which is the ownerNode or, if the ownerNode is not set, the root of the ownerWindow's scene. If the popup has not been shown, both ownerNode and ownerWindow will be null and null will be returned. Note that the PopupWindow's scene root is not returned because there is no way to guarantee that the PopupWindow's scene root would properly return the ownerNode or ownerWindow.
      Specified by:
      getStyleableParent in interface Styleable
      Returns:
      PopupWindow.getOwnerNode(), PopupWindow.getOwnerWindow(), or null.
      Since:
      JavaFX 8.0
    • getPseudoClassStates

      public final ObservableSet<PseudoClass> getPseudoClassStates()
      Return the pseudo-class state of this Styleable. CSS assumes this set is read-only.
      Specified by:
      getPseudoClassStates in interface Styleable
      Returns:
      the pseudo-class state
      Since:
      JavaFX 8.0
    • getStyleableNode

      public Node getStyleableNode()
      Returns the Node that represents this Styleable object. This method should be overridden in cases where the Styleable is not itself a Node, so that it may optionally return the relevant root node representation of itself. By default this method returns null, which can mean that either the Styleable itself is a Node, or if that is not the case, that the Styleable does not have a node representation available at the time of request.
      Specified by:
      getStyleableNode in interface Styleable
      Returns:
      the Node that represents this Styleable object