Class ZoomableCanvas<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:
    GisCanvas

    public class ZoomableCanvas<T extends InformedIterable<?> & BoundedElement2afp<?>>
    extends javafx.scene.canvas.Canvas
    implements ZoomableViewer<T>
    Resizeable canvas for rendering a document and that support zoom in and out.

    The document elements are displayed within this ZoomableCanvas by the drawers that are declared as services.

    The ZoomableCanvas provides a tool for displaying document elements. It does not provide advanced UI components (scroll bars, etc.) and interaction means (mouse support, etc.).

    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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addDrawingListener​(DrawingListener listener)
      Add a drawing listener.
      protected void bindModel​(T model)
      Invoked when the given model is binded to this canvas.
      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.
      protected void fireDrawingEnd()
      Notifies listeners on drawing finishing.
      protected void fireDrawingStart()
      Notifies listeners on drawing start.
      Rectangle2afp<?,​?,​?,​?,​?,​?> getDocumentBounds()
      Replies the bounds of the document.
      Drawer<? super T> getDocumentDrawer()
      Replies the drawer of the document.
      ZoomableGraphicsContext getDocumentGraphicsContext2D()
      Replies the document graphics context.
      T getDocumentModel()
      Replies the model of the document.
      int getDrawableElementBudget()
      Replies the maximal number of drawable elements to be render.
      double getMaxScaleValue()
      Replies the maximum scale value.
      double getMinScaleValue()
      Replies the minimum scale value.
      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 isRenderingEnable()
      Replies the rendering state of the canvas.
      boolean isResizable()  
      double maxHeight​(double width)  
      javafx.beans.property.DoubleProperty maxScaleValueProperty()
      Replies the property for the maximum scale value.
      double maxWidth​(double height)  
      double minHeight​(double width)  
      javafx.beans.property.DoubleProperty minScaleValueProperty()
      Replies the property for the minimum scale value.
      double minWidth​(double height)  
      double prefHeight​(double width)  
      double prefWidth​(double height)  
      void removeDrawingListener​(DrawingListener listener)
      Remove a drawing listener.
      void resize​(double width, double height)  
      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 setMaxScaleValue​(double value)
      Change the maximum scale value.
      void setMinScaleValue​(double value)
      Change the minimum scale value.
      protected boolean setRenderingEnable​(boolean newState)
      Change the rendering state of the canvas.
      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.
      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.
      protected void unbindModel​(T model)
      Invoked when the given model is unbinded from this canvas.
      boolean usesMirroring()  
      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.
      • Methods inherited from class javafx.scene.canvas.Canvas

        getGraphicsContext2D, getHeight, getWidth, heightProperty, setHeight, setWidth, widthProperty
      • 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, getBaselineOffset, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClassCssMetaData, getClip, getContentBias, getCssMetaData, 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, lookup, 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, queryAccessibleAttribute, 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, viewOrderProperty, visibleProperty
      • Methods inherited from interface javafx.css.Styleable

        getStyleableNode
    • Constructor Detail

      • ZoomableCanvas

        public ZoomableCanvas​(T model)
        Constructor. The renderer is detected with the type replied by InformedIterable.getElementType() on the model.
        Parameters:
        model - the source of the elements.
      • ZoomableCanvas

        public ZoomableCanvas​(T model,
                              Drawer<? super T> drawer)
        Constructor.
        Parameters:
        model - the source of the elements.
        drawer - the drawer.
    • Method Detail

      • isResizable

        public boolean isResizable()
        Overrides:
        isResizable in class javafx.scene.Node
      • minWidth

        public double minWidth​(double height)
        Overrides:
        minWidth in class javafx.scene.Node
      • minHeight

        public double minHeight​(double width)
        Overrides:
        minHeight in class javafx.scene.Node
      • maxWidth

        public double maxWidth​(double height)
        Overrides:
        maxWidth in class javafx.scene.Node
      • maxHeight

        public double maxHeight​(double width)
        Overrides:
        maxHeight in class javafx.scene.Node
      • prefWidth

        public double prefWidth​(double height)
        Overrides:
        prefWidth in class javafx.scene.Node
      • prefHeight

        public double prefHeight​(double width)
        Overrides:
        prefHeight in class javafx.scene.Node
      • resize

        public void resize​(double width,
                           double height)
        Overrides:
        resize in class javafx.scene.Node
      • usesMirroring

        public boolean usesMirroring()
        Overrides:
        usesMirroring in class javafx.scene.Node
      • getDocumentGraphicsContext2D

        public ZoomableGraphicsContext getDocumentGraphicsContext2D()
        Replies the document graphics context.
        Returns:
        the graphics context.
      • isRenderingEnable

        public boolean isRenderingEnable()
        Replies the rendering state of the canvas.

        If the replied value is evaluated to true, the drawContent() function does nothing.

        Returns:
        true if the drawing function is active; false if it is inactive.
        Since:
        15.0
      • setRenderingEnable

        protected boolean setRenderingEnable​(boolean newState)
        Change the rendering state of the canvas.

        If the replied value is evaluated to true, the drawContent() function does nothing.

        Parameters:
        newState - true if the drawing function is active; false if it is inactive.
        Returns:
        the value of the state before the change.
        Since:
        15.0
      • bindModel

        protected void bindModel​(T model)
        Invoked when the given model is binded to this canvas.

        This function is defined in order to be overridden by sub-classes for adding observers on the model.

        Parameters:
        model - the model that is binded to this canvas.
        Since:
        16.0
      • unbindModel

        protected void unbindModel​(T model)
        Invoked when the given model is unbinded from this canvas.

        This function is defined in order to be overridden by sub-classes for removing observers on the model.

        Parameters:
        model - the model that is unbinded to this canvas.
        Since:
        16.0
      • scaleValueProperty

        public 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 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 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 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.
      • 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 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 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 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.
      • fireDrawingStart

        protected void fireDrawingStart()
        Notifies listeners on drawing start.
      • fireDrawingEnd

        protected void fireDrawingEnd()
        Notifies listeners on drawing finishing.
      • 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.