com.sun.pdfview
Class PDFViewer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by com.sun.pdfview.PDFViewer
All Implemented Interfaces:
PageChangeListener, java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.TreeSelectionListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class PDFViewer
extends javax.swing.JFrame
implements java.awt.event.KeyListener, javax.swing.event.TreeSelectionListener, PageChangeListener

A demo PDF Viewer application.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String TITLE
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PDFViewer(boolean useThumbs)
          Create a new PDFViewer based on a user, with or without a thumbnail panel.
 
Method Summary
 void doClose()
          Close the current document.
 void doFirst()
          Goes to the first page
 void doFitInWindow()
          Turns off zooming; makes the page fit in the window
 void doFullScreen(boolean force)
          Enter full screen mode
 void doLast()
          Goes to the last page
 void doNext()
          Goes to the next page
 void doOpen()
          Ask the user for a PDF file to open from the local file system
 void doOpen(java.lang.String name)
          Open a local file, given a string filename
 void doPageSetup()
          Posts the Page Setup dialog
 void doPageTyped()
          Goes to the page that was typed in the page number text field
 void doPrev()
          Goes to the previous page
 void doPrint()
          Print the current document.
 void doQuit()
          Shuts down all known threads.
 void doThumbs(boolean show)
          Shows or hides the thumbnails by moving the split pane divider
 void doZoom(double factor)
           
 void doZoomTool()
          Turns on zooming
 void forceGotoPage(int pagenum)
          Changes the displayed page.
 javax.swing.Icon getIcon(java.lang.String name)
          utility method to get an icon from the resources of this class
 void gotoPage(int pagenum)
          Changes the displayed page, desyncing if we're not on the same page as a presenter.
protected  void init()
          Initialize this PDFViewer by creating the GUI.
 void keyPressed(java.awt.event.KeyEvent evt)
          Handle a key press for navigation
 void keyReleased(java.awt.event.KeyEvent evt)
           
 void keyTyped(java.awt.event.KeyEvent evt)
          gets key presses and tries to build a page if they're numeric
static void main(java.lang.String[] args)
           
 void openError(java.lang.String message)
          Display a dialog indicating an error.
 void openFile(java.io.File file)
          Open a specific pdf file.
 void openFile(java.net.URL url)
          open a URL to a PDF file.
 void openFileUnMapped(java.io.File file)
          Open a specific pdf file.
 void setEnabling()
          Enable or disable all of the actions based on the current state.
 void setFullScreenMode(boolean full, boolean force)
          Starts or ends full screen mode.
 void valueChanged(javax.swing.event.TreeSelectionEvent e)
          Someone changed the selection of the outline tree.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

TITLE

public static final java.lang.String TITLE
See Also:
Constant Field Values
Constructor Detail

PDFViewer

public PDFViewer(boolean useThumbs)
Create a new PDFViewer based on a user, with or without a thumbnail panel.

Parameters:
useThumbs - true if the thumb panel should exist, false if not.
Method Detail

getIcon

public javax.swing.Icon getIcon(java.lang.String name)
utility method to get an icon from the resources of this class

Parameters:
name - the name of the icon
Returns:
the icon, or null if the icon wasn't found.

init

protected void init()
Initialize this PDFViewer by creating the GUI.


gotoPage

public void gotoPage(int pagenum)
Changes the displayed page, desyncing if we're not on the same page as a presenter.

Specified by:
gotoPage in interface PageChangeListener
Parameters:
pagenum - the page to display

forceGotoPage

public void forceGotoPage(int pagenum)
Changes the displayed page.

Parameters:
pagenum - the page to display

setEnabling

public void setEnabling()
Enable or disable all of the actions based on the current state.


openFile

public void openFile(java.net.URL url)
              throws java.io.IOException
open a URL to a PDF file. The file is read in and processed with an in-memory buffer.

Parameters:
url -
Throws:
java.io.IOException

openFile

public void openFile(java.io.File file)
              throws java.io.IOException

Open a specific pdf file. Creates a DocumentInfo from the file, and opens that.

Note: Mapping the file locks the file until the PDFFile is closed.

Parameters:
file - the file to open
Throws:
java.io.IOException

openFileUnMapped

public void openFileUnMapped(java.io.File file)
                      throws java.io.IOException

Open a specific pdf file. Creates a DocumentInfo from the file, and opens that.

Note: By not memory mapping the file its contents are not locked down while PDFFile is open.

Parameters:
file - the file to open
Throws:
java.io.IOException

openError

public void openError(java.lang.String message)
Display a dialog indicating an error.


doOpen

public void doOpen()
Ask the user for a PDF file to open from the local file system


doOpen

public void doOpen(java.lang.String name)
Open a local file, given a string filename

Parameters:
name - the name of the file to open

doPageSetup

public void doPageSetup()
Posts the Page Setup dialog


doPrint

public void doPrint()
Print the current document.


doClose

public void doClose()
Close the current document.


doQuit

public void doQuit()
Shuts down all known threads. This ought to cause the JVM to quit if the PDFViewer is the only application running.


doZoomTool

public void doZoomTool()
Turns on zooming


doFitInWindow

public void doFitInWindow()
Turns off zooming; makes the page fit in the window


doThumbs

public void doThumbs(boolean show)
Shows or hides the thumbnails by moving the split pane divider


doFullScreen

public void doFullScreen(boolean force)
Enter full screen mode

Parameters:
force - true if the user should be prompted for a screen to use in a multiple-monitor setup. If false, the user will only be prompted once.

doZoom

public void doZoom(double factor)

doNext

public void doNext()
Goes to the next page


doPrev

public void doPrev()
Goes to the previous page


doFirst

public void doFirst()
Goes to the first page


doLast

public void doLast()
Goes to the last page


doPageTyped

public void doPageTyped()
Goes to the page that was typed in the page number text field


setFullScreenMode

public void setFullScreenMode(boolean full,
                              boolean force)
Starts or ends full screen mode.

Parameters:
full - true to enter full screen mode, false to leave
force - true if the user should be prompted for a screen to use the second time full screen mode is entered.

main

public static void main(java.lang.String[] args)

keyPressed

public void keyPressed(java.awt.event.KeyEvent evt)
Handle a key press for navigation

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent evt)
Specified by:
keyReleased in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent evt)
gets key presses and tries to build a page if they're numeric

Specified by:
keyTyped in interface java.awt.event.KeyListener

valueChanged

public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Someone changed the selection of the outline tree. Go to the new page.

Specified by:
valueChanged in interface javax.swing.event.TreeSelectionListener