## com.lowagie.rups.controller
Class PdfReaderController

    java.lang.Object
      java.util.Observable
          com.lowagie.rups.controller.PdfReaderController

All Implemented Interfaces:
  Observer

    public class PdfReaderController

extends Observable
implements Observer

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

Field Summary
`protected JTabbedPane` `editorTabs` Tabbed Pane containing other components.
`protected FormTree` `form` Treeview of the form.
`protected 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(TreeSelectionListener treeSelectionListener, PageSelectionListener pageSelectionListener)` Constructs the PdfReaderController.

Method Summary
`JTabbedPane` `getEditorTabs()` Getter for the tabs with the editor windows (to which the Console window will be added).
`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(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(Observable observable, 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 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 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(TreeSelectionListener treeSelectionListener,
                               PageSelectionListener pageSelectionListener)

  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
    `pageSelectionListener` - 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 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 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(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 `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(Observable observable,
                       Object obj)

  Forwards updates from the RupsController to the Observers of this class.

  Specified by:
    `update` in interface `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)`

Hosted by Hostbasket