Class DocumentViewport

    • Field Detail

      • CURSOR_GRAB

        protected static final Cursor CURSOR_GRAB
      • CURSOR_GRABBING

        protected static final Cursor CURSOR_GRABBING
      • mouseWheelUnit

        protected int mouseWheelUnit
      • margin

        protected int margin
      • interpagemargin

        protected int interpagemargin
      • ZOOM_NONE

        public static final int ZOOM_NONE
        A value that can be passed to setZoomMode(int) to specify that no re-zooming of the page should be performed when the Viewport is resized; this is the default.
        Since:
        2.10.3
        See Also:
        Constant Field Values
      • ZOOM_FIT

        public static final int ZOOM_FIT
        A value that can be passed in to setZoomMode(int) to specify that the document should be zoomed to fit the entire page in the Viewport.
        Since:
        2.10.3
        See Also:
        Constant Field Values
      • ZOOM_FITWIDTH

        public static final int ZOOM_FITWIDTH
        A value that can be passed in to setZoomMode(int) to specify that the document shuold be zoomed to ensure the width fits the width of the Viewport.
        Since:
        2.10.3
        See Also:
        Constant Field Values
      • ZOOM_FITHEIGHT

        public static final int ZOOM_FITHEIGHT
        A value that can be passed in to setZoomMode(int) to specify that the document should be zoomed to ensure the height fits the height of the Viewport.
        Since:
        2.10.3
        See Also:
        Constant Field Values
    • Constructor Detail

      • DocumentViewport

        public DocumentViewport()
      • DocumentViewport

        public DocumentViewport​(LayoutManager manager)
    • Method Detail

      • getDefaultRenderingHints

        protected final RenderingHints getDefaultRenderingHints()
      • setRenderingHints

        public abstract void setRenderingHints​(RenderingHints hints)
        Set the RenderingHints that should be used when rendering the pages
      • setZoomMode

        public void setZoomMode​(int mode)
        Control how the document in the viewport is redrawn when the Viewport is resized. The default is ZOOM_NONE, which means no action is performed, but other actions include ZOOM_FIT, ZOOM_FITWIDTH and ZOOM_FITHEIGHT, which will ensure that the document is always zoomed to fit completely, fit the width or fit the height of the viewport respectively
        Since:
        2.10.3
      • getTargetZoom

        public float getTargetZoom​(int zoommode,
                                   PDFPage page)
        Return the appropriate zoom level when switching to the specified page. If the value of zoommode is ZOOM_NONE then this just returns the value of getZoom(), otherwise the returned zoom level will correctly fit the page to the Viewport.
        Parameters:
        page - the PDFPage that we are calculating the zoom for.
        Since:
        2.10.3
        See Also:
        getZoomMode()
      • setPage

        public abstract void setPage​(PDFPage page,
                                     double x,
                                     double y,
                                     double zoom)
        Set the currently displayed page. The exact implementation of this depends on the type of viewport, but the idea is that the specified page and position becomes the primary focus of this viewport.
        Parameters:
        page - the page to display
        x - the left-most X position of the page, relative to PagePanel.getFullPageView(org.faceless.pdf2.PDFPage). A value of NaN means keep the current value. 0 means the left edge
        y - the top-most Y position of the page, relative to PagePanel.getFullPageView(org.faceless.pdf2.PDFPage). A value of NaN means keep the current value. 0 means the top edge
        zoom - the zoom level. A value of <= 0 or NaN means keep the current zoom. A value of one means 72dpi
      • ensureVisible

        public void ensureVisible​(PDFPage page,
                                  double x,
                                  double y)
        Ensure the specified point on the page is visible. The zoom level of the page is not changed, but the page itself may be changed or repositioned to ensure the specified point is visible in the centre area.
        Parameters:
        x - the X position of the page in absolute PDF points (ie measured from the bottom left)
        y - the Y position of the page in absolute PDF points (ie measured from the bottom left)
        Since:
        2.10.3
      • isPageVisible

        public boolean isPageVisible​(PDFPage page,
                                     double x,
                                     double y)
        Indicates whether the specified point in the specified page is visible in the viewport. If x or y is NaN, indicates whether any part of the page is visible.
        Parameters:
        x - the X position of the page in points
        y - the Y position of the page in points
        Since:
        2.10.4
      • setZoom

        public abstract void setZoom​(float zoom)
        Set the zoom level of this DocumentViewport. The page and position should remain unchanged if possible.
      • getZoom

        public abstract float getZoom()
        Get the current zoom level
      • getPagePanel

        public abstract PagePanel getPagePanel()
        Get the currently displayed PagePanel. As for setPage(), the exact implementation of this method depends on the type of viewport, but the idea is it returns the PagePanel that is the primary focus of this viewport.
      • getView

        public abstract JComponent getView()
        Get the JComponent that directly contains the PagePanel objects, not including scrollbars or other similar items.
        Since:
        2.10.4
      • getPagePanels

        public Collection<PagePanel> getPagePanels()
        Returns a read only Collection containing all the PagePanels currently displayed in this Viewport.
        Since:
        2.10.4
      • getRenderingPage

        public abstract PDFPage getRenderingPage()
        Return the page that is currently in the process of rendering. If the page has rendered this method returns the same as getPage()
      • getNextSelectablePageIndex

        public int getNextSelectablePageIndex​(PDFPage page)
        Return the index of the page that should be displayed when the specified page is selected in this viewport and the "next page" is requested, via a button or other action. By default this is just the next page in the PDF
        Returns:
        the index of the next page to display, or -1 if no such page exists.
        Since:
        2.14
      • getPreviousSelectablePageIndex

        public int getPreviousSelectablePageIndex​(PDFPage page)
        Return the index of the page that should be displayed when the specified page is selected in this viewport and the "previous page" is requested, via a button or other action. By default this is just the previous page in the PDF
        Returns:
        the index of the previous page to display, or -1 if no such page exists.
        Since:
        2.14
      • getViewportSize

        public abstract Dimension getViewportSize()
        Return the size in pixels of the space available to display pages in this viewport, not including scrollbars or other decoration
      • getAdjustable

        public abstract Adjustable getAdjustable​(int position)
        Return the "Adjustable" object for the specified position - typically this is the horizontal or vertical JScrollBar, although this method may return null or accept other parameters. The adjustable is measured in AWT space (pixels from the top left). This method may return null if there is no adjustable.
        Parameters:
        position - one of Adjustable.HORIZONTAL or Adjustable.VERTICAL
        Since:
        2.10
      • setAdjustableValues

        public abstract void setAdjustableValues​(int horizontal,
                                                 int vertical)
        Set the values of the adjustables returned by getAdjustable(int). Calling this method is preferable to setting the values of each adjustable individually when both are to be set
        Parameters:
        horizontal - the value for the Adjustable.HORIZONTAL adjustable.
        vertical - the value for the Adjustable.VERTICAL adjustable.
        Since:
        2.10.4
      • setDocumentPanel

        public void setDocumentPanel​(DocumentPanel panel)
        Set the DocumentPanel that contains this DocumentViewport. If overriding this method you must first call super.setDocumentPanel(panel)
        Since:
        2.11.4 (when it was made public)
      • addPagePanelListener

        public abstract void addPagePanelListener​(PagePanelListener listener)
        Add a PagePanelListener to any PagePanel objects that have been or will be created by this DocumentViewport
        Parameters:
        listener - the listener
      • removePagePanelListener

        public abstract void removePagePanelListener​(PagePanelListener listener)
        Remove a PagePanelListener from any PagePanel objects that have been created by this DocumentViewport
        Parameters:
        listener - the listener
      • isDraggable

        public abstract boolean isDraggable()
        Indicates whether the contents of this viewport can be dragged with the mouse to position them.
        Since:
        2.11.15
      • setDraggable

        public abstract void setDraggable​(boolean draggable)
        Sets whether to allow the contents of this viewport to be dragged with the mouse.
        Parameters:
        draggable - if true, contents may be dragged
        Since:
        2.11.15
      • propertyChange

        public void propertyChange​(PropertyChangeEvent event)
        The viewport implements PropertyChangeListener, and will be called whenever the PDF has been updated. By default it's a no-op.
        Specified by:
        propertyChange in interface PropertyChangeListener
        Since:
        2.11.25
      • smoothScroll

        protected void smoothScroll​(int x,
                                    int y,
                                    JScrollBar hsb,
                                    JScrollBar vsb)
        Smoothly adjust the supplied scrollbars from their current position to the specified position, or (if hsb or vsb are null) cancel any running adjustment. The timing in ms and max distance in pixels for a smooth scroll are set by the smoothScrollTime and smoothScrollDistance properties on the DocumentPanel, and both default to 500
        Parameters:
        x - the desired position of the horizontal scrollbar
        y - the desired position of the vertical scrollbar
        hsb - the horizontal scrollbar
        vsb - the vertical scrollbar
        Since:
        2.11.25
      • isSmoothScrolling

        protected boolean isSmoothScrolling()
        Return true if this viewport is smooth scrolling
        Since:
        2.11.25
      • getBorderColor

        public Color getBorderColor()
        Return the Color to be used to paint the border of each page in this viewport
        Since:
        2.16.1
      • getShadowColor

        public Color getShadowColor()
        Return the Color to be used to paint the shadow for each page in this viewport
        Since:
        2.16.1
      • paintPageBorder

        protected void paintPageBorder​(Graphics g,
                                       Rectangle r)
        Paint the border of the page