Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
MyTreeNode |
|
| 1.0;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 | } |