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 Details

    • pdfTree

      protected PdfTree pdfTree
      Treeview of the PDF file.
    • 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 Details

    • 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 Details

    • 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).
      Returns:
      the tabs with the editor windows
    • 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:
    • 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.
      Parameters:
      object - the object to render
    • 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: