Class VirtualizedScrollPane<V extends javafx.scene.layout.Region & Virtualized>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
org.fxmisc.flowless.VirtualizedScrollPane<V>
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, Virtualized

@DefaultProperty("content") public class VirtualizedScrollPane<V extends javafx.scene.layout.Region & Virtualized> extends javafx.scene.layout.Region implements Virtualized
  • Property Summary

    Properties
    Type
    Property
    Description
    org.reactfx.value.Var<Double>
     
    org.reactfx.value.Var<Double>
     
    final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Horizontal ScrollBar
    org.reactfx.value.Val<Double>
     
    org.reactfx.value.Val<Double>
     
    final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Vertical ScrollBar

    Properties inherited from class javafx.scene.layout.Region

    background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

    Properties inherited from class javafx.scene.Parent

    needsLayout

    Properties inherited from class javafx.scene.Node

    accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final V
     
    private static final javafx.css.PseudoClass
     
    private final javafx.beans.value.ChangeListener<Boolean>
     
    private final javafx.scene.control.ScrollBar
     
    private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Horizontal ScrollBar
    private org.reactfx.value.Var<Double>
     
    private final javafx.beans.value.ChangeListener<Double>
     
    private org.reactfx.value.Var<Double>
     
    private javafx.beans.value.ChangeListener<Double>
     
    private final javafx.scene.control.ScrollBar
     
    private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Vertical ScrollBar
    private org.reactfx.value.Var<Double>
     
    private final javafx.beans.value.ChangeListener<Double>
     
    private org.reactfx.value.Var<Double>
     
    private final javafx.beans.value.ChangeListener<Double>
     

    Fields inherited from class javafx.scene.layout.Region

    USE_COMPUTED_SIZE, USE_PREF_SIZE

    Fields inherited from class javafx.scene.Node

    BASELINE_OFFSET_SAME_AS_HEIGHT
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a VirtualizedScrollPane that only displays its horizontal and vertical scroll bars as needed
    VirtualizedScrollPane(V content, javafx.scene.control.ScrollPane.ScrollBarPolicy hPolicy, javafx.scene.control.ScrollPane.ScrollBarPolicy vPolicy)
    Constructs a VirtualizedScrollPane with the given content and policies
  • Method Summary

    Modifier and Type
    Method
    Description
    protected double
    computeMaxHeight(double width)
     
    protected double
    computeMaxWidth(double height)
     
    protected double
    computeMinHeight(double width)
     
    protected double
    computeMinWidth(double height)
     
    protected double
    computePrefHeight(double width)
     
    protected double
    computePrefWidth(double height)
     
    private void
     
    org.reactfx.value.Var<Double>
     
    org.reactfx.value.Var<Double>
     
    Does not unbind scrolling from Content before returning Content.
    final javafx.scene.control.ScrollPane.ScrollBarPolicy
    Gets the value of the hbarPolicy property.
    final javafx.scene.control.ScrollPane.ScrollBarPolicy
    Gets the value of the vbarPolicy property.
    final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Horizontal ScrollBar
    protected void
     
    private static double
    offsetToScrollbarPosition(double contentOffset, double viewportSize, double padding, double contentSize)
     
    Unbinds scrolling from Content before returning Content.
    private static double
    scrollbarPositionToOffset(double scrollbarPos, double viewportSize, double padding, double contentSize)
     
    void
    scrollXBy(double deltaX)
    Scroll the content horizontally by the given amount.
    void
    scrollXToPixel(double pixel)
    Scroll the content horizontally to the pixel
    void
    scrollYBy(double deltaY)
    Scroll the content vertically by the given amount.
    void
    scrollYToPixel(double pixel)
    Scroll the content vertically to the pixel
    final void
    setHbarPolicy(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
    Sets the value of the hbarPolicy property.
    private void
    setHPosition(double pos)
     
    private static void
    setupUnitIncrement(javafx.scene.control.ScrollBar bar)
     
    final void
    setVbarPolicy(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
    Sets the value of the vbarPolicy property.
    private void
    setVPosition(double pos)
     
    org.reactfx.value.Val<Double>
     
    org.reactfx.value.Val<Double>
     
    private void
    unbindScrollBar(javafx.scene.control.ScrollBar bar)
     
    final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy>
    The Policy for the Vertical ScrollBar

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getClassCssMetaData, getCssMetaData, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty

    Methods inherited from class javafx.scene.Parent

    getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setNeedsLayout, updateBounds

    Methods inherited from class javafx.scene.Node

    accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

  • Field Details

    • CONTENT_FOCUSED

      private static final javafx.css.PseudoClass CONTENT_FOCUSED
    • hbar

      private final javafx.scene.control.ScrollBar hbar
    • vbar

      private final javafx.scene.control.ScrollBar vbar
    • content

      private final V extends javafx.scene.layout.Region & Virtualized content
    • contentFocusedListener

      private final javafx.beans.value.ChangeListener<Boolean> contentFocusedListener
    • hbarValueListener

      private final javafx.beans.value.ChangeListener<Double> hbarValueListener
    • hPosEstimateListener

      private javafx.beans.value.ChangeListener<Double> hPosEstimateListener
    • vbarValueListener

      private final javafx.beans.value.ChangeListener<Double> vbarValueListener
    • vPosEstimateListener

      private final javafx.beans.value.ChangeListener<Double> vPosEstimateListener
    • hbarValue

      private org.reactfx.value.Var<Double> hbarValue
    • vbarValue

      private org.reactfx.value.Var<Double> vbarValue
    • hPosEstimate

      private org.reactfx.value.Var<Double> hPosEstimate
    • vPosEstimate

      private org.reactfx.value.Var<Double> vPosEstimate
    • hbarPolicy

      private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicy
      The Policy for the Horizontal ScrollBar
    • vbarPolicy

      private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicy
      The Policy for the Vertical ScrollBar
  • Constructor Details

    • VirtualizedScrollPane

      public VirtualizedScrollPane(V content, javafx.scene.control.ScrollPane.ScrollBarPolicy hPolicy, javafx.scene.control.ScrollPane.ScrollBarPolicy vPolicy)
      Constructs a VirtualizedScrollPane with the given content and policies
    • VirtualizedScrollPane

      public VirtualizedScrollPane(V content)
      Constructs a VirtualizedScrollPane that only displays its horizontal and vertical scroll bars as needed
  • Method Details

    • getHbarPolicy

      public final javafx.scene.control.ScrollPane.ScrollBarPolicy getHbarPolicy()
      Gets the value of the hbarPolicy property.
      Property description:
      The Policy for the Horizontal ScrollBar
      Returns:
      the value of the hbarPolicy property
      See Also:
    • setHbarPolicy

      public final void setHbarPolicy(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
      Sets the value of the hbarPolicy property.
      Property description:
      The Policy for the Horizontal ScrollBar
      Parameters:
      value - the value for the hbarPolicy property
      See Also:
    • hbarPolicyProperty

      public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicyProperty()
      The Policy for the Horizontal ScrollBar
      Returns:
      the hbarPolicy property
      See Also:
    • getVbarPolicy

      public final javafx.scene.control.ScrollPane.ScrollBarPolicy getVbarPolicy()
      Gets the value of the vbarPolicy property.
      Property description:
      The Policy for the Vertical ScrollBar
      Returns:
      the value of the vbarPolicy property
      See Also:
    • setVbarPolicy

      public final void setVbarPolicy(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
      Sets the value of the vbarPolicy property.
      Property description:
      The Policy for the Vertical ScrollBar
      Parameters:
      value - the value for the vbarPolicy property
      See Also:
    • vbarPolicyProperty

      public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicyProperty()
      The Policy for the Vertical ScrollBar
      Returns:
      the vbarPolicy property
      See Also:
    • getContent

      public V getContent()
      Does not unbind scrolling from Content before returning Content.
      Returns:
      - the content
    • removeContent

      public V removeContent()
      Unbinds scrolling from Content before returning Content.
      Returns:
      - the content
    • dispose

      private void dispose()
    • unbindScrollBar

      private void unbindScrollBar(javafx.scene.control.ScrollBar bar)
    • totalWidthEstimateProperty

      public org.reactfx.value.Val<Double> totalWidthEstimateProperty()
      Specified by:
      totalWidthEstimateProperty in interface Virtualized
      Returns:
      the totalWidthEstimate property
      See Also:
    • totalHeightEstimateProperty

      public org.reactfx.value.Val<Double> totalHeightEstimateProperty()
      Specified by:
      totalHeightEstimateProperty in interface Virtualized
      Returns:
      the totalHeightEstimate property
      See Also:
    • estimatedScrollXProperty

      public org.reactfx.value.Var<Double> estimatedScrollXProperty()
      Specified by:
      estimatedScrollXProperty in interface Virtualized
      Returns:
      the estimatedScrollX property
      See Also:
    • estimatedScrollYProperty

      public org.reactfx.value.Var<Double> estimatedScrollYProperty()
      Specified by:
      estimatedScrollYProperty in interface Virtualized
      Returns:
      the estimatedScrollY property
      See Also:
    • scrollXBy

      public void scrollXBy(double deltaX)
      Description copied from interface: Virtualized
      Scroll the content horizontally by the given amount.
      Specified by:
      scrollXBy in interface Virtualized
      Parameters:
      deltaX - positive value scrolls right, negative value scrolls left
    • scrollYBy

      public void scrollYBy(double deltaY)
      Description copied from interface: Virtualized
      Scroll the content vertically by the given amount.
      Specified by:
      scrollYBy in interface Virtualized
      Parameters:
      deltaY - positive value scrolls down, negative value scrolls up
    • scrollXToPixel

      public void scrollXToPixel(double pixel)
      Description copied from interface: Virtualized
      Scroll the content horizontally to the pixel
      Specified by:
      scrollXToPixel in interface Virtualized
      Parameters:
      pixel - - the pixel position to which to scroll
    • scrollYToPixel

      public void scrollYToPixel(double pixel)
      Description copied from interface: Virtualized
      Scroll the content vertically to the pixel
      Specified by:
      scrollYToPixel in interface Virtualized
      Parameters:
      pixel - - the pixel position to which to scroll
    • computePrefWidth

      protected double computePrefWidth(double height)
      Overrides:
      computePrefWidth in class javafx.scene.layout.Region
    • computePrefHeight

      protected double computePrefHeight(double width)
      Overrides:
      computePrefHeight in class javafx.scene.layout.Region
    • computeMinWidth

      protected double computeMinWidth(double height)
      Overrides:
      computeMinWidth in class javafx.scene.layout.Region
    • computeMinHeight

      protected double computeMinHeight(double width)
      Overrides:
      computeMinHeight in class javafx.scene.layout.Region
    • computeMaxWidth

      protected double computeMaxWidth(double height)
      Overrides:
      computeMaxWidth in class javafx.scene.layout.Region
    • computeMaxHeight

      protected double computeMaxHeight(double width)
      Overrides:
      computeMaxHeight in class javafx.scene.layout.Region
    • layoutChildren

      protected void layoutChildren()
      Overrides:
      layoutChildren in class javafx.scene.Parent
    • setHPosition

      private void setHPosition(double pos)
    • setVPosition

      private void setVPosition(double pos)
    • setupUnitIncrement

      private static void setupUnitIncrement(javafx.scene.control.ScrollBar bar)
    • offsetToScrollbarPosition

      private static double offsetToScrollbarPosition(double contentOffset, double viewportSize, double padding, double contentSize)
    • scrollbarPositionToOffset

      private static double scrollbarPositionToOffset(double scrollbarPos, double viewportSize, double padding, double contentSize)