Class FSBFileNode

All Implemented Interfaces:
Cloneable, Comparable<GTreeNode>
Direct Known Subclasses:
FSBDirNode

public class FSBFileNode extends FSBNode
GTreeNode that represents a file on a filesystem.
  • Field Details

    • file

      protected GFile file
    • isEncrypted

      protected boolean isEncrypted
    • hasPassword

      protected boolean hasPassword
    • symlinkDest

      protected String symlinkDest
    • lastModified

      protected long lastModified
  • Method Details

    • init

      public void init(TaskMonitor monitor)
      Overrides:
      init in class FSBNode
    • getFSRL

      public FSRL getFSRL()
      Description copied from class: FSBNode
      Returns the FSRL of the filesystem object that this node represents.

      The root of filesystems will return a FSRLRoot.

      Specified by:
      getFSRL in class FSBNode
      Returns:
      FSRL of the filesystem object.
    • getGFile

      public GFile getGFile()
      Overrides:
      getGFile in class FSBNode
    • isLeaf

      public boolean isLeaf()
      Description copied from class: GTreeNode
      Returns true if this node never has children
      Specified by:
      isLeaf in class GTreeNode
      Returns:
      true if this node is a leaf
    • getToolTip

      public String getToolTip()
      Description copied from class: GTreeNode
      Returns the string to be displayed as a tooltip when the user hovers the mouse on this node in the tree
      Overrides:
      getToolTip in class FSBNode
      Returns:
      the tooltip to be displayed
    • isSymlink

      public boolean isSymlink()
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class GTreeNode
    • refreshNode

      public void refreshNode(TaskMonitor monitor) throws CancelledException
      Specified by:
      refreshNode in class FSBNode
      Throws:
      CancelledException
    • generateChildren

      public List<GTreeNode> generateChildren(TaskMonitor monitor) throws CancelledException
      Description copied from class: GTreeSlowLoadingNode
      Subclass must implement this method to generate their children. This operation will always be performed in a background thread (i.e. Not the swing thread)
      Specified by:
      generateChildren in class GTreeSlowLoadingNode
      Parameters:
      monitor - a TaskMonitor for reporting progress and cancel notification.
      Returns:
      the list of children for this node.
      Throws:
      CancelledException - if the monitor is cancelled
    • isEncrypted

      public boolean isEncrypted()
      Local copy of the original GFile's FileAttributeType.IS_ENCRYPTED_ATTR attribute.
      Returns:
      boolean true if file needs a password to be read
    • hasPassword

      public boolean hasPassword()
      Local copy of the original GFile's FileAttributeType.HAS_GOOD_PASSWORD_ATTR attribute.
      Returns:
      boolean true if a password for the file has been found, false if missing the password
    • hasMissingPassword

      public boolean hasMissingPassword()
      Returns true if this file is missing its password
      Returns:
      boolean true if this file is missing its password
    • getLoadableFSRL

      public FSRL getLoadableFSRL()
      Specified by:
      getLoadableFSRL in class FSBNode
    • getParent

      public final GTreeNode getParent()
      Returns the parent of this node. Note: this method is deliberately not synchronized (See comments above)
      Returns:
      the parent of this node.
    • isRoot

      public final boolean isRoot()
      Returns true if this is a root node of a GTree
      Returns:
      true if this is a root node of a GTree
    • children

      protected final List<GTreeNode> children()
    • doSetChildrenAndFireEvent

      protected void doSetChildrenAndFireEvent(List<GTreeNode> childList)
      Sets the children of this node to the given list of child nodes and fires the appropriate tree event to kick the tree to update the display. Note: This method must be called from the swing thread because it will notify the underlying JTree.
      Parameters:
      childList - the list of child nodes to assign as children to this node
      See Also:
    • doSetChildren

      protected void doSetChildren(List<GTreeNode> childList)
      Sets the children of this node to the given list of child nodes, but does not notify the tree. This method does not have to be called from the swing thread. It is intended to be used by background threads that want to populate all or part of the tree, but wait until the bulk operations are completed before notifying the tree.
      Parameters:
      childList - the list of child nodes to assign as children to this node
    • doAddNode

      protected void doAddNode(GTreeNode node)
      Adds a node to this node's children. Must be called from the swing thread.
      Parameters:
      node - the node to add as a child to this node
    • doAddNode

      protected void doAddNode(int index, GTreeNode node)
      Adds a node to this node's children at the given index and notifies the tree. Must be called from the swing thread.
      Parameters:
      index - the index at which to add the new node
      node - the node to add as a child to this node
    • doRemoveNode

      protected void doRemoveNode(GTreeNode node)
      Removes the node from this node's children and notifies the tree. Must be called from the swing thread.
      Parameters:
      node - the node to remove
    • doAddNodes

      protected void doAddNodes(List<GTreeNode> nodes)
      Adds the given nodes to this node's children. Must be called from the swing thread.
      Parameters:
      nodes - the nodes to add to the children this node
    • clone

      public GTreeNode clone() throws CloneNotSupportedException
      Creates a clone of this node. The clone should contain a shallow copy of all the node's attributes except that the parent and children are null.
      Overrides:
      clone in class Object
      Returns:
      the clone of this object.
      Throws:
      CloneNotSupportedException - if some implementation prevents itself from being cloned.
    • dispose

      public void dispose()
    • isInProgress

      public final boolean isInProgress()
      Returns true if the node is in the process of loading its children. See GTreeSlowLoadingNode
      Returns:
      true if the node is in the process of loading its children.
    • isLoaded

      public boolean isLoaded()
      True if the children for this node have been loaded yet. Some GTree nodes are lazy in that they don't load their children until needed. Nodes that have the IN_PROGRESS node as it child is considered loaded if in the swing thread, otherwise they are considered not loaded.
      Returns:
      true if the children for this node have been loaded.
    • getTree

      public GTree getTree()
      Returns the GTree that this node is attached to
      Returns:
      the GTree that this node is attached to
    • doFireNodeAdded

      protected void doFireNodeAdded(GTreeNode newNode)
    • doFireNodeRemoved

      protected void doFireNodeRemoved(GTreeNode removedNode, int index)
    • doFireNodeStructureChanged

      protected void doFireNodeStructureChanged()
    • doFireNodeChanged

      protected void doFireNodeChanged()