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:
com.sun.awc.mc.document.DocumentServiceListener, com.sun.awc.mc.document.pageable.PageListener, 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 com.sun.awc.mc.document.pageable.PageListener, java.awt.event.KeyListener, javax.swing.event.TreeSelectionListener, com.sun.awc.mc.document.DocumentServiceListener, PageChangeListener

A PDF Viewer application that integrates with the Meeting Central project.

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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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(com.sun.awc.mc.document.client.DocumentServiceStub stub)
          Create a new PDFViewer that is connected to a DocumentService
PDFViewer(com.sun.awc.mc.User me)
          Create a new PDFViewer based on a user.
PDFViewer(com.sun.awc.mc.User me, boolean useThumbs)
          Create a new PDFViewer based on a user, with or without a thumbnail panel.
 
Method Summary
 void connectWithMeeting(com.sun.awc.mc.document.client.DocumentServiceStub stub)
          Attaches the supplied DocumentServiceStub to the GUI
 void disconnect()
          Disconnects the DocumentServiceStub
 void doAddPDF()
          Add the current document to the DocumentService
 void doBrainstormer()
           
 void doClose()
          Close the current document.
 void documentAdded(com.sun.awc.mc.document.DocumentInfo doc)
           
 void documentRemoved(com.sun.awc.mc.document.DocumentInfo doc)
           
 void documentUpdated(com.sun.awc.mc.document.DocumentInfo oldDoc, com.sun.awc.mc.document.DocumentInfo newDoc)
           
 void doFacilitator()
           
 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 doJoinMeeting()
           
 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 doPresenting()
          Handles a click on the "Start presenting"/"Stop presenting" button.
 void doPrev()
          Goes to the previous page
 void doPrint()
          Print the current document.
 void doQuit()
          Shuts down all known threads.
 void doRemoveDoc()
          Remove the current Document from the DocumentService
 void doSaveAs()
          Prompts the user for a place to save the data of the document.
 void doSetPresenting(com.sun.awc.mc.User user)
          Handles notification that a user has started presenting this document.
 void doSync(java.lang.Object source)
          Handles a UI event on one of the "Sync with..." UI components
 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 endPresenting()
          Stops presenting.
 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 launchViewer(com.sun.awc.mc.document.client.DocumentServiceStub stub, com.sun.awc.mc.document.DocumentInfo doc)
          Launch a PDFViewer.
static void main(java.lang.String[] args)
           
 void openDocument(com.sun.awc.mc.document.DocumentInfo doc)
          Open a specific Document
 void openError(java.lang.String message)
          Display a dialog indicating an error.
 void openFile(java.io.File file)
          Open a specific pdf file.
 void pageChanged(java.lang.String id, int page)
           
 void performSync(boolean syncd)
          Handles a change in the state of the sync button.
 void presenterChanged(java.lang.String id)
           
 void saveFile(java.io.File file)
          Writes the current document data to a 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 setPresenting(boolean presenting)
          Notify the world that the local user has started/stopped presenting.
 void userJoined(com.sun.awc.mc.User user)
           
 void userLeft(java.lang.String id)
           
 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, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, 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, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

PDFViewer

public PDFViewer(com.sun.awc.mc.document.client.DocumentServiceStub stub)
Create a new PDFViewer that is connected to a DocumentService

Parameters:
stub - the DocumentServiceStub connected to the DocumentService

PDFViewer

public PDFViewer(com.sun.awc.mc.User me)
Create a new PDFViewer based on a user.

Parameters:
me - a User object representing the user

PDFViewer

public PDFViewer(com.sun.awc.mc.User me,
                 boolean useThumbs)
Create a new PDFViewer based on a user, with or without a thumbnail panel.

Parameters:
me - a User object representing the user
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.io.File file)
              throws java.io.IOException
Open a specific pdf file. Creates a DocumentInfo from the file, and opens that.

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

openDocument

public void openDocument(com.sun.awc.mc.document.DocumentInfo doc)
Open a specific Document

Parameters:
doc - the Document to open

openError

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


launchViewer

public static void launchViewer(com.sun.awc.mc.document.client.DocumentServiceStub stub,
                                com.sun.awc.mc.document.DocumentInfo doc)
Launch a PDFViewer.

Parameters:
stub - a DocumentServiceStub, or null if we don't want to connect to a DocumentService
doc - an intial document to open, or null if we don't want to open an initial document

doOpen

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


doAddPDF

public void doAddPDF()
Add the current document to the DocumentService


doRemoveDoc

public void doRemoveDoc()
Remove the current Document from the DocumentService


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

doSaveAs

public void doSaveAs()
Prompts the user for a place to save the data of the document. Does not change any document information; should probably be "Save a copy as...".


saveFile

public void saveFile(java.io.File file)
              throws java.io.IOException
Writes the current document data to a file

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

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.


doSetPresenting

public void doSetPresenting(com.sun.awc.mc.User user)
Handles notification that a user has started presenting this document.

Parameters:
user - the user who started presenting, or null if no user is presenting.

doPresenting

public void doPresenting()
Handles a click on the "Start presenting"/"Stop presenting" button.


setPresenting

public void setPresenting(boolean presenting)
Notify the world that the local user has started/stopped presenting.

Parameters:
presenting - true if the user has started presenting, false if they've stopped.

endPresenting

public void endPresenting()
Stops presenting. Not used.


performSync

public void performSync(boolean syncd)
Handles a change in the state of the sync button.

Parameters:
syncd - true if we're now sync'd, false if we're not.

doSync

public void doSync(java.lang.Object source)
Handles a UI event on one of the "Sync with..." UI components


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.

doFacilitator

public void doFacilitator()

doBrainstormer

public void doBrainstormer()

doZoom

public void doZoom(double factor)

doJoinMeeting

public void doJoinMeeting()

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

connectWithMeeting

public void connectWithMeeting(com.sun.awc.mc.document.client.DocumentServiceStub stub)
Attaches the supplied DocumentServiceStub to the GUI


disconnect

public void disconnect()
Disconnects the DocumentServiceStub


documentAdded

public void documentAdded(com.sun.awc.mc.document.DocumentInfo doc)
Specified by:
documentAdded in interface com.sun.awc.mc.document.DocumentServiceListener

documentRemoved

public void documentRemoved(com.sun.awc.mc.document.DocumentInfo doc)
Specified by:
documentRemoved in interface com.sun.awc.mc.document.DocumentServiceListener

documentUpdated

public void documentUpdated(com.sun.awc.mc.document.DocumentInfo oldDoc,
                            com.sun.awc.mc.document.DocumentInfo newDoc)
Specified by:
documentUpdated in interface com.sun.awc.mc.document.DocumentServiceListener

userJoined

public void userJoined(com.sun.awc.mc.User user)
Specified by:
userJoined in interface com.sun.awc.mc.document.pageable.PageListener

userLeft

public void userLeft(java.lang.String id)
Specified by:
userLeft in interface com.sun.awc.mc.document.pageable.PageListener

presenterChanged

public void presenterChanged(java.lang.String id)
Specified by:
presenterChanged in interface com.sun.awc.mc.document.pageable.PageListener

pageChanged

public void pageChanged(java.lang.String id,
                        int page)
Specified by:
pageChanged in interface com.sun.awc.mc.document.pageable.PageListener