com.icesoft.pdf.ri.common
Class SwingViewBuilder
java.lang.Object
com.icesoft.pdf.ri.common.SwingViewBuilder
- public class SwingViewBuilder
- extends Object
The purpose of this class is to facilitate in the building of user interface components
that are used to view and interact with PDF Documents.
As such, there are three main scenarios that are covered.
- Building a standalone Viewer JFrame that will behave much as a full-featured PDF viewing application.
- Building an embeddable PDF Viewer JPanel, which can easily be added into any existing client application,
augmenting its cababilities to include the capacity for viewing PDF Documents.
- Building a subset of the above, using the various building block methods in this class to construct GUI
components that provide certain aspects of the overall functionality, and adding those into
your application as desired.
Building a standalone window
This is the main entry point for building a JFrame containing all of the graphical user interface
elements necessary for viewing PDF files.
The hierarchy of the methods that are invoked to construct the complete GUI
is provided below for your reference.
You may choose to use any of the individual methods to construct a sub-set of the complete
GUI that meets your specific requirements. This also provides you flexibility in the containers
that you add the components into and the overall layout of the application, etc.
public JFrame buildViewerFrame()
- public JMenuBar buildCompleteMenuBar()
- public JMenu buildFileMenu()
- public JMenuItem buildOpenFileMenuItem()
- public JMenuItem buildOpenURLMenuItem()
- public JMenuItem buildCloseMenuItem()
- public JMenuItem buildSaveAsFileMenuItem()
- public JMenuItem buildExportTextMenuItem()
- public JMenuItem buildExportSVGMenuItem()
- public JMenuItem buildPermissionsMenuItem()
- public JMenuItem buildInformationMenuItem()
- public JMenuItem buildPrintSetupMenuItem()
- public JMenuItem buildPrintMenuItem()
- public JMenuItem buildExitMenuItem()
- public JMenu buildViewMenu()
- public JMenuItem buildFitActualSizeMenuItem()
- public JMenuItem buildFitPageMenuItem()
- public JMenuItem buildFitWidthMenuItem()
- public JMenuItem buildZoomInMenuItem()
- public JMenuItem buildZoomOutMenuItem()
- public JMenuItem buildRotateLeftMenuItem()
- public JMenuItem buildRotateRightMenuItem()
- public JMenuItem buildShowHideToolBarMenuItem()
- public JMenuItem buildShowHideUtilityPaneMenuItem()
- public JMenu buildDocumentMenu()
- public JMenuItem buildFirstPageMenuItem()
- public JMenuItem buildPreviousPageMenuItem()
- public JMenuItem buildNextPageMenuItem()
- public JMenuItem buildLastPageMenuItem()
- public JMenuItem buildSearchMenuItem()
- public JMenuItem buildGoToPageMenuItem()
- public JMenu buildWindowMenu()
- public JMenuItem buildMinimiseAllMenuItem()
- public JMenuItem buildBringAllToFrontMenuItem()
- public void buildWindowListMenuItems(JMenu menu)
- public JMenu buildHelpMenu()
- public JMenuItem buildAboutMenuItem()
- public void buildContents(Container cp, boolean embeddableComponent)
- public JToolBar buildCompleteToolBar(boolean embeddableComponent)
- public JToolBar buildUtilityToolBar(boolean embeddableComponent)
- public JButton buildOpenFileButton()
- public JButton buildSaveAsFileButton()
- public JButton buildPrintButton()
- public JButton buildSearchButton()
- public JButton buildShowHideUtilityPaneButton()
- public JToolBar buildPageNavigationToolBar()
- public JButton buildFirstPageButton()
- public JButton buildPreviousPageButton()
- public JButton buildNextPageButton()
- public JButton buildLastPageButton()
- public JTextField buildCurrentPageNumberTextField()
- public JLabel buildNumberOfPagesLabel()
- public JToolBar buildZoomToolBar()
- public JButton buildZoomOutButton()
- public JComboBox buildZoomCombBox()
- public JButton buildZoomInButton()
- public JToolBar buildFitToolBar()
- public JToggleButton buildFitActualSizeButton()
- public JToggleButton buildFitPageButton()
- public JToggleButton buildFitWidthButton()
- public JToolBar buildRotateToolBar()
- public JButton buildRotateLeftButton()
- public JButton buildRotateRightButton()
- public JToolBar buildToolToolBar()
- public JToggleButton buildPanToolButton()
- public JToggleButton buildZoomInToolButton()
- public JToggleButton buildZoomOutToolButton()
- public JSplitPane buildUtilityAndDocumentSplitPane(boolean embeddableComponent)
- public JTabbedPane buildUtilityTabbedPane()
- public JComponent buildOutlineComponents()
- public SearchPanel buildSearchPanel()
- public JScrollPane buildDocumentComponents(boolean embeddableComponent)
- public JLabel buildStatusPanel()
Building an embeddable component
This is the main entry point for building a JPanel containing all of the GUI elements
necessary for viewing PDF files. The main differences between this and buildViewerFrame() are:
- The buildViewerPanel method returns a JPanel which you may then embed anywhere into your GUI
- The JPanel will not contain a menu bar.
- The JPanel uses the sub-set of the GUI components available in buildViewerFrame that are
suited to an embedded component scenario.
The following hierarchy of methods that are invoked to construct the complete Component GUI
is provided for your reference.
You may choose to use any of the individual methods below to construct a sub-set of the complete
GUI that meets your specific requirements. This also provides you flexibility in the containers
that you add the components into and the overall layout of the application, etc.
public JPanel buildViewerPanel()
- public void buildContents(Container cp, boolean embeddableComponent)
- public JToolBar buildCompleteToolBar(boolean embeddableComponent)
- public JToolBar buildUtilityToolBar(boolean embeddableComponent)
- public JButton buildSaveAsFileButton()
- public JButton buildPrintButton()
- public JButton buildSearchButton()
- public JButton buildShowHideUtilityPaneButton()
- public JToolBar buildPageNavigationToolBar()
- public JButton buildFirstPageButton()
- public JButton buildPreviousPageButton()
- public JButton buildNextPageButton()
- public JButton buildLastPageButton()
- public JTextField buildCurrentPageNumberTextField()
- public JLabel buildNumberOfPagesLabel()
- public JToolBar buildZoomToolBar()
- public JButton buildZoomOutButton()
- public JComboBox buildZoomCombBox()
- public JButton buildZoomInButton()
- public JToolBar buildFitToolBar()
- public JToggleButton buildFitActualSizeButton()
- public JToggleButton buildFitPageButton()
- public JToggleButton buildFitWidthButton()
- public JToolBar buildRotateToolBar()
- public JButton buildRotateLeftButton()
- public JButton buildRotateRightButton()
- public JToolBar buildToolToolBar()
- public JToggleButton buildPanToolButton()
- public JToggleButton buildZoomInToolButton()
- public JToggleButton buildZoomOutToolButton()
- public JSplitPane buildUtilityAndDocumentSplitPane(boolean embeddableComponent)
- public JTabbedPane buildUtilityTabbedPane()
- public JComponent buildOutlineComponents()
- public SearchPanel buildSearchPanel()
- public JScrollPane buildDocumentComponents(boolean embeddableComponent)
- public JLabel buildStatusPanel()
- Since:
- 2.0
- Author:
- Mark Collette
|
Method Summary |
protected void |
addToMenu(JMenu menu,
JMenuItem mi)
|
protected void |
addToMenuBar(JMenuBar menuBar,
JMenu menu)
|
protected void |
addToToolBar(JToolBar toolbar,
JComponent comp)
|
JMenuItem |
buildAboutMenuItem()
|
JMenuItem |
buildBringAllToFrontMenuItem()
|
protected Font |
buildButtonFont()
|
JMenuItem |
buildCloseMenuItem()
|
JMenuBar |
buildCompleteMenuBar()
|
JToolBar |
buildCompleteToolBar(boolean embeddableComponent)
|
void |
buildContents(Container cp,
boolean embeddableComponent)
The Container will contain the PDF document's current page visualization
and document outline if available. |
JTextField |
buildCurrentPageNumberTextField()
|
JMenu |
buildDocumentMenu()
|
JMenuItem |
buildExitMenuItem()
|
JMenuItem |
buildExportSVGMenuItem()
|
JMenuItem |
buildExportTextMenuItem()
|
JMenu |
buildFileMenu()
|
JButton |
buildFirstPageButton()
|
JMenuItem |
buildFirstPageMenuItem()
|
JToggleButton |
buildFitActualSizeButton()
|
JMenuItem |
buildFitActualSizeMenuItem()
|
JToggleButton |
buildFitPageButton()
|
JMenuItem |
buildFitPageMenuItem()
|
JToolBar |
buildFitToolBar()
|
JToggleButton |
buildFitWidthButton()
|
JMenuItem |
buildFitWidthMenuItem()
|
JMenuItem |
buildGoToPageMenuItem()
|
JMenu |
buildHelpMenu()
|
JMenuItem |
buildInformationMenuItem()
|
JButton |
buildLastPageButton()
|
JMenuItem |
buildLastPageMenuItem()
|
JMenuItem |
buildMinimiseAllMenuItem()
|
JButton |
buildNextPageButton()
|
JMenuItem |
buildNextPageMenuItem()
|
JLabel |
buildNumberOfPagesLabel()
|
JButton |
buildOpenFileButton()
|
JMenuItem |
buildOpenFileMenuItem()
|
JMenuItem |
buildOpenURLMenuItem()
|
JComponent |
buildOutlineComponents()
|
JToolBar |
buildPageNavigationToolBar()
|
JToggleButton |
buildPageViewFacingPageConToggleButton()
|
JToggleButton |
buildPageViewFacingPageNonConToggleButton()
|
JToggleButton |
buildPageViewSinglePageConToggleButton()
|
JToggleButton |
buildPageViewSinglePageNonConToggleButton()
|
JToggleButton |
buildPanToolButton()
|
JMenuItem |
buildPermissionsMenuItem()
|
JButton |
buildPreviousPageButton()
|
JMenuItem |
buildPreviousPageMenuItem()
|
JButton |
buildPrintButton()
|
JMenuItem |
buildPrintMenuItem()
|
JMenuItem |
buildPrintSetupMenuItem()
|
JButton |
buildRotateLeftButton()
|
JMenuItem |
buildRotateLeftMenuItem()
|
JButton |
buildRotateRightButton()
|
JMenuItem |
buildRotateRightMenuItem()
|
JToolBar |
buildRotateToolBar()
|
JButton |
buildSaveAsFileButton()
|
JMenuItem |
buildSaveAsFileMenuItem()
|
JButton |
buildSearchButton()
|
JMenuItem |
buildSearchMenuItem()
|
SearchPanel |
buildSearchPanel()
|
JMenuItem |
buildShowHideToolBarMenuItem()
|
JButton |
buildShowHideUtilityPaneButton()
|
JMenuItem |
buildShowHideUtilityPaneMenuItem()
|
JPanel |
buildStatusPanel()
|
JToolBar |
buildToolToolBar()
|
JSplitPane |
buildUtilityAndDocumentSplitPane(boolean embeddableComponent)
|
JTabbedPane |
buildUtilityTabbedPane()
|
JToolBar |
buildUtilityToolBar(boolean embeddableComponent)
|
JFrame |
buildViewerFrame()
This is a standard method for creating a standalone JFrame, that would
behave as a fully functional PDF Viewer application. |
JPanel |
buildViewerPanel()
Used by the Applet and Pilot RI code to create an embeddable panel
for viewing PDF files, as opposed to buildViewerFrame(), which makes a
standalone JFrame |
JMenu |
buildViewMenu()
|
void |
buildWindowListMenuItems(JMenu menu)
|
JMenu |
buildWindowMenu()
|
JComboBox |
buildZoomCombBox()
|
JButton |
buildZoomInButton()
|
JMenuItem |
buildZoomInMenuItem()
|
JToggleButton |
buildZoomInToolButton()
|
JButton |
buildZoomOutButton()
|
JMenuItem |
buildZoomOutMenuItem()
|
JToggleButton |
buildZoomOutToolButton()
|
JToolBar |
buildZoomToolBar()
|
protected void |
commonToolBarSetup(JToolBar toolbar,
boolean isMainToolBar)
|
protected JMenuItem |
makeMenuItem(String text,
KeyStroke accel)
Utility method for creating a menu item. |
protected JMenuItem |
makeMenuItem(String text,
String imageName,
KeyStroke accel)
Utility method for creating a menu item with an image. |
protected JButton |
makeToolbarButton(String title,
String toolTip,
String imageName,
Font font)
Utility method for creating a toolbar button. |
protected JToggleButton |
makeToolbarToggleButton(String title,
String toolTip,
String imageName,
Font font)
Utility method for creating toggle buttons. |
protected void |
reflectComponentSetFocusable(Component comp,
boolean val)
void java.awt.Component.setFocusable(boolean) does not exist in Java 1.3. |
protected void |
reflectJToolBarSetRollover(JToolBar jtoolbar,
boolean val)
void javax.swing.JToolBar.setRollover(boolean) does not exist in Java 1.3. |
protected void |
shortenDocumentOrigins(List windowDocOriginList)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TOOL_BAR_STYLE_FLOATING
public static final int TOOL_BAR_STYLE_FLOATING
- See Also:
- Constant Field Values
TOOL_BAR_STYLE_FIXED
public static final int TOOL_BAR_STYLE_FIXED
- See Also:
- Constant Field Values
DEFAULT_ZOOM_LEVELS
protected static final float[] DEFAULT_ZOOM_LEVELS
viewerController
protected SwingController viewerController
buttonFont
protected Font buttonFont
showButtonText
protected boolean showButtonText
toolbarStyle
protected int toolbarStyle
zoomLevels
protected float[] zoomLevels
haveMadeAToolBar
protected boolean haveMadeAToolBar
documentViewType
protected int documentViewType
documentPageFitMode
protected int documentPageFitMode
messageBundle
protected ResourceBundle messageBundle
SwingViewBuilder
public SwingViewBuilder(SwingController c)
- Construct a SwingVewBuilder with all of the default settings
- Parameters:
c - SwingController that will interact with the GUI
SwingViewBuilder
public SwingViewBuilder(SwingController c,
int documentViewType,
int documentPageFitMode)
- Construct a SwingVewBuilder with all of the default settings
- Parameters:
c - SwingController that will interact with the GUI
SwingViewBuilder
public SwingViewBuilder(SwingController c,
Font bf,
boolean bt,
int ts,
float[] zl,
int documentViewType,
int documentPageFitMode)
- Construct a SwingVewBuilder with whichever settings you desire
- Parameters:
c - SwingController that will interact with the GUI
buildViewerFrame
public JFrame buildViewerFrame()
- This is a standard method for creating a standalone JFrame, that would
behave as a fully functional PDF Viewer application.
- Returns:
- a JFrame containing the PDF document's current page visualization,
menu bar, accelerator buttons, and document outline if available.
- See Also:
buildViewerPanel()
buildViewerPanel
public JPanel buildViewerPanel()
- Used by the Applet and Pilot RI code to create an embeddable panel
for viewing PDF files, as opposed to buildViewerFrame(), which makes a
standalone JFrame
- Returns:
- JPanel containing the PDF document's current page visualization,
menu bar, accelerator buttons, and document outline if available.
- See Also:
buildViewerFrame()
buildContents
public void buildContents(Container cp,
boolean embeddableComponent)
- The Container will contain the PDF document's current page visualization
and document outline if available.
- Parameters:
cp - Container in which to put components for viewing PDF documents
buildCompleteMenuBar
public JMenuBar buildCompleteMenuBar()
buildFileMenu
public JMenu buildFileMenu()
buildOpenFileMenuItem
public JMenuItem buildOpenFileMenuItem()
buildOpenURLMenuItem
public JMenuItem buildOpenURLMenuItem()
buildCloseMenuItem
public JMenuItem buildCloseMenuItem()
buildSaveAsFileMenuItem
public JMenuItem buildSaveAsFileMenuItem()
buildExportTextMenuItem
public JMenuItem buildExportTextMenuItem()
buildExportSVGMenuItem
public JMenuItem buildExportSVGMenuItem()
buildPermissionsMenuItem
public JMenuItem buildPermissionsMenuItem()
buildInformationMenuItem
public JMenuItem buildInformationMenuItem()
buildPrintSetupMenuItem
public JMenuItem buildPrintSetupMenuItem()
buildPrintMenuItem
public JMenuItem buildPrintMenuItem()
buildExitMenuItem
public JMenuItem buildExitMenuItem()
buildViewMenu
public JMenu buildViewMenu()
buildFitActualSizeMenuItem
public JMenuItem buildFitActualSizeMenuItem()
buildFitPageMenuItem
public JMenuItem buildFitPageMenuItem()
buildFitWidthMenuItem
public JMenuItem buildFitWidthMenuItem()
buildZoomInMenuItem
public JMenuItem buildZoomInMenuItem()
buildZoomOutMenuItem
public JMenuItem buildZoomOutMenuItem()
buildRotateLeftMenuItem
public JMenuItem buildRotateLeftMenuItem()
buildRotateRightMenuItem
public JMenuItem buildRotateRightMenuItem()
buildShowHideToolBarMenuItem
public JMenuItem buildShowHideToolBarMenuItem()
buildShowHideUtilityPaneMenuItem
public JMenuItem buildShowHideUtilityPaneMenuItem()
buildDocumentMenu
public JMenu buildDocumentMenu()
buildFirstPageMenuItem
public JMenuItem buildFirstPageMenuItem()
buildPreviousPageMenuItem
public JMenuItem buildPreviousPageMenuItem()
buildNextPageMenuItem
public JMenuItem buildNextPageMenuItem()
buildLastPageMenuItem
public JMenuItem buildLastPageMenuItem()
buildSearchMenuItem
public JMenuItem buildSearchMenuItem()
buildGoToPageMenuItem
public JMenuItem buildGoToPageMenuItem()
buildWindowMenu
public JMenu buildWindowMenu()
buildMinimiseAllMenuItem
public JMenuItem buildMinimiseAllMenuItem()
buildBringAllToFrontMenuItem
public JMenuItem buildBringAllToFrontMenuItem()
buildWindowListMenuItems
public void buildWindowListMenuItems(JMenu menu)
shortenDocumentOrigins
protected void shortenDocumentOrigins(List windowDocOriginList)
buildHelpMenu
public JMenu buildHelpMenu()
buildAboutMenuItem
public JMenuItem buildAboutMenuItem()
buildCompleteToolBar
public JToolBar buildCompleteToolBar(boolean embeddableComponent)
buildUtilityToolBar
public JToolBar buildUtilityToolBar(boolean embeddableComponent)
buildOpenFileButton
public JButton buildOpenFileButton()
buildSaveAsFileButton
public JButton buildSaveAsFileButton()
buildPrintButton
public JButton buildPrintButton()
buildSearchButton
public JButton buildSearchButton()
buildShowHideUtilityPaneButton
public JButton buildShowHideUtilityPaneButton()
buildPageNavigationToolBar
public JToolBar buildPageNavigationToolBar()
buildFirstPageButton
public JButton buildFirstPageButton()
buildPreviousPageButton
public JButton buildPreviousPageButton()
buildNextPageButton
public JButton buildNextPageButton()
buildLastPageButton
public JButton buildLastPageButton()
buildCurrentPageNumberTextField
public JTextField buildCurrentPageNumberTextField()
buildNumberOfPagesLabel
public JLabel buildNumberOfPagesLabel()
buildZoomToolBar
public JToolBar buildZoomToolBar()
buildZoomOutButton
public JButton buildZoomOutButton()
buildZoomCombBox
public JComboBox buildZoomCombBox()
buildZoomInButton
public JButton buildZoomInButton()
buildFitToolBar
public JToolBar buildFitToolBar()
buildFitActualSizeButton
public JToggleButton buildFitActualSizeButton()
buildFitPageButton
public JToggleButton buildFitPageButton()
buildFitWidthButton
public JToggleButton buildFitWidthButton()
buildRotateToolBar
public JToolBar buildRotateToolBar()
buildRotateLeftButton
public JButton buildRotateLeftButton()
buildRotateRightButton
public JButton buildRotateRightButton()
buildToolToolBar
public JToolBar buildToolToolBar()
buildPanToolButton
public JToggleButton buildPanToolButton()
buildZoomInToolButton
public JToggleButton buildZoomInToolButton()
buildZoomOutToolButton
public JToggleButton buildZoomOutToolButton()
buildUtilityAndDocumentSplitPane
public JSplitPane buildUtilityAndDocumentSplitPane(boolean embeddableComponent)
buildUtilityTabbedPane
public JTabbedPane buildUtilityTabbedPane()
buildOutlineComponents
public JComponent buildOutlineComponents()
buildSearchPanel
public SearchPanel buildSearchPanel()
buildStatusPanel
public JPanel buildStatusPanel()
buildPageViewSinglePageConToggleButton
public JToggleButton buildPageViewSinglePageConToggleButton()
buildPageViewFacingPageConToggleButton
public JToggleButton buildPageViewFacingPageConToggleButton()
buildPageViewSinglePageNonConToggleButton
public JToggleButton buildPageViewSinglePageNonConToggleButton()
buildPageViewFacingPageNonConToggleButton
public JToggleButton buildPageViewFacingPageNonConToggleButton()
makeToolbarButton
protected JButton makeToolbarButton(String title,
String toolTip,
String imageName,
Font font)
- Utility method for creating a toolbar button.
- Parameters:
title - display text for the menu itemtoolTip - tool tip textimageName - display image namefont - display font
- Returns:
- a button with the specified characteristics.
makeToolbarToggleButton
protected JToggleButton makeToolbarToggleButton(String title,
String toolTip,
String imageName,
Font font)
- Utility method for creating toggle buttons.
- Parameters:
title - display text for the menu itemtoolTip - tool tip textimageName - display image namefont - display font
- Returns:
- a toggle button with the specified characteristics.
makeMenuItem
protected JMenuItem makeMenuItem(String text,
KeyStroke accel)
- Utility method for creating a menu item.
- Parameters:
text - display text for the menu item
- Returns:
- menu item complete with text and action listener
makeMenuItem
protected JMenuItem makeMenuItem(String text,
String imageName,
KeyStroke accel)
- Utility method for creating a menu item with an image.
- Parameters:
text - display text for the menu itemimageName - display image for the menu item
- Returns:
- memu item complete with text, image and action listener
reflectJToolBarSetRollover
protected void reflectJToolBarSetRollover(JToolBar jtoolbar,
boolean val)
- void javax.swing.JToolBar.setRollover(boolean) does not exist in Java 1.3.
Since it was introduced in Java 1.4, so we use reflection to call it,
if it exists.
We don't treat it as an error if this fails, since it's only an enhancement,
and is not critical.
- Parameters:
jtoolbar - javax.swing.JToolBar to call setRollover( val ) onval - Argument to jtoolbar.setRollover( val )
reflectComponentSetFocusable
protected void reflectComponentSetFocusable(Component comp,
boolean val)
- void java.awt.Component.setFocusable(boolean) does not exist in Java 1.3.
Since it was introduced in Java 1.4, so we use reflection to call it,
if it exists.
We don't treat it as an error if this fails, since it's only an enhancement,
and is not critical.
- Parameters:
comp - java.awt.Component to call setFocusable( val ) onval - Argument to comp.setFocusable( val )
commonToolBarSetup
protected void commonToolBarSetup(JToolBar toolbar,
boolean isMainToolBar)
buildButtonFont
protected Font buildButtonFont()
addToToolBar
protected void addToToolBar(JToolBar toolbar,
JComponent comp)
addToMenu
protected void addToMenu(JMenu menu,
JMenuItem mi)
addToMenuBar
protected void addToMenuBar(JMenuBar menuBar,
JMenu menu)