org.faceless.pdf2.viewer2
Class SinglePageDocumentViewport

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.faceless.pdf2.viewer2.DocumentViewport
                      extended by org.faceless.pdf2.viewer2.SinglePageDocumentViewport
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class SinglePageDocumentViewport
extends DocumentViewport

A type of DocumentViewport that displays a single page. The Page can be zoomed in or out, and if it grows beyond the size of this viewport scrollbars will be displayed. Zoom levels are translated to DPI (as required by the PagePainter} using the Toolkit.getScreenResolution() method.

This code is copyright the Big Faceless Organization. You're welcome to use, modify and distribute it in any form in your own projects, provided those projects continue to make use of the Big Faceless PDF library.

Since:
2.8
See Also:
DocumentPanel, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class org.faceless.pdf2.viewer2.DocumentViewport
ZOOM_FIT, ZOOM_FITHEIGHT, ZOOM_FITWIDTH, ZOOM_NONE
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SinglePageDocumentViewport()
          Create a new SinglePageDocumentViewporpt
 
Method Summary
 void addPagePanelInteractionListener(PagePanelInteractionListener listener)
          Add a PagePanelInteractionListener to any PagePanel objects that have been or will be created by this DocumentViewport
 void addPagePanelListener(PagePanelListener listener)
          Add a PagePanelListener to any PagePanel objects that have been or will be created by this DocumentViewport
 void ensureVisible(PDFPage page, double x, double y)
          Ensure the specified point on the page is visible.
 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.
 PagePanel getPagePanel()
          Get the currently displayed PagePanel.
 PDFPage getRenderingPage()
          Return the page that is currently in the process of rendering.
 Rectangle2D getViewport()
          Return the section of the page returned by DocumentViewport.getPage() that's currently being displayed, in points.
 Dimension getViewportSize()
          Return the size in pixels of the space available to display pages in this viewport, not including scrollbars or other decoration
 float getZoom()
          Get the current zoom level
 void redraw(Object o)
          Redraw the specified object.
 void removePagePanelInteractionListener(PagePanelInteractionListener listener)
          Remove a PagePanelInteractionListener from any PagePanel objects that have been created by this DocumentViewport
 void removePagePanelListener(PagePanelListener listener)
          Remove a PagePanelListener from any PagePanel objects that have been created by this DocumentViewport
 void setDocumentPanel(DocumentPanel panel)
           
 void setMaxPixels(int pixels)
          Set the maximum number of pixels that can be displayed in the full backing image.
 void setPage(PDFPage page, double x, double y, double zoom)
          Set the currently displayed page.
 void setRenderingHints(RenderingHints hints)
          Set the RenderingHints that should be used when rendering the pages
 void setZoom(float zoom)
          Set the zoom level of this DocumentViewport.
 
Methods inherited from class org.faceless.pdf2.viewer2.DocumentViewport
getDocumentPanel, getPage, getTargetZoom, getZoomMode, setZoomMode
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SinglePageDocumentViewport

public SinglePageDocumentViewport()
Create a new SinglePageDocumentViewporpt

Method Detail

setRenderingHints

public void setRenderingHints(RenderingHints hints)
Description copied from class: DocumentViewport
Set the RenderingHints that should be used when rendering the pages

Specified by:
setRenderingHints in class DocumentViewport

addPagePanelListener

public void addPagePanelListener(PagePanelListener listener)
Description copied from class: DocumentViewport
Add a PagePanelListener to any PagePanel objects that have been or will be created by this DocumentViewport

Specified by:
addPagePanelListener in class DocumentViewport
Parameters:
listener - the listener

removePagePanelListener

public void removePagePanelListener(PagePanelListener listener)
Description copied from class: DocumentViewport
Remove a PagePanelListener from any PagePanel objects that have been created by this DocumentViewport

Specified by:
removePagePanelListener in class DocumentViewport
Parameters:
listener - the listener

addPagePanelInteractionListener

public void addPagePanelInteractionListener(PagePanelInteractionListener listener)
Description copied from class: DocumentViewport
Add a PagePanelInteractionListener to any PagePanel objects that have been or will be created by this DocumentViewport

Specified by:
addPagePanelInteractionListener in class DocumentViewport
Parameters:
listener - the listener

removePagePanelInteractionListener

public void removePagePanelInteractionListener(PagePanelInteractionListener listener)
Description copied from class: DocumentViewport
Remove a PagePanelInteractionListener from any PagePanel objects that have been created by this DocumentViewport

Specified by:
removePagePanelInteractionListener in class DocumentViewport
Parameters:
listener - the listener

setDocumentPanel

public void setDocumentPanel(DocumentPanel panel)

getPagePanel

public PagePanel getPagePanel()
Description copied from class: DocumentViewport
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

Specified by:
getPagePanel in class DocumentViewport

getAdjustable

public Adjustable getAdjustable(int position)
Description copied from class: DocumentViewport
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.

Specified by:
getAdjustable in class DocumentViewport
Parameters:
position - one of Adjustable.HORIZONTAL or Adjustable.VERTICAL

ensureVisible

public void ensureVisible(PDFPage page,
                          double x,
                          double y)
Description copied from class: DocumentViewport
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.

Overrides:
ensureVisible in class DocumentViewport
x - the X position of the page in points
y - the Y position of the page in points

getRenderingPage

public PDFPage getRenderingPage()
Description copied from class: DocumentViewport
Return the page that is currently in the process of rendering. If the page has rendered this method returns the same as DocumentViewport.getPage()

Specified by:
getRenderingPage in class DocumentViewport

setMaxPixels

public void setMaxPixels(int pixels)
Set the maximum number of pixels that can be displayed in the full backing image. If the DPI is such that the image will be more than this number of pixels, only a partial image is drawn. The default value of 1500000 usually means the standalone viewer can run in 64MB of heap.


getViewportSize

public Dimension getViewportSize()
Description copied from class: DocumentViewport
Return the size in pixels of the space available to display pages in this viewport, not including scrollbars or other decoration

Specified by:
getViewportSize in class DocumentViewport

getZoom

public float getZoom()
Description copied from class: DocumentViewport
Get the current zoom level

Specified by:
getZoom in class DocumentViewport

getViewport

public Rectangle2D getViewport()
Return the section of the page returned by DocumentViewport.getPage() that's currently being displayed, in points. Zero is the top of the page, to match the values supplied to setPage(org.faceless.pdf2.PDFPage, double, double, double)


setZoom

public void setZoom(float zoom)
Description copied from class: DocumentViewport
Set the zoom level of this DocumentViewport. The page and position should remain unchanged if possible.

Specified by:
setZoom in class DocumentViewport

setPage

public void setPage(PDFPage page,
                    double x,
                    double y,
                    double zoom)
Description copied from class: DocumentViewport
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.

Specified by:
setPage in class DocumentViewport
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
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
zoom - the zoom level. A value of <= 0 or NaN means keep the current zoom.

redraw

public void redraw(Object o)
Description copied from class: DocumentViewport
Redraw the specified object. Typically this will call the PagePanel.redrawAnnotation(org.faceless.pdf2.PDFAnnotation) or PagePanel.setPage(org.faceless.pdf2.PDFPage, java.awt.geom.Rectangle2D, float) method for the PagePanels in use by this Viewport, as appropriate.

Specified by:
redraw in class DocumentViewport
Parameters:
o - the Object that is to be redrawn


Copyright © 2001-2008 Big Faceless Organization