com.lowagie.rups.controller
Class PdfReaderController

java.lang.Object
  extended by java.util.Observable
      extended by com.lowagie.rups.controller.PdfReaderController
All Implemented Interfaces:
java.util.Observer

public class PdfReaderController
extends java.util.Observable
implements java.util.Observer

Controls the GUI components that get their content from iText's PdfReader.


Field Summary
protected  javax.swing.JTabbedPane editorTabs
          Tabbed Pane containing other components.
protected  FormTree form
          Treeview of the form.
protected  javax.swing.JTabbedPane navigationTabs
          Tabbed Pane containing other components.
protected  TreeNodeFactory nodes
          The factory producing tree nodes.
protected  PdfObjectPanel objectPanel
          A panel that will show PdfObjects.
protected  OutlineTree outlines
          Treeview of the outlines.
protected  PagesTable pages
          JTable with all the pages and their labels.
protected  PdfTree pdfTree
          Treeview of the PDF file.
protected  StreamTextArea streamArea
          A panel that will show a stream.
protected  XRefTable xref
          JTable corresponding with the CrossReference table.
 
Constructor Summary
PdfReaderController(javax.swing.event.TreeSelectionListener treeSelectionListener, PageNavigationListener pageNavigationListener)
          Constructs the PdfReaderController.
 
Method Summary
 javax.swing.JTabbedPane getEditorTabs()
          Getter for the tabs with the editor windows (to which the Console window will be added).
 javax.swing.JTabbedPane getNavigationTabs()
          Getter for the tabs that allow you to navigate through the PdfTree quickly (pages, form, outlines, xref table).
 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).
 PdfTree getPdfTree()
          Getter for the PDF Tree.
 StreamTextArea getStreamArea()
          Getter for the object that holds the TextArea with the content stream of a PdfStream object.
 void gotoPage(int pageNumber)
          Selects the row in the pageTable that corresponds with a certain page number.
 void notifyObservers(java.lang.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.
 void render(PdfObject object)
          Renders the syntax of a PdfObject in the objectPanel.
 void selectNode(int objectNumber)
          Selects a node in the PdfTree.
 void selectNode(PdfObjectTreeNode node)
          Selects a node in the PdfTree.
 void startObjectLoader(PdfFile file)
          Starts loading the PDF Objects in background.
 void update(java.util.Observable observable, java.lang.Object obj)
          Forwards updates from the RupsController to the Observers of this class.
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pdfTree

protected PdfTree pdfTree
Treeview of the PDF file.


navigationTabs

protected javax.swing.JTabbedPane navigationTabs
Tabbed Pane containing other components.


pages

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


outlines

protected OutlineTree outlines
Treeview of the outlines.


form

protected FormTree form
Treeview of the form.


xref

protected XRefTable xref
JTable corresponding with the CrossReference table.


objectPanel

protected PdfObjectPanel objectPanel
A panel that will show PdfObjects.


editorTabs

protected javax.swing.JTabbedPane editorTabs
Tabbed Pane containing other components.


streamArea

protected StreamTextArea streamArea
A panel that will show a stream.


nodes

protected TreeNodeFactory nodes
The factory producing tree nodes.

Constructor Detail

PdfReaderController

public PdfReaderController(javax.swing.event.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

getPdfTree

public PdfTree getPdfTree()
Getter for the PDF Tree.

Returns:
the PdfTree object

getNavigationTabs

public javax.swing.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

getEditorTabs

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


getStreamArea

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

Returns:
a StreamTextArea

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

notifyObservers

public void notifyObservers(java.lang.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.

Overrides:
notifyObservers in class java.util.Observable
Parameters:
obj - in this case the Object should be an ObjectLoader
See Also:
Observable.notifyObservers(java.lang.Object)

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

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.


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

update

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

Specified by:
update in interface java.util.Observer
Parameters:
observable - this should be the RupsController
obj - the object that has to be forwarded to the observers of PdfReaderController
See Also:
Observer.update(java.util.Observable, java.lang.Object)


iText 2.1.7