Class PaginationV2

  • All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

    public class PaginationV2
    extends javafx.scene.control.Control
    Pagination control that allows for input text to be spit up on the pages based on the amount of text that can be displayed on one page. The size of the page is controlled by the properties contentMaxWidth and contentMaxHeight. Furthermore this control allows you to define a node for the back and next action. This is especially helpful in the case when applying a transformation on this control. If the properties backButtonNode and nextButtonNode are not set, the next and back action will be mapped on the labels. The contents of this Pagination does not react on resizing the component. Instead the size of the contents is controlled by the properties contentMaxHeightProperty() and contentMaxWidthProperty(). However the control will resize itself by expanding to the right and the bottom. To avoid this pack the Pagination into a group and set its managable flag to false.
    To include this control in the workflow together with other controls you can define an event handler which will then be executeted when you hit the back button on the first page or the next button on the last page.
    This control can only be instantiated using it's builder.
    Author:
    Andi Hotz, (c) Sahits GmbH, 2013 Created on Aug 4, 2013
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javafx.beans.property.StringProperty backButtonLabel  
      private javafx.beans.property.ObjectProperty<javafx.scene.Node> backButtonNode  
      private javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFont  
      private javafx.beans.property.DoubleProperty contentMaxHeight  
      private javafx.beans.property.DoubleProperty contentMaxWidth  
      private javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageAction  
      private javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFont  
      private javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFont  
      private javafx.beans.property.StringProperty nextButtonLabel  
      private javafx.beans.property.ObjectProperty<javafx.scene.Node> nextButtonNode  
      private javafx.beans.property.ObjectProperty<javafx.geometry.Insets> paddingLocal  
      private javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFont  
      private javafx.beans.property.ObjectProperty<Text> text  
      • 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
      PaginationV2​(javafx.beans.property.StringProperty backButtonLabel, javafx.beans.property.StringProperty nextButtonLabel, javafx.beans.property.ObjectProperty<javafx.scene.Node> backButtonNode, javafx.beans.property.ObjectProperty<javafx.scene.Node> nextButtonNode, javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageAction, javafx.beans.property.ObjectProperty<Text> text, javafx.beans.property.DoubleProperty contentMaxWidth, javafx.beans.property.DoubleProperty contentMaxHeight, javafx.beans.property.ObjectProperty<javafx.geometry.Insets> paddingLocal, javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFont, javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFont, javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFont, javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFont)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.ReadOnlyStringProperty backButtonLabelProperty()
      Property defining the label of the back button.
      javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFontProperty()  
      javafx.beans.property.ReadOnlyDoubleProperty contentMaxHeightProperty()
      Retrieve the maximal height of the content
      javafx.beans.property.ReadOnlyDoubleProperty contentMaxWidthProperty()
      Property containing the maximal width of the content.
      protected javafx.scene.control.Skin<?> createDefaultSkin()  
      javafx.beans.property.ReadOnlyObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageActionProperty()  
      java.lang.String getBackButtonLabel()  
      javafx.scene.Node getBackButtonNode()
      Retrieve the node definition to be used for the back button.
      javafx.scene.text.Font getCenteredFont()  
      double getContentMaxHeight()  
      double getContentMaxWidth()  
      javafx.event.EventHandler<javafx.scene.input.MouseEvent> getFirstLastPageAction()  
      javafx.scene.text.Font getHeaderFont()  
      javafx.scene.text.Font getNavigationLabelFont()  
      java.lang.String getNextButtonLabel()  
      javafx.scene.Node getNextButtonNode()
      Retrieve the node definition to be used for the next button.
      javafx.geometry.Insets getPaddingLocal()  
      javafx.scene.text.Font getParagraphFont()  
      Text getText()  
      java.lang.String getUserAgentStylesheet()  
      javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFontProperty()  
      javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFontProperty()  
      javafx.beans.property.ReadOnlyStringProperty nextButtonLabelProperty()
      Property defining the label of the next button.
      javafx.beans.property.ReadOnlyObjectProperty<javafx.geometry.Insets> paddingLocalProperty()  
      javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFontProperty()  
      javafx.beans.property.ReadOnlyObjectProperty<Text> textProperty()
      Property containing the text content of this control.
      • Methods inherited from class javafx.scene.control.Control

        computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
      • Methods inherited from class javafx.scene.layout.Region

        backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, 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

        getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, 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, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, 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

      • backButtonLabel

        private final javafx.beans.property.StringProperty backButtonLabel
      • nextButtonLabel

        private final javafx.beans.property.StringProperty nextButtonLabel
      • backButtonNode

        private final javafx.beans.property.ObjectProperty<javafx.scene.Node> backButtonNode
      • nextButtonNode

        private final javafx.beans.property.ObjectProperty<javafx.scene.Node> nextButtonNode
      • firstLastPageAction

        private final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageAction
      • text

        private final javafx.beans.property.ObjectProperty<Text> text
      • contentMaxWidth

        private final javafx.beans.property.DoubleProperty contentMaxWidth
      • contentMaxHeight

        private final javafx.beans.property.DoubleProperty contentMaxHeight
      • paddingLocal

        private final javafx.beans.property.ObjectProperty<javafx.geometry.Insets> paddingLocal
      • navigationLabelFont

        private final javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFont
      • headerFont

        private final javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFont
      • paragraphFont

        private final javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFont
      • centeredFont

        private final javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFont
    • Constructor Detail

      • PaginationV2

        public PaginationV2​(javafx.beans.property.StringProperty backButtonLabel,
                            javafx.beans.property.StringProperty nextButtonLabel,
                            javafx.beans.property.ObjectProperty<javafx.scene.Node> backButtonNode,
                            javafx.beans.property.ObjectProperty<javafx.scene.Node> nextButtonNode,
                            javafx.beans.property.ObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageAction,
                            javafx.beans.property.ObjectProperty<Text> text,
                            javafx.beans.property.DoubleProperty contentMaxWidth,
                            javafx.beans.property.DoubleProperty contentMaxHeight,
                            javafx.beans.property.ObjectProperty<javafx.geometry.Insets> paddingLocal,
                            javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFont,
                            javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFont,
                            javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFont,
                            javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFont)
    • Method Detail

      • getUserAgentStylesheet

        public java.lang.String getUserAgentStylesheet()
        Overrides:
        getUserAgentStylesheet in class javafx.scene.layout.Region
      • createDefaultSkin

        protected javafx.scene.control.Skin<?> createDefaultSkin()
        Overrides:
        createDefaultSkin in class javafx.scene.control.Control
      • getContentMaxHeight

        public double getContentMaxHeight()
      • contentMaxHeightProperty

        public javafx.beans.property.ReadOnlyDoubleProperty contentMaxHeightProperty()
        Retrieve the maximal height of the content
        Returns:
        max height as read only proerty
      • getContentMaxWidth

        public double getContentMaxWidth()
      • contentMaxWidthProperty

        public javafx.beans.property.ReadOnlyDoubleProperty contentMaxWidthProperty()
        Property containing the maximal width of the content.
        Returns:
        max width of the content as read only proerty.
      • getText

        public Text getText()
      • textProperty

        public javafx.beans.property.ReadOnlyObjectProperty<Text> textProperty()
        Property containing the text content of this control.
        Returns:
        text as read only property
      • getNextButtonLabel

        public java.lang.String getNextButtonLabel()
      • nextButtonLabelProperty

        public javafx.beans.property.ReadOnlyStringProperty nextButtonLabelProperty()
        Property defining the label of the next button. Default is 'next'
        Returns:
        next button as read label only property
      • getBackButtonLabel

        public java.lang.String getBackButtonLabel()
      • backButtonLabelProperty

        public javafx.beans.property.ReadOnlyStringProperty backButtonLabelProperty()
        Property defining the label of the back button. Default is 'back'
        Returns:
        back button label as read only property
      • getBackButtonNode

        public final javafx.scene.Node getBackButtonNode()
        Retrieve the node definition to be used for the back button. This method is used by the Skin.
        Returns:
        node representing the back button
      • getPaddingLocal

        public javafx.geometry.Insets getPaddingLocal()
      • paddingLocalProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.geometry.Insets> paddingLocalProperty()
      • getNextButtonNode

        public final javafx.scene.Node getNextButtonNode()
        Retrieve the node definition to be used for the next button. This method is used by the Skin.
        Returns:
        node representing the next button.
      • firstLastPageActionProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.event.EventHandler<javafx.scene.input.MouseEvent>> firstLastPageActionProperty()
      • getFirstLastPageAction

        public javafx.event.EventHandler<javafx.scene.input.MouseEvent> getFirstLastPageAction()
      • navigationLabelFontProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> navigationLabelFontProperty()
      • getNavigationLabelFont

        public javafx.scene.text.Font getNavigationLabelFont()
      • headerFontProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> headerFontProperty()
      • getHeaderFont

        public javafx.scene.text.Font getHeaderFont()
      • centeredFontProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> centeredFontProperty()
      • getCenteredFont

        public javafx.scene.text.Font getCenteredFont()
      • paragraphFontProperty

        public javafx.beans.property.ReadOnlyObjectProperty<javafx.scene.text.Font> paragraphFontProperty()
      • getParagraphFont

        public javafx.scene.text.Font getParagraphFont()