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
-
-
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 ScrollBarprivate 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 ScrollBarprivate 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
-
Constructor Summary
Constructors Constructor Description VirtualizedScrollPane(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
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 pixelvoid
scrollYBy(double deltaY)
Scroll the content vertically by the given amount.void
scrollYToPixel(double pixel)
Scroll the content vertically to the pixelvoid
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 org.fxmisc.flowless.Virtualized
getEstimatedScrollX, getEstimatedScrollY, getTotalHeightEstimate, getTotalWidthEstimate, scrollBy, scrollBy, scrollToPixel, scrollToPixel
-
-
-
-
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)
-
totalWidthEstimateProperty
public org.reactfx.value.Val<java.lang.Double> totalWidthEstimateProperty()
- Specified by:
totalWidthEstimateProperty
in interfaceVirtualized
-
totalHeightEstimateProperty
public org.reactfx.value.Val<java.lang.Double> totalHeightEstimateProperty()
- Specified by:
totalHeightEstimateProperty
in interfaceVirtualized
-
estimatedScrollXProperty
public org.reactfx.value.Var<java.lang.Double> estimatedScrollXProperty()
- Specified by:
estimatedScrollXProperty
in interfaceVirtualized
-
estimatedScrollYProperty
public org.reactfx.value.Var<java.lang.Double> estimatedScrollYProperty()
- Specified by:
estimatedScrollYProperty
in interfaceVirtualized
-
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)
-
-