Class 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.
    • Constructor Summary

      Constructors 
      Constructor Description
      PdfReaderController​(javax.swing.event.TreeSelectionListener treeSelectionListener, PageSelectionListener pageSelectionListener)
      Constructs the PdfReaderController.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
    • Constructor Detail

      • PdfReaderController

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