Class PaginationV2
- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.control.Control
-
- ch.sahits.game.openpatrician.javafx.control.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 propertiescontentMaxWidth
andcontentMaxHeight
. 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 propertiesbackButtonNode
andnextButtonNode
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 propertiescontentMaxHeightProperty()
andcontentMaxWidthProperty()
. 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
-
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 contentjavafx.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
-
-
-
-
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 classjavafx.scene.layout.Region
-
createDefaultSkin
protected javafx.scene.control.Skin<?> createDefaultSkin()
- Overrides:
createDefaultSkin
in classjavafx.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()
-
-