Package org.fxmisc.flowless
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
PropertiesTypePropertyDescriptionorg.reactfx.value.Var
<Double> org.reactfx.value.Var
<Double> final org.reactfx.value.Var
<javafx.scene.control.ScrollPane.ScrollBarPolicy> The Policy for the Horizontal ScrollBarorg.reactfx.value.Val
<Double> org.reactfx.value.Val
<Double> final org.reactfx.value.Var
<javafx.scene.control.ScrollPane.ScrollBarPolicy> The Policy for the Vertical ScrollBarProperties 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
FieldsModifier and TypeFieldDescriptionprivate 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 ScrollBarprivate 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 ScrollBarprivate 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
ConstructorsConstructorDescriptionVirtualizedScrollPane
(V content) Constructs a VirtualizedScrollPane that only displays its horizontal and vertical scroll bars as neededVirtualizedScrollPane
(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 TypeMethodDescriptionprotected 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
<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 thehbarPolicy
property.final javafx.scene.control.ScrollPane.ScrollBarPolicy
Gets the value of thevbarPolicy
property.final org.reactfx.value.Var
<javafx.scene.control.ScrollPane.ScrollBarPolicy> The Policy for the Horizontal ScrollBarprotected 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 pixelvoid
scrollYBy
(double deltaY) Scroll the content vertically by the given amount.void
scrollYToPixel
(double pixel) Scroll the content vertically to the pixelfinal void
setHbarPolicy
(javafx.scene.control.ScrollPane.ScrollBarPolicy value) Sets the value of thehbarPolicy
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 thevbarPolicy
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 ScrollBarMethods 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
Methods inherited from interface org.fxmisc.flowless.Virtualized
getEstimatedScrollX, getEstimatedScrollY, getTotalHeightEstimate, getTotalWidthEstimate, scrollBy, scrollBy, scrollToPixel, scrollToPixel
-
Property Details
-
hbarPolicy
public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicyPropertyThe Policy for the Horizontal ScrollBar- See Also:
-
vbarPolicy
public final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicyPropertyThe Policy for the Vertical ScrollBar- See Also:
-
totalWidthEstimate
- Specified by:
totalWidthEstimateProperty
in interfaceVirtualized
- Returns:
- the
totalWidthEstimate
property - See Also:
-
totalHeightEstimate
- Specified by:
totalHeightEstimateProperty
in interfaceVirtualized
- Returns:
- the
totalHeightEstimate
property - See Also:
-
estimatedScrollX
- Specified by:
estimatedScrollXProperty
in interfaceVirtualized
- Returns:
- the
estimatedScrollX
property - See Also:
-
estimatedScrollY
- Specified by:
estimatedScrollYProperty
in interfaceVirtualized
- Returns:
- the
estimatedScrollY
property - See Also:
-
-
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 -
-
contentFocusedListener
-
hbarValueListener
-
hPosEstimateListener
-
vbarValueListener
-
vPosEstimateListener
-
hbarValue
-
vbarValue
-
hPosEstimate
-
vPosEstimate
-
hbarPolicy
private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> hbarPolicyThe Policy for the Horizontal ScrollBar -
vbarPolicy
private final org.reactfx.value.Var<javafx.scene.control.ScrollPane.ScrollBarPolicy> vbarPolicyThe 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
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 thehbarPolicy
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 thehbarPolicy
property.- Property description:
- The Policy for the Horizontal ScrollBar
- Parameters:
value
- the value for thehbarPolicy
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 thevbarPolicy
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 thevbarPolicy
property.- Property description:
- The Policy for the Vertical ScrollBar
- Parameters:
value
- the value for thevbarPolicy
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
Does not unbind scrolling from Content before returning Content.- Returns:
- - the content
-
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
- Specified by:
totalWidthEstimateProperty
in interfaceVirtualized
- Returns:
- the
totalWidthEstimate
property - See Also:
-
totalHeightEstimateProperty
- Specified by:
totalHeightEstimateProperty
in interfaceVirtualized
- Returns:
- the
totalHeightEstimate
property - See Also:
-
estimatedScrollXProperty
- Specified by:
estimatedScrollXProperty
in interfaceVirtualized
- Returns:
- the
estimatedScrollX
property - See Also:
-
estimatedScrollYProperty
- Specified by:
estimatedScrollYProperty
in interfaceVirtualized
- 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 interfaceVirtualized
- 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 interfaceVirtualized
- 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 interfaceVirtualized
- 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 interfaceVirtualized
- Parameters:
pixel
- - the pixel position to which to scroll
-
computePrefWidth
protected double computePrefWidth(double height) - Overrides:
computePrefWidth
in classjavafx.scene.layout.Region
-
computePrefHeight
protected double computePrefHeight(double width) - Overrides:
computePrefHeight
in classjavafx.scene.layout.Region
-
computeMinWidth
protected double computeMinWidth(double height) - Overrides:
computeMinWidth
in classjavafx.scene.layout.Region
-
computeMinHeight
protected double computeMinHeight(double width) - Overrides:
computeMinHeight
in classjavafx.scene.layout.Region
-
computeMaxWidth
protected double computeMaxWidth(double height) - Overrides:
computeMaxWidth
in classjavafx.scene.layout.Region
-
computeMaxHeight
protected double computeMaxHeight(double width) - Overrides:
computeMaxHeight
in classjavafx.scene.layout.Region
-
layoutChildren
protected void layoutChildren()- Overrides:
layoutChildren
in classjavafx.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)
-