Coverage Report - wjhk.jupload2.gui.filepanel.treeview.MyTreeNode
 
Classes in this File Line Coverage Branch Coverage Complexity
MyTreeNode
N/A
N/A
1
 
 1  
 //
 2  
 // $Id$
 3  
 //
 4  
 // jupload - A file upload applet.
 5  
 //
 6  
 // Copyright 2015 The JUpload Team
 7  
 //
 8  
 // Created: 7 févr. 2015
 9  
 // Creator: etienne_sf
 10  
 // Last modified: $Date$
 11  
 //
 12  
 // This program is free software; you can redistribute it and/or modify
 13  
 // it under the terms of the GNU General Public License as published by
 14  
 // the Free Software Foundation; either version 2 of the License, or
 15  
 // (at your option) any later version.
 16  
 //
 17  
 // This program is distributed in the hope that it will be useful,
 18  
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 19  
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 20  
 // GNU General Public License for more details.
 21  
 //
 22  
 // You should have received a copy of the GNU General Public License
 23  
 // along with this program; if not, write to the Free Software
 24  
 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 25  
 
 26  
 package wjhk.jupload2.gui.filepanel.treeview;
 27  
 
 28  
 import java.util.List;
 29  
 
 30  
 import javax.swing.event.TreeModelEvent;
 31  
 import javax.swing.tree.TreeModel;
 32  
 import javax.swing.tree.TreePath;
 33  
 
 34  
 import wjhk.jupload2.gui.filepanel.FilePanelFlatDataModel2;
 35  
 
 36  
 /**
 37  
  * @author etienne_sf
 38  
  */
 39  
 public interface MyTreeNode {
 40  
 
 41  
     /**
 42  
      * Returns the list of direct children for this node
 43  
      *
 44  
      * @return the children for this node
 45  
      */
 46  
     List<MyTreeNode> getChildren();
 47  
 
 48  
     /**
 49  
      * Returns the number of direct children for this node
 50  
      * 
 51  
      * @return Number of direct children
 52  
      */
 53  
     int getChildCount();
 54  
 
 55  
     /**
 56  
      * Returns the number of children (direct children children of children...) for this node
 57  
      * 
 58  
      * @return Number of direct children
 59  
      */
 60  
     public int getTotalChildCount();
 61  
 
 62  
     /**
 63  
      * Get the child with the given index number, from the direct children of this node
 64  
      * 
 65  
      * @param index
 66  
      * @return
 67  
      */
 68  
     public MyTreeNode getChild(int index);
 69  
 
 70  
     /**
 71  
      * Get the child with the name, from the direct children of this node.
 72  
      * 
 73  
      * @param name The name of the item we're looking for. For a file, it's the filename, not the absolute path.
 74  
      * @return The child with this name, or null of no such child exists
 75  
      */
 76  
     public MyTreeNode getChild(String name);
 77  
 
 78  
     /**
 79  
      * Returns the parent for this node.
 80  
      * 
 81  
      * @return
 82  
      */
 83  
     public MyTreeNode getParent();
 84  
 
 85  
     /**
 86  
      * Sets the parent for this node.
 87  
      * 
 88  
      * @return
 89  
      */
 90  
     public void setParent(MyTreeNode parent);
 91  
 
 92  
     /**
 93  
      * Sets the tree model for the current node. Necessary to properly send the {@link TreeModelEvent}.
 94  
      * 
 95  
      * @param model The model in which this node is, and to which {@link TreeModelEvent} must be sent.
 96  
      */
 97  
     public void setTreeModel(TreeModel model);
 98  
 
 99  
     /**
 100  
      * Sets the flat model for the current node. It is necessary, as this flat model must be kept synchronized with the
 101  
      * tree model. Each adding o f a child in the tree, must also be done in the flat model.
 102  
      * 
 103  
      * @param model The model, which must be kept synchronized.
 104  
      */
 105  
     public void setFlatModel(FilePanelFlatDataModel2 model);
 106  
 
 107  
     /**
 108  
      * Removes a child from the children of this node.
 109  
      * 
 110  
      * @param child The child to remove
 111  
      * @throws IllegalArgumentException If child is not an actual child of the current {@link FolderNode}.
 112  
      */
 113  
     public void removeChild(MyTreeNode child);
 114  
 
 115  
     /** Indicates whether this node has children or not ('terminal' node) */
 116  
     boolean isLeaf();
 117  
 
 118  
     /**
 119  
      * Get the {@link TreePath} for this node, in the hierarchy.
 120  
      * 
 121  
      * @return
 122  
      */
 123  
     public TreePath getTreePath();
 124  
 
 125  
 }