Class ZoomablePane<T extends InformedIterable<?> & BoundedElement2afp<?>>

  • Type Parameters:
    T - the type of the document.
    All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, ZoomableViewer<T>
    Direct Known Subclasses:
    GisPane

    public class ZoomablePane<T extends InformedIterable<?> & BoundedElement2afp<?>>
    extends javafx.scene.layout.BorderPane
    implements ZoomableViewer<T>
    Panel that is displaying the document elements and supporting zooming.
    Since:
    15.0
    Version:
    17.0 2020-01-04 14:41:52
    Author:
    Stéphane GALLAND
    Maven Group Id:
    org.arakhne.afc.advanced
    Maven Artifact Id:
    nodefx
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ZoomablePane.ColorSquare
      The color square at the corner of a ZoomablePane.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addDrawingListener​(DrawingListener listener)
      Add a drawing listener.
      javafx.beans.property.ReadOnlyObjectProperty<Rectangle2afp<?,​?,​?,​?,​?,​?>> documentBoundsProperty()
      Replies the property that contains the document bounds.
      javafx.beans.property.ObjectProperty<Drawer<? super T>> documentDrawerProperty()
      Replies the property that contains the document drawer.
      javafx.beans.property.ObjectProperty<T> documentModelProperty()
      Replies the property that contains the document model.
      javafx.beans.property.IntegerProperty drawableElementBudgetProperty()
      Replies the property that defines the maximal number of drawable elements to be render.
      void drawContent()
      Refresh the content of the viewer in order to have a new image drawn.
      static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getClassCssMetaData()
      Replies the CssMetaData associated with this class, which may include the CssMetaData of its super classes.
      ZoomablePane.ColorSquare getCorner()
      Replies the corner pane.
      List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getCssMetaData()  
      javafx.event.EventHandler<javafx.scene.input.MouseEvent> getDefaultOnDragDetectedEventHandler()
      Replies the default event handler that may be used for starting the panning action on the panel.
      javafx.event.EventHandler<javafx.scene.input.MouseEvent> getDefaultOnMouseDraggedEventHandler()
      Replies the default event handler that may be used for starting the panning action on the panel.
      Rectangle2afp<?,​?,​?,​?,​?,​?> getDocumentBounds()
      Replies the bounds of the document.
      ZoomableCanvas<T> getDocumentCanvas()
      Replies the document canvas within this pane.
      Drawer<? super T> getDocumentDrawer()
      Replies the drawer of the document.
      T getDocumentModel()
      Replies the model of the document.
      int getDrawableElementBudget()
      Replies the maximal number of drawable elements to be render.
      Logger getLogger()
      Replies the logger associated to this pane.
      double getMaxScaleValue()
      Replies the maximum scale value.
      double getMinScaleValue()
      Replies the minimum scale value.
      javafx.scene.input.MouseButton getPanButton()
      Replies the button that serves for starting the mouse scrolling.
      double getPanSensitivity()
      Replies the sensibility of the panning moves.
      double getPanSensitivity​(boolean unitSensitivityModifier, boolean hugeSensivityModifier)
      Replies the sensibility of the panning moves after applying dynamic user interaction modifiers.
      double getScaleChange()
      Replies the delta value that is applied when zooming in or out.
      double getScaleValue()
      Replies the scale value.
      double getScaleValueToFit​(boolean minimizeOnly)
      Replies the scale value to fit the content to the viewport.
      Rectangle2afp<?,​?,​?,​?,​?,​?> getViewportBounds()
      Replies the bounds of the viewport in document coordinates.
      double getViewportCenterX()
      Replies the x coordinate of the viewport center in document coordinates.
      double getViewportCenterY()
      Replies the y coordinate of the viewport center in document coordinates.
      javafx.beans.property.BooleanProperty invertedAxisXProperty()
      Replies the property that indicates if the X axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      javafx.beans.property.BooleanProperty invertedAxisYProperty()
      Replies the property that indicates if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      boolean isInvertedAxisX()
      Replies if the x axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      boolean isInvertedAxisY()
      Replies if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      boolean isPannable()
      Replies the flag that indicates if the user could be able to pan the viewport by using the mouse.
      javafx.beans.property.ObjectProperty<Logger> loggerProperty()
      Replies the property that contains the logger.
      javafx.beans.property.DoubleProperty maxScaleValueProperty()
      Replies the property for the maximum scale value.
      javafx.beans.property.DoubleProperty minScaleValueProperty()
      Replies the property for the minimum scale value.
      void moveDown​(boolean isUnit, boolean isLarge, boolean isVeryLarge)
      Move the viewport down.
      void moveLeft​(boolean isUnit, boolean isLarge, boolean isVeryLarge)
      Move the viewport left.
      void moveRight​(boolean isUnit, boolean isLarge, boolean isVeryLarge)
      Move the viewport right.
      void moveUp​(boolean isUnit, boolean isLarge, boolean isVeryLarge)
      Move the viewport up.
      javafx.beans.property.ObjectProperty<javafx.scene.input.MouseButton> panButtonProperty()
      Replies the property for the button that serves for starting the mouse scrolling.
      javafx.beans.property.BooleanProperty pannableProperty()
      Replies the property that indicates if the user could be able to pan the viewport by using the mouse.
      javafx.beans.property.DoubleProperty panSensitivityProperty()
      Replies the property that indicates the sensibility of the panning moves.
      void removeDrawingListener​(DrawingListener listener)
      Remove a drawing listener.
      javafx.beans.property.DoubleProperty scaleChangeProperty()
      Replies the property for the delta value that is applied when zooming in or out.
      javafx.beans.property.DoubleProperty scaleValueProperty()
      Replies the property for the scale value.
      void setDocumentDrawer​(Drawer<? super T> drawer)
      Change the drawer of the document.
      void setDocumentModel​(T model)
      Change the model of the document.
      void setDrawableElementBudget​(int budget)
      Change the maximal number of drawable elements to be render.
      void setInvertedAxisX​(boolean inverted)
      Change the flag if the x axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      void setInvertedAxisY​(boolean inverted)
      Change the flag if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
      void setLogger​(Logger logger)
      Change the logger associated to this pane.
      void setMaxScaleValue​(double value)
      Change the maximum scale value.
      void setMinScaleValue​(double value)
      Change the minimum scale value.
      void setPanButton​(javafx.scene.input.MouseButton button)
      Change the button that serves for starting the mouse scrolling.
      void setPannable​(boolean value)
      Change the property that indicates if the user could be able to pan the viewport by using the mouse.
      void setPanSensitivity​(double value)
      Change the sensibility of the panning moves.
      void setScaleChange​(double change)
      Change the change factor that is applied when zooming in or out.
      void setScaleValue​(double value)
      Change the scale value.
      void setScaleValue​(double scaleValue, double centerX, double centerY)
      Change the zoom factor and center the view point at the given given position.
      protected void setupKeying()
      Setup the response of the pane to key events.
      protected void setupListeners()
      Setup the response based on listeners.
      protected void setupMousing()
      Setup the response of the pane to mouse events.
      void setViewportCenter​(double x, double y)
      Change the coordinates of the viewport center in document coordinates.
      void setViewportCenterX​(double x)
      Change the x coordinate of the viewport center in document coordinates.
      void setViewportCenterY​(double y)
      Change the y coordinate of the viewport center in document coordinates.
      double toDocumentPositionX​(double x)
      Replies the X position inside the document that corresponds to the given X position on screen.
      double toDocumentPositionY​(double y)
      Replies the Y position inside the document that corresponds to the given Y position on screen.
      double toDocumentSize​(double size)
      Replies the size inside the document that corresponds to the given size on screen.
      double toScreenPositionX​(double x)
      Replies the X position on the screen that corresponds to the given X position within the document.
      double toScreenPositionY​(double y)
      Replies the Y position on the screen that corresponds to the given Y position within the document.
      double toScreenSize​(double size)
      Replies the size on the screen that corresponds to the given size within the document.
      javafx.beans.property.ReadOnlyObjectProperty<Rectangle2afp<?,​?,​?,​?,​?,​?>> viewportBoundsProperty()
      Replies the property that contains the viewport bounds in the document coordinates.
      javafx.beans.property.DoubleProperty viewportCenterXProperty()
      Replies the property for the x coordinate of the viewport center in document coordinates.
      javafx.beans.property.DoubleProperty viewportCenterYProperty()
      Replies the property for the y coordinate of the viewport center in document coordinates.
      void zoomIn​(double centerX, double centerY)
      Zoom in from a specific location, and center at the view point to the given location.
      void zoomOut​(double centerX, double centerY)
      Zoom out from a specific location, and center at the view point to the given location.
      • Methods inherited from class javafx.scene.layout.BorderPane

        bottomProperty, centerProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAlignment, getBottom, getCenter, getContentBias, getLeft, getMargin, getRight, getTop, layoutChildren, leftProperty, rightProperty, setAlignment, setBottom, setCenter, setLeft, setMargin, setRight, setTop, topProperty
      • Methods inherited from class javafx.scene.layout.Pane

        getChildren
      • Methods inherited from class javafx.scene.layout.Region

        backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, 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, 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, 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 interface javafx.css.Styleable

        getStyleableNode
    • Field Detail

      • IS_TOUCH_SUPPORTED

        protected static final boolean IS_TOUCH_SUPPORTED
        A static final reference to whether the platform we are on supports touch.
    • Constructor Detail

      • ZoomablePane

        public ZoomablePane()
        Constructor with the model to be displayed.
        Since:
        16.0
      • ZoomablePane

        public ZoomablePane​(T model)
        Constructor with the model to be displayed.
        Parameters:
        model - the source of the elements.
      • ZoomablePane

        public ZoomablePane​(ZoomableCanvas<T> canvas)
        Constructor with the canvas.
        Parameters:
        canvas - the pre-created canvas with the model to display inside.
    • Method Detail

      • getClassCssMetaData

        public static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getClassCssMetaData()
        Replies the CssMetaData associated with this class, which may include the CssMetaData of its super classes.
        Returns:
        the metadata.
      • getCssMetaData

        public List<javafx.css.CssMetaData<? extends javafx.css.Styleable,​?>> getCssMetaData()
        Specified by:
        getCssMetaData in interface javafx.css.Styleable
        Overrides:
        getCssMetaData in class javafx.scene.layout.Region
      • setupListeners

        protected void setupListeners()
        Setup the response based on listeners.
      • getDefaultOnDragDetectedEventHandler

        public javafx.event.EventHandler<javafx.scene.input.MouseEvent> getDefaultOnDragDetectedEventHandler()
        Replies the default event handler that may be used for starting the panning action on the panel.
        Returns:
        the event handler.
        Since:
        15.0
      • getDefaultOnMouseDraggedEventHandler

        public javafx.event.EventHandler<javafx.scene.input.MouseEvent> getDefaultOnMouseDraggedEventHandler()
        Replies the default event handler that may be used for starting the panning action on the panel.
        Returns:
        the event handler.
        Since:
        15.0
      • setupMousing

        protected void setupMousing()
        Setup the response of the pane to mouse events.
      • setupKeying

        protected void setupKeying()
        Setup the response of the pane to key events.
      • moveLeft

        public void moveLeft​(boolean isUnit,
                             boolean isLarge,
                             boolean isVeryLarge)
        Move the viewport left.
        Parameters:
        isUnit - indicates if the move is a unit move. If true, this argument has precedence to the other arguments.
        isLarge - indicates if the move is a large move. If true, this argument has precedence to the very large argument.
        isVeryLarge - indicates if the move is a very large move.
      • moveRight

        public void moveRight​(boolean isUnit,
                              boolean isLarge,
                              boolean isVeryLarge)
        Move the viewport right.
        Parameters:
        isUnit - indicates if the move is a unit move. If true, this argument has precedence to the other arguments.
        isLarge - indicates if the move is a large move. If true, this argument has precedence to the very large argument.
        isVeryLarge - indicates if the move is a very large move.
      • moveUp

        public void moveUp​(boolean isUnit,
                           boolean isLarge,
                           boolean isVeryLarge)
        Move the viewport up.
        Parameters:
        isUnit - indicates if the move is a unit move. If true, this argument has precedence to the other arguments.
        isLarge - indicates if the move is a large move. If true, this argument has precedence to the very large argument.
        isVeryLarge - indicates if the move is a very large move.
      • moveDown

        public void moveDown​(boolean isUnit,
                             boolean isLarge,
                             boolean isVeryLarge)
        Move the viewport down.
        Parameters:
        isUnit - indicates if the move is a unit move. If true, this argument has precedence to the other arguments.
        isLarge - indicates if the move is a large move. If true, this argument has precedence to the very large argument.
        isVeryLarge - indicates if the move is a very large move.
      • loggerProperty

        public javafx.beans.property.ObjectProperty<Logger> loggerProperty()
        Replies the property that contains the logger.
        Returns:
        the logger.
      • getLogger

        public Logger getLogger()
        Replies the logger associated to this pane.
        Returns:
        the logger.
      • setLogger

        public void setLogger​(Logger logger)
        Change the logger associated to this pane.
        Parameters:
        logger - the logger.
      • pannableProperty

        public javafx.beans.property.BooleanProperty pannableProperty()
        Replies the property that indicates if the user could be able to pan the viewport by using the mouse. If mouse events reach the ZoomablePane (that is, if mouse events are not blocked by the contained node or one of its children) then pannable is consulted to determine if the events should be used for panning.
        Returns:
        the property.
      • setPannable

        public final void setPannable​(boolean value)
        Change the property that indicates if the user could be able to pan the viewport by using the mouse. If mouse events reach the ZoomablePane (that is, if mouse events are not blocked by the contained node or one of its children) then pannable is consulted to determine if the events should be used for panning.
        Parameters:
        value - true to enable the panning, false to disable the panning.
      • isPannable

        public final boolean isPannable()
        Replies the flag that indicates if the user could be able to pan the viewport by using the mouse. If mouse events reach the ZoomablePane (that is, if mouse events are not blocked by the contained node or one of its children) then pannable is consulted to determine if the events should be used for panning.
        Returns:
        true to enable the panning, false to disable the panning.
      • panButtonProperty

        public javafx.beans.property.ObjectProperty<javafx.scene.input.MouseButton> panButtonProperty()
        Replies the property for the button that serves for starting the mouse scrolling.
        Returns:
        the property.
      • getPanButton

        public final javafx.scene.input.MouseButton getPanButton()
        Replies the button that serves for starting the mouse scrolling.
        Returns:
        the mouse button that permits to start the panning.
      • setPanButton

        public final void setPanButton​(javafx.scene.input.MouseButton button)
        Change the button that serves for starting the mouse scrolling.
        Parameters:
        button - the mouse button that permits to start the panning.
      • panSensitivityProperty

        public javafx.beans.property.DoubleProperty panSensitivityProperty()
        Replies the property that indicates the sensibility of the panning moves. The sensibility is a strictly positive number that is multiplied to the distance covered by the mouse motion for obtaining the move to apply to the document. The default value is 1.
        Returns:
        the property.
      • setPanSensitivity

        public final void setPanSensitivity​(double value)
        Change the sensibility of the panning moves. The sensibility is a strictly positive number that is multiplied to the distance covered by the mouse motion for obtaining the move to apply to the document. The default value is 1.
        Parameters:
        value - the sensitivity.
      • getPanSensitivity

        public final double getPanSensitivity()
        Replies the sensibility of the panning moves. The sensibility is a strictly positive number that is multiplied to the distance covered by the mouse motion for obtaining the move to apply to the document. The default value is 1.
        Returns:
        the sensitivity.
      • getPanSensitivity

        public double getPanSensitivity​(boolean unitSensitivityModifier,
                                        boolean hugeSensivityModifier)
        Replies the sensibility of the panning moves after applying dynamic user interaction modifiers. The sensibility is a strictly positive number that is multiplied to the distance covered by the mouse motion for obtaining the move to apply to the document. The default value is 1.

        This function is usually used for computing the sensibility within mouse handlers. The Shift and Control key flags may be used as the modifiers.

        If unitSensitivityModifier is true, the sensibility is always 1. If hugeSensivityModifier is true, the sensibility is multiplied by LARGE_MOVE_FACTOR. Otherwise, the value returned by getPanSensitivity() is returned.

        Parameters:
        unitSensitivityModifier - the user chooses the unit sensitivity dynamically. If true, this parameter has precedence to the other parameters.
        hugeSensivityModifier - the user chooses a huge sensitivity dynamically.
        Returns:
        the sensitivity.
      • getDocumentCanvas

        @Pure
        public ZoomableCanvas<T> getDocumentCanvas()
        Replies the document canvas within this pane.
        Returns:
        the document canvas.
      • scaleValueProperty

        public final javafx.beans.property.DoubleProperty scaleValueProperty()
        Description copied from interface: ZoomableViewer
        Replies the property for the scale value.

        A scale value of 1 is neither zoom in nor zoom out. A value greater than 1 is a zoom in. A value lower than 1 is a zoom out.

        Specified by:
        scaleValueProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • getScaleValue

        public final double getScaleValue()
        Description copied from interface: ZoomableViewer
        Replies the scale value.

        A scale value of 1 is neither zoom in nor zoom out. A value greater than 1 is a zoom in. A value lower than 1 is a zoom out.

        Specified by:
        getScaleValue in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the scale value.
      • setScaleValue

        public final void setScaleValue​(double value)
        Description copied from interface: ZoomableViewer
        Change the scale value.

        A scale value of 1 is neither zoom in nor zoom out. A value greater than 1 is a zoom in. A value lower than 1 is a zoom out.

        Specified by:
        setScaleValue in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        value - the scale value.
      • setScaleValue

        public final void setScaleValue​(double scaleValue,
                                        double centerX,
                                        double centerY)
        Description copied from interface: ZoomableViewer
        Change the zoom factor and center the view point at the given given position.

        A scale value of 1 is neither zoom in nor zoom out. A value greater than 1 is a zoom in. A value lower than 1 is a zoom out.

        Specified by:
        setScaleValue in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        scaleValue - the scale value.
        centerX - the position along the X axis of the viewport center. Value in [0;1].
        centerY - the position along the Y axis of the viewport center. Value in [0;1].
      • minScaleValueProperty

        public final javafx.beans.property.DoubleProperty minScaleValueProperty()
        Description copied from interface: ZoomableViewer
        Replies the property for the minimum scale value.

        The min scale value has always precedence on the max scale value. It means that the min value becomes greater to the max value, or the max value becomes lower than the min value, the min value will be the valid reference and the max value will be changed accordingly.

        Specified by:
        minScaleValueProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • maxScaleValueProperty

        public final javafx.beans.property.DoubleProperty maxScaleValueProperty()
        Description copied from interface: ZoomableViewer
        Replies the property for the maximum scale value.

        The min scale value has always precedence on the max scale value. It means that the min value becomes greater to the max value, or the max value becomes lower than the min value, the min value will be the valid reference and the max value will be changed accordingly.

        Specified by:
        maxScaleValueProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • setViewportCenter

        public final void setViewportCenter​(double x,
                                            double y)
        Description copied from interface: ZoomableViewer
        Change the coordinates of the viewport center in document coordinates.
        Specified by:
        setViewportCenter in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        x - the x coordinate of the viewport center in document coordinates.
        y - the y coordinate of the viewport center in document coordinates.
      • getScaleValueToFit

        public final double getScaleValueToFit​(boolean minimizeOnly)
        Description copied from interface: ZoomableViewer
        Replies the scale value to fit the content to the viewport.
        Specified by:
        getScaleValueToFit in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        minimizeOnly - If the content fits already into the viewport, then we don't zoom if this parameter is true.
        Returns:
        the scale value to apply for fitting the content to the viewport.
      • zoomOut

        public final void zoomOut​(double centerX,
                                  double centerY)
        Description copied from interface: ZoomableViewer
        Zoom out from a specific location, and center at the view point to the given location.
        Specified by:
        zoomOut in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        centerX - the x coordinate on the point to zoom in.
        centerY - the y coordinate on the point to zoom in.
      • zoomIn

        public final void zoomIn​(double centerX,
                                 double centerY)
        Description copied from interface: ZoomableViewer
        Zoom in from a specific location, and center at the view point to the given location.
        Specified by:
        zoomIn in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        centerX - the x coordinate on the point to zoom in.
        centerY - the y coordinate on the point to zoom in.
      • getScaleChange

        public final double getScaleChange()
        Description copied from interface: ZoomableViewer
        Replies the delta value that is applied when zooming in or out. The value is strictly greater than 1.
        Specified by:
        getScaleChange in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the change positive value. The value is greater than 1.
      • setScaleChange

        public final void setScaleChange​(double change)
        Description copied from interface: ZoomableViewer
        Change the change factor that is applied when zooming in or out. The value is strictly greater than 1.
        Specified by:
        setScaleChange in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        change - the change positive value. Only positive values greater than 1 are accepted.
      • invertedAxisXProperty

        public final javafx.beans.property.BooleanProperty invertedAxisXProperty()
        Description copied from interface: ZoomableViewer
        Replies the property that indicates if the X axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        invertedAxisXProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • isInvertedAxisX

        public final boolean isInvertedAxisX()
        Description copied from interface: ZoomableViewer
        Replies if the x axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        isInvertedAxisX in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the x coordinate of the viewport center in document coordinates.
      • setInvertedAxisX

        public final void setInvertedAxisX​(boolean inverted)
        Description copied from interface: ZoomableViewer
        Change the flag if the x axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        setInvertedAxisX in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        inverted - the x coordinate of the viewport center in document coordinates.
      • invertedAxisYProperty

        public final javafx.beans.property.BooleanProperty invertedAxisYProperty()
        Description copied from interface: ZoomableViewer
        Replies the property that indicates if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        invertedAxisYProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • isInvertedAxisY

        public final boolean isInvertedAxisY()
        Description copied from interface: ZoomableViewer
        Replies if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        isInvertedAxisY in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the Y coordinate of the viewport center in document coordinates.
      • setInvertedAxisY

        public final void setInvertedAxisY​(boolean inverted)
        Description copied from interface: ZoomableViewer
        Change the flag if the Y axis of the displayed data is inverted regarding to the standard JavaFX coordinate system.
        Specified by:
        setInvertedAxisY in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        inverted - the Y coordinate of the viewport center in document coordinates.
      • drawableElementBudgetProperty

        public final javafx.beans.property.IntegerProperty drawableElementBudgetProperty()
        Description copied from interface: ZoomableViewer
        Replies the property that defines the maximal number of drawable elements to be render.

        The value of the budget is a strictly positive number greater than 100.

        Specified by:
        drawableElementBudgetProperty in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Returns:
        the property.
      • setDrawableElementBudget

        public final void setDrawableElementBudget​(int budget)
        Description copied from interface: ZoomableViewer
        Change the maximal number of drawable elements to be render.

        The value of the budget is a strictly positive number greater than 100.

        Specified by:
        setDrawableElementBudget in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        budget - the maximal number of elements to draw.
      • toDocumentPositionX

        public double toDocumentPositionX​(double x)
        Description copied from interface: ZoomableViewer
        Replies the X position inside the document that corresponds to the given X position on screen.

        The position on the screen may be the mouse position.

        Specified by:
        toDocumentPositionX in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        x - x coordinate of the position on the screen.
        Returns:
        the position in the document.
      • toDocumentPositionY

        public double toDocumentPositionY​(double y)
        Description copied from interface: ZoomableViewer
        Replies the Y position inside the document that corresponds to the given Y position on screen.

        The position on the screen may be the mouse position.

        Specified by:
        toDocumentPositionY in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        y - y coordinate of the position on the screen.
        Returns:
        the position in the document.
      • toDocumentSize

        public double toDocumentSize​(double size)
        Description copied from interface: ZoomableViewer
        Replies the size inside the document that corresponds to the given size on screen.

        The size on the screen is generally given in pixels.

        Specified by:
        toDocumentSize in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        size - the size on the screen.
        Returns:
        the size in the document.
      • toScreenPositionX

        public double toScreenPositionX​(double x)
        Description copied from interface: ZoomableViewer
        Replies the X position on the screen that corresponds to the given X position within the document.

        The position on the screen may be the mouse position.

        Specified by:
        toScreenPositionX in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        x - x coordinate of the position within the document.
        Returns:
        the position on the screen.
      • toScreenPositionY

        public double toScreenPositionY​(double y)
        Description copied from interface: ZoomableViewer
        Replies the Y position on the screen that corresponds to the given Y position within the document.

        The position on the screen may be the mouse position.

        Specified by:
        toScreenPositionY in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        y - y coordinate of the position within the document.
        Returns:
        the position on the screen.
      • toScreenSize

        public double toScreenSize​(double size)
        Description copied from interface: ZoomableViewer
        Replies the size on the screen that corresponds to the given size within the document.

        The size on the screen is generally given in pixels.

        Specified by:
        toScreenSize in interface ZoomableViewer<T extends InformedIterable<?> & BoundedElement2afp<?>>
        Parameters:
        size - the size within the document.
        Returns:
        the size on the screen.