Class ViewFileTreeNode

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, javax.swing.tree.MutableTreeNode, javax.swing.tree.TreeNode

    public class ViewFileTreeNode
    extends javax.swing.tree.DefaultMutableTreeNode
    This class is used to represent a file system in a tree. This is a node of the file system. It has a java.io.File as its user object.

    Nodes in the tree are expanded by calling this class's explore method. You can set the explore method to return only directories by setting the directoriesOnly flag. Additionally you can call explore with a file filter, and only nodes that satisfy that file filter will be returned. Directories are verified to contain valid files before they are added to the tree.

    Basic structure of class taken from Sun's Graphic Java Swing "Trees" section.

    Author:
    David Parsons, Neva Cherniavsky
    See Also:
    ViewImageDirectory, JDialogAnonymizeDirectory, Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean directoriesOnly
      DOCUMENT ME!
      private boolean explored
      DOCUMENT ME!
      private boolean rootfile
      DOCUMENT ME!
      private static long serialVersionUID
      Use serialVersionUID for interoperability.
      • Fields inherited from class javax.swing.tree.DefaultMutableTreeNode

        allowsChildren, children, EMPTY_ENUMERATION, parent, userObject
    • Constructor Summary

      Constructors 
      Constructor Description
      ViewFileTreeNode​(java.io.File node)
      Loads a File into the tree-leaf.
      ViewFileTreeNode​(java.io.File node, boolean fsRoot)
      Loads a File into a tree-leaf.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void explore()
      Adds the children of this file to the this FileNode for display in a JTree. adjusts the explored variable.
      void explore​(ViewImageFileFilter filter)
      Adds the children of this file to the this FileNode for display in a JTree. adjusts the explored variable.
      boolean exploreDirectoriesOnly()
      Accessor to whether or not the FileNode is to only explore Directories.
      void exploreDirectoriesOnly​(boolean directoryChildren)
      Sets the FileNode to view only directories when it goes exploring.
      java.lang.String getAbsolutePath()
      The absolute path of the FileNode, as taken from its File.
      boolean getAllowsChildren()
      Only directoies can allow children.
      java.lang.String getDirectory()
      The directory of the FileNode, as taken from its File.
      java.io.File getFile()
      Returns the File that is this node on the tree.
      java.lang.String getName()
      The name of the FileNode, as taken from its File.
      private boolean hasValidChildren​(ViewImageFileFilter filter)
      Checks if this directory ought to be added to the list based on whether it has any children that satisfy the filter.
      boolean isDirectory()
      Returns true if this fileNode is a directory and not a normal file.
      boolean isExplored()
      Whether or not this node has been 'explored', and its subdirectories and file-children have been found.
      boolean isLeaf()
      Leaves are not directories.
      java.lang.String toString()
      Gets the name of the File.
      • Methods inherited from class javax.swing.tree.DefaultMutableTreeNode

        add, breadthFirstEnumeration, children, clone, depthFirstEnumeration, getChildAfter, getChildAt, getChildBefore, getChildCount, getDepth, getFirstChild, getFirstLeaf, getIndex, getLastChild, getLastLeaf, getLeafCount, getLevel, getNextLeaf, getNextNode, getNextSibling, getParent, getPath, getPathToRoot, getPreviousLeaf, getPreviousNode, getPreviousSibling, getRoot, getSharedAncestor, getSiblingCount, getUserObject, getUserObjectPath, insert, isNodeAncestor, isNodeChild, isNodeDescendant, isNodeRelated, isNodeSibling, isRoot, pathFromAncestorEnumeration, postorderEnumeration, preorderEnumeration, remove, remove, removeAllChildren, removeFromParent, setAllowsChildren, setParent, setUserObject
      • Methods inherited from class java.lang.Object

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

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • directoriesOnly

        private boolean directoriesOnly
        DOCUMENT ME!
      • explored

        private boolean explored
        DOCUMENT ME!
      • rootfile

        private boolean rootfile
        DOCUMENT ME!
    • Constructor Detail

      • ViewFileTreeNode

        public ViewFileTreeNode​(java.io.File node)
        Loads a File into the tree-leaf.
        Parameters:
        node - File for tree leaf.
      • ViewFileTreeNode

        public ViewFileTreeNode​(java.io.File node,
                                boolean fsRoot)
        Loads a File into a tree-leaf. This method permits telling the node that the file is a root for the filesystem.

        It can be useful to remember whether or not the given file was a root. (which is not information normally stored by the File.)

        Parameters:
        node - File for tree leaf.
        fsRoot - Flag indicating if this is a root.
    • Method Detail

      • explore

        public void explore()
        Adds the children of this file to the this FileNode for display in a JTree. adjusts the explored variable. Does nothing if the FileNode is not a directory or if the node has already been explored. If directories only are to be explored, then the only children to be added will be directories; otherwise, all files in the directory will be added to the node.

        Implementation of this is different from the Sun Books' code.

      • explore

        public void explore​(ViewImageFileFilter filter)
        Adds the children of this file to the this FileNode for display in a JTree. adjusts the explored variable. Does nothing if the FileNode is not a directory or if the node has already been explored. If directories only are to be explored, then the only children to be added will be directories. Otherwise, if the file filter is not null, only the files that satisfy the filter will be added. If the filter is null, all files will be added.

        Implementation of this is different from the Sun Books' code.

        Parameters:
        filter - File filter; can be null.
      • exploreDirectoriesOnly

        public boolean exploreDirectoriesOnly()
        Accessor to whether or not the FileNode is to only explore Directories.
        Returns:
        true if FileNode only explores directories.
      • exploreDirectoriesOnly

        public void exploreDirectoriesOnly​(boolean directoryChildren)
        Sets the FileNode to view only directories when it goes exploring.
        Parameters:
        directoryChildren - The permission to view only directories.
      • getAbsolutePath

        public java.lang.String getAbsolutePath()
        The absolute path of the FileNode, as taken from its File.
        Returns:
        The File's name.
      • getAllowsChildren

        public boolean getAllowsChildren()
        Only directoies can allow children.
        Specified by:
        getAllowsChildren in interface javax.swing.tree.TreeNode
        Overrides:
        getAllowsChildren in class javax.swing.tree.DefaultMutableTreeNode
        Returns:
        true if this is a directory.
      • getDirectory

        public java.lang.String getDirectory()
        The directory of the FileNode, as taken from its File.
        Returns:
        The directory's name.
      • getFile

        public java.io.File getFile()
        Returns the File that is this node on the tree.
        Returns:
        the File that is this node on the tree.
      • getName

        public java.lang.String getName()
        The name of the FileNode, as taken from its File.
        Returns:
        The File's name.
      • isDirectory

        public boolean isDirectory()
        Returns true if this fileNode is a directory and not a normal file.
        Returns:
        true if this fileNode is a directory.
      • isExplored

        public boolean isExplored()
        Whether or not this node has been 'explored', and its subdirectories and file-children have been found.
        Returns:
        whether or not this FileNode knows that is known.
      • isLeaf

        public boolean isLeaf()
        Leaves are not directories. Directories can extend.
        Specified by:
        isLeaf in interface javax.swing.tree.TreeNode
        Overrides:
        isLeaf in class javax.swing.tree.DefaultMutableTreeNode
        Returns:
        true if not directory.
      • toString

        public java.lang.String toString()
        Gets the name of the File. When this FileNode is a FileNode for a root of the filesystem, the String returned is the absolute path (that is so on Windows systems,the user sees "C:\"); otherwise, the string returned is the filename.
        Overrides:
        toString in class javax.swing.tree.DefaultMutableTreeNode
        Returns:
        Name of the file.
      • hasValidChildren

        private boolean hasValidChildren​(ViewImageFileFilter filter)
        Checks if this directory ought to be added to the list based on whether it has any children that satisfy the filter.
        Parameters:
        filter - Filter to check files against; if null returns true.
        Returns:
        Flag indicating if this directory has valid children.