Class PDFTreeModel

  • All Implemented Interfaces:
    javax.swing.tree.TreeModel

    public class PDFTreeModel
    extends java.lang.Object
    implements javax.swing.tree.TreeModel
    A class to model a PDF document as a tree structure.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.Object root  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addTreeModelListener​(javax.swing.event.TreeModelListener l)
      Adds a listener for the TreeModelEvent posted after the tree changes.
      java.lang.Object getChild​(java.lang.Object parent, int index)
      Returns the child of parent at index index in the parent's child array.
      int getChildCount​(java.lang.Object parent)
      Returns the number of children of parent.
      int getIndexOfChild​(java.lang.Object parent, java.lang.Object child)
      Returns the index of child in parent.
      java.lang.Object getRoot()
      Returns the root of the tree.
      boolean isLeaf​(java.lang.Object node)
      Returns true if node is a leaf.
      void removeTreeModelListener​(javax.swing.event.TreeModelListener l)
      Removes a listener previously added with addTreeModelListener.
      void valueForPathChanged​(javax.swing.tree.TreePath path, java.lang.Object newValue)
      Messaged when the user has altered the value for the item identified by path to newValue.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • root

        private java.lang.Object root
    • Constructor Detail

      • PDFTreeModel

        public PDFTreeModel()
        constructor.
      • PDFTreeModel

        public PDFTreeModel​(PDDocument doc)
        Constructor to take a document.
        Parameters:
        doc - The document to display in the tree.
      • PDFTreeModel

        public PDFTreeModel​(DocumentEntry docEntry)
        Constructor to take a document.
        Parameters:
        docEntry - The document to display in the tree.
    • Method Detail

      • addTreeModelListener

        public void addTreeModelListener​(javax.swing.event.TreeModelListener l)
        Adds a listener for the TreeModelEvent posted after the tree changes.
        Specified by:
        addTreeModelListener in interface javax.swing.tree.TreeModel
        Parameters:
        l - the listener to add
        See Also:
        removeTreeModelListener(javax.swing.event.TreeModelListener)
      • getChild

        public java.lang.Object getChild​(java.lang.Object parent,
                                         int index)
        Returns the child of parent at index index in the parent's child array. parent must be a node previously obtained from this data source. This should not return null if index is a valid index for parent (that is index >= 0 && index < getChildCount(parent)).
        Specified by:
        getChild in interface javax.swing.tree.TreeModel
        Parameters:
        parent - a node in the tree, obtained from this data source
        index - The index into the parent object to location the child object.
        Returns:
        the child of parent at index index
        Throws:
        java.lang.IllegalArgumentException - if an unknown unknown COS type is passed as parent parameter.
      • getChildCount

        public int getChildCount​(java.lang.Object parent)
        Returns the number of children of parent. Returns 0 if the node is a leaf or if it has no children. parent must be a node previously obtained from this data source.
        Specified by:
        getChildCount in interface javax.swing.tree.TreeModel
        Parameters:
        parent - a node in the tree, obtained from this data source
        Returns:
        the number of children of the node parent
      • getIndexOfChild

        public int getIndexOfChild​(java.lang.Object parent,
                                   java.lang.Object child)
        Returns the index of child in parent. If parent is null or child is null, returns -1.
        Specified by:
        getIndexOfChild in interface javax.swing.tree.TreeModel
        Parameters:
        parent - a node in the tree, obtained from this data source
        child - the node we are interested in
        Returns:
        the index of the child in the parent, or -1 if either child or parent are null
        Throws:
        java.lang.IllegalArgumentException - if an unknown unknown COS type is passed as parent parameter.
      • getRoot

        public java.lang.Object getRoot()
        Returns the root of the tree. Returns null only if the tree has no nodes.
        Specified by:
        getRoot in interface javax.swing.tree.TreeModel
        Returns:
        the root of the tree
      • isLeaf

        public boolean isLeaf​(java.lang.Object node)
        Returns true if node is a leaf. It is possible for this method to return false even if node has no children. A directory in a filesystem, for example, may contain no files; the node representing the directory is not a leaf, but it also has no children.
        Specified by:
        isLeaf in interface javax.swing.tree.TreeModel
        Parameters:
        node - a node in the tree, obtained from this data source
        Returns:
        true if node is a leaf
      • removeTreeModelListener

        public void removeTreeModelListener​(javax.swing.event.TreeModelListener l)
        Removes a listener previously added with addTreeModelListener.
        Specified by:
        removeTreeModelListener in interface javax.swing.tree.TreeModel
        Parameters:
        l - the listener to remove
        See Also:
        addTreeModelListener(javax.swing.event.TreeModelListener)
      • valueForPathChanged

        public void valueForPathChanged​(javax.swing.tree.TreePath path,
                                        java.lang.Object newValue)
        Messaged when the user has altered the value for the item identified by path to newValue. If newValue signifies a truly new value the model should post a treeNodesChanged event.
        Specified by:
        valueForPathChanged in interface javax.swing.tree.TreeModel
        Parameters:
        path - path to the node that the user has altered
        newValue - the new value from the TreeCellEditor