Package adams.gui.visualization.pdf
Class PDFViewerPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.visualization.pdf.PDFViewerPanel
-
- All Implemented Interfaces:
MenuBarProvider
,SendToActionSupporter
,ImageObserver
,MenuContainer
,Serializable
,Accessible
public class PDFViewerPanel extends BasePanel implements MenuBarProvider, SendToActionSupporter
A basic PDF viewer.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PDFViewerPanel.MultiPagePane
A specialized tabbed pane with a few methods for easier access.-
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 Modifier and Type Field Description protected BaseFileChooser
m_FileChooser
the filedialog for loading CSV files.protected JMenuBar
m_MenuBar
the menu bar, if used.protected JMenuItem
m_MenuItemFileClose
the "close" menu item.protected JMenuItem
m_MenuItemFileExit
the "exit" menu item.protected JMenuItem
m_MenuItemFileOpen
the "open" menu item.protected JMenu
m_MenuItemFileOpenRecent
the "load recent" submenu.protected JMenuItem
m_MenuItemFilePrint
the "print" menu item.protected AbstractPDFViewerAction
m_MenuItemToolsExtractImages
the "extract images" menu item.protected AbstractPDFViewerAction
m_MenuItemToolsExtractPages
the "extract pages" menu item.protected AbstractPDFViewerAction
m_MenuItemToolsExtractText
the "extract text" menu item.protected PDFViewerPanel.MultiPagePane
m_MultiPagePane
the multipage pane for displaying the PDF files.protected static Properties
m_Properties
the properties.protected RecentFilesHandler<JMenu>
m_RecentFilesHandler
the recent files handler.protected List<AbstractPDFViewerAction>
m_ViewerActions
the menu item actions.static String
SESSION_FILE
the file to store the recent files in.-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description PDFViewerPanel()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
close()
Closes the dialog or frame.protected void
closeFile()
Closes the current active tab.PDFPanel
getCurrentPanel()
Returns the image panel in the currently selected tab.protected BaseFileChooser
getFileChooser()
Returns the file chooser and creates it if necessary.JMenuBar
getMenuBar()
Creates a menu bar (singleton per panel object).Class[]
getSendToClasses()
Returns the class that the supporter generates.Object
getSendToItem(Class[] cls)
Returns the object to send.boolean
hasSendToItem(Class[] cls)
Checks whether something to send is available.protected void
initGUI()
Initializes the widgets.protected void
initialize()
Initializes the members.void
load(byte[] data)
Loads the specified PDF document.void
load(byte[] data, String desc)
Loads the specified PDF document.void
load(File file)
Loads the specified PDF file.static String
newDescriptionIfNecessary(String desc)
Creates a new description if necessary (new+INT).protected void
open()
Opens one or more CSV files.protected void
printFile()
Prints the current active tab.protected void
updateMenu()
updates the enabled state of the menu items.protected void
zoom(int zoom)
Zooms in/out.-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, finishInit, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
SESSION_FILE
public static final String SESSION_FILE
the file to store the recent files in.- See Also:
- Constant Field Values
-
m_Properties
protected static Properties m_Properties
the properties.
-
m_MultiPagePane
protected PDFViewerPanel.MultiPagePane m_MultiPagePane
the multipage pane for displaying the PDF files.
-
m_MenuBar
protected JMenuBar m_MenuBar
the menu bar, if used.
-
m_MenuItemFileOpen
protected JMenuItem m_MenuItemFileOpen
the "open" menu item.
-
m_MenuItemFileOpenRecent
protected JMenu m_MenuItemFileOpenRecent
the "load recent" submenu.
-
m_MenuItemFileClose
protected JMenuItem m_MenuItemFileClose
the "close" menu item.
-
m_MenuItemFilePrint
protected JMenuItem m_MenuItemFilePrint
the "print" menu item.
-
m_MenuItemFileExit
protected JMenuItem m_MenuItemFileExit
the "exit" menu item.
-
m_MenuItemToolsExtractPages
protected AbstractPDFViewerAction m_MenuItemToolsExtractPages
the "extract pages" menu item.
-
m_MenuItemToolsExtractText
protected AbstractPDFViewerAction m_MenuItemToolsExtractText
the "extract text" menu item.
-
m_MenuItemToolsExtractImages
protected AbstractPDFViewerAction m_MenuItemToolsExtractImages
the "extract images" menu item.
-
m_ViewerActions
protected List<AbstractPDFViewerAction> m_ViewerActions
the menu item actions.
-
m_FileChooser
protected transient BaseFileChooser m_FileChooser
the filedialog for loading CSV files.
-
m_RecentFilesHandler
protected RecentFilesHandler<JMenu> m_RecentFilesHandler
the recent files handler.
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classBasePanel
-
getFileChooser
protected BaseFileChooser getFileChooser()
Returns the file chooser and creates it if necessary.
-
getMenuBar
public JMenuBar getMenuBar()
Creates a menu bar (singleton per panel object). Can be used in frames.- Specified by:
getMenuBar
in interfaceMenuBarProvider
- Returns:
- the menu bar
-
getCurrentPanel
public PDFPanel getCurrentPanel()
Returns the image panel in the currently selected tab.- Returns:
- the image panel, null if none available
-
updateMenu
protected void updateMenu()
updates the enabled state of the menu items.
-
open
protected void open()
Opens one or more CSV files.
-
load
public void load(File file)
Loads the specified PDF file.- Parameters:
file
- the file to load
-
load
public void load(byte[] data)
Loads the specified PDF document.- Parameters:
data
- the data of the document to load
-
load
public void load(byte[] data, String desc)
Loads the specified PDF document.- Parameters:
data
- the data of the document to loaddesc
- the description for the document, can be null
-
closeFile
protected void closeFile()
Closes the current active tab.
-
printFile
protected void printFile()
Prints the current active tab.
-
close
protected void close()
Closes the dialog or frame.
-
zoom
protected void zoom(int zoom)
Zooms in/out.- Parameters:
zoom
- the zoom (in percent)
-
getSendToClasses
public Class[] getSendToClasses()
Returns the class that the supporter generates.- Specified by:
getSendToClasses
in interfaceSendToActionSupporter
- Returns:
- the class
-
hasSendToItem
public boolean hasSendToItem(Class[] cls)
Checks whether something to send is available.- Specified by:
hasSendToItem
in interfaceSendToActionSupporter
- Parameters:
cls
- the requested classes- Returns:
- true if an object is available for sending
-
getSendToItem
public Object getSendToItem(Class[] cls)
Returns the object to send.- Specified by:
getSendToItem
in interfaceSendToActionSupporter
- Parameters:
cls
- the requested classes- Returns:
- the item to send
-
-