com.lowagie.rups.controller

Class PdfReaderController

public class PdfReaderController extends Observable implements Observer

Controls the GUI components that get their content from iText's PdfReader.
Field Summary
protected JTabbedPaneeditorTabs
Tabbed Pane containing other components.
protected FormTreeform
Treeview of the form.
protected JTabbedPanenavigationTabs
Tabbed Pane containing other components.
protected TreeNodeFactorynodes
The factory producing tree nodes.
protected PdfObjectPanelobjectPanel
A panel that will show PdfObjects.
protected OutlineTreeoutlines
Treeview of the outlines.
protected PagesTablepages
JTable with all the pages and their labels.
protected PdfTreepdfTree
Treeview of the PDF file.
protected StreamTextAreastreamArea
A panel that will show a stream.
protected XRefTablexref
JTable corresponding with the CrossReference table.
Constructor Summary
PdfReaderController(TreeSelectionListener treeSelectionListener, PageNavigationListener pageNavigationListener)
Constructs the PdfReaderController.
Method Summary
JTabbedPanegetEditorTabs()
Getter for the tabs with the editor windows (to which the Console window will be added).
JTabbedPanegetNavigationTabs()
Getter for the tabs that allow you to navigate through the PdfTree quickly (pages, form, outlines, xref table).
PdfObjectPanelgetObjectPanel()
Getter for the panel that will show the contents of a PDF Object (except for PdfStreams: only the Stream Dictionary will be shown; the content stream is shown in a StreamTextArea object).
PdfTreegetPdfTree()
Getter for the PDF Tree.
StreamTextAreagetStreamArea()
Getter for the object that holds the TextArea with the content stream of a PdfStream object.
voidgotoPage(int pageNumber)
Selects the row in the pageTable that corresponds with a certain page number.
voidnotifyObservers(Object obj)
The GUI components that show the internals of a PDF file, can only be shown if all objects are loaded into the IndirectObjectFactory using the ObjectLoader.
voidrender(PdfObject object)
Renders the syntax of a PdfObject in the objectPanel.
voidselectNode(PdfObjectTreeNode node)
Selects a node in the PdfTree.
voidselectNode(int objectNumber)
Selects a node in the PdfTree.
voidstartObjectLoader(PdfFile file)
Starts loading the PDF Objects in background.
voidupdate(Observable observable, Object obj)
Forwards updates from the RupsController to the Observers of this class.

Field Detail

editorTabs

protected JTabbedPane editorTabs
Tabbed Pane containing other components.

form

protected FormTree form
Treeview of the form.

navigationTabs

protected JTabbedPane navigationTabs
Tabbed Pane containing other components.

nodes

protected TreeNodeFactory nodes
The factory producing tree nodes.

objectPanel

protected PdfObjectPanel objectPanel
A panel that will show PdfObjects.

outlines

protected OutlineTree outlines
Treeview of the outlines.

pages

protected PagesTable pages
JTable with all the pages and their labels.

pdfTree

protected PdfTree pdfTree
Treeview of the PDF file.

streamArea

protected StreamTextArea streamArea
A panel that will show a stream.

xref

protected XRefTable xref
JTable corresponding with the CrossReference table.

Constructor Detail

PdfReaderController

public PdfReaderController(TreeSelectionListener treeSelectionListener, PageNavigationListener pageNavigationListener)
Constructs the PdfReaderController. This is an Observable object to which all iText related GUI components are added as Observers.

Parameters: treeSelectionListener when somebody selects a tree node, this listener listens to the event pageNavigationListener when somebody changes a page, this listener changes accordingly

Method Detail

getEditorTabs

public JTabbedPane getEditorTabs()
Getter for the tabs with the editor windows (to which the Console window will be added).

getNavigationTabs

public JTabbedPane getNavigationTabs()
Getter for the tabs that allow you to navigate through the PdfTree quickly (pages, form, outlines, xref table).

Returns: a JTabbedPane

getObjectPanel

public PdfObjectPanel getObjectPanel()
Getter for the panel that will show the contents of a PDF Object (except for PdfStreams: only the Stream Dictionary will be shown; the content stream is shown in a StreamTextArea object).

Returns: the PdfObjectPanel

getPdfTree

public PdfTree getPdfTree()
Getter for the PDF Tree.

Returns: the PdfTree object

getStreamArea

public StreamTextArea getStreamArea()
Getter for the object that holds the TextArea with the content stream of a PdfStream object.

Returns: a StreamTextArea

gotoPage

public void gotoPage(int pageNumber)
Selects the row in the pageTable that corresponds with a certain page number.

Parameters: pageNumber the page number that needs to be selected

notifyObservers

void notifyObservers(Object obj)
The GUI components that show the internals of a PDF file, can only be shown if all objects are loaded into the IndirectObjectFactory using the ObjectLoader. As soon as this is done, the GUI components are notified.

Parameters: obj in this case the Object should be an ObjectLoader

See Also: java.util.Observable#notifyObservers(java.lang.Object)

render

public void render(PdfObject object)
Renders the syntax of a PdfObject in the objectPanel. If the object is a PDF Stream, then the stream is shown in the streamArea too.

selectNode

public void selectNode(PdfObjectTreeNode node)
Selects a node in the PdfTree.

Parameters: node a node in the PdfTree

selectNode

public void selectNode(int objectNumber)
Selects a node in the PdfTree.

Parameters: objectNumber a number of a node in the PdfTree

startObjectLoader

public void startObjectLoader(PdfFile file)
Starts loading the PDF Objects in background.

Parameters: file the wrapper object that holds the PdfReader as member variable

update

public void update(Observable observable, Object obj)
Forwards updates from the RupsController to the Observers of this class.

Parameters: observable this should be the RupsController obj the object that has to be forwarded to the observers of PdfReaderController

See Also: java.util.Observer#update(java.util.Observable, java.lang.Object)