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

  • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private V content  
      private static javafx.css.PseudoClass CONTENT_FOCUSED  
      private javafx.beans.value.ChangeListener<java.lang.Boolean> contentFocusedListener  
      private javafx.scene.control.ScrollBar hbar  
      private org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicy
      The Policy for the Horizontal ScrollBar
      private org.reactfx.value.Var<java.lang.Double> hbarValue  
      private javafx.beans.value.ChangeListener<java.lang.Double> hbarValueListener  
      private org.reactfx.value.Var<java.lang.Double> hPosEstimate  
      private javafx.beans.value.ChangeListener<java.lang.Double> hPosEstimateListener  
      private javafx.scene.control.ScrollBar vbar  
      private org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicy
      The Policy for the Vertical ScrollBar
      private org.reactfx.value.Var<java.lang.Double> vbarValue  
      private javafx.beans.value.ChangeListener<java.lang.Double> vbarValueListener  
      private org.reactfx.value.Var<java.lang.Double> vPosEstimate  
      private javafx.beans.value.ChangeListener<java.lang.Double> vPosEstimateListener  
      • 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
      VirtualizedScrollPane​(V content)
      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

      All Methods Static Methods Instance Methods Concrete Methods 
      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 dispose()  
      org.reactfx.value.Var<java.lang.Double> estimatedScrollXProperty()  
      org.reactfx.value.Var<java.lang.Double> estimatedScrollYProperty()  
      V getContent()
      Does not unbind scrolling from Content before returning Content.
      javafx.scene.control.ScrollPane.ScrollBarPolicy getHbarPolicy()  
      javafx.scene.control.ScrollPane.ScrollBarPolicy getVbarPolicy()  
      org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicyProperty()  
      protected void layoutChildren()  
      private static double offsetToScrollbarPosition​(double contentOffset, double viewportSize, double padding, double contentSize)  
      V removeContent()
      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
      void setHbarPolicy​(javafx.scene.control.ScrollPane.ScrollBarPolicy value)  
      private void setHPosition​(double pos)  
      private static void setupUnitIncrement​(javafx.scene.control.ScrollBar bar)  
      void setVbarPolicy​(javafx.scene.control.ScrollPane.ScrollBarPolicy value)  
      private void setVPosition​(double pos)  
      org.reactfx.value.Val<java.lang.Double> totalHeightEstimateProperty()  
      org.reactfx.value.Val<java.lang.Double> totalWidthEstimateProperty()  
      private void unbindScrollBar​(javafx.scene.control.ScrollBar bar)  
      org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicyProperty()  
      • 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
    • Field Detail

      • 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<java.lang.Boolean> contentFocusedListener
      • hbarValueListener

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

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

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

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

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

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

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

        private org.reactfx.value.Var<java.lang.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 Detail

      • 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 Detail

      • getHbarPolicy

        public final javafx.scene.control.ScrollPane.ScrollBarPolicy getHbarPolicy()
      • setHbarPolicy

        public final void setHbarPolicy​(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
      • hbarPolicyProperty

        public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicyProperty()
      • getVbarPolicy

        public final javafx.scene.control.ScrollPane.ScrollBarPolicy getVbarPolicy()
      • setVbarPolicy

        public final void setVbarPolicy​(javafx.scene.control.ScrollPane.ScrollBarPolicy value)
      • vbarPolicyProperty

        public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicyProperty()
      • 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)
      • 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)