treenode.java
来自「Ftp服务1.0」· Java 代码 · 共 151 行
JAVA
151 行
package ranab.jar.view;
import java.text.*;
import java.util.*;
import java.util.zip.*;
import javax.swing.tree.*;
/**
* Tree node - represents a <code>ZipEntry</code>.
*
* @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
*/
public
class TreeNode extends Vector {
private String mstAbsPath;
private String mstName;
private TreeNode mParent;
private ZipEntry mEntry;
/**
* Constructor
*/
public TreeNode(TreeNode parent,
String fileName,
ZipEntry entry) {
mstName = fileName;
mParent = parent;
mEntry = entry;
if (parent == null) {
mstAbsPath = mstName;
}
else {
mstAbsPath = parent.getAbsolutePath() + '/' + mstName;
parent.add(this);
}
}
/**
* Get node.
*/
public TreeNode getNode(String nodeAbsName) {
int index = indexOf(nodeAbsName);
if (index == -1) {
return null;
}
return (TreeNode)get(index);
}
/**
* Index of a particular string node.
*/
public int indexOf(String nodeAbsName) {
for(int i=0; i<size(); i++) {
TreeNode node = (TreeNode)get(i);
if (node.mstAbsPath.equals(nodeAbsName)) {
return i;
}
}
return -1;
}
/**
* Index of a particular node.
*/
public int indexOf(TreeNode cnode) {
for(int i=0; i<size(); i++) {
TreeNode node = (TreeNode)get(i);
if (node.mstAbsPath.equals(cnode.mstAbsPath)) {
return i;
}
}
return -1;
}
/**
* Clear all nodes.
*/
public void clear() {
Iterator listIt = listIterator(0);
while (listIt.hasNext()) {
TreeNode nd = (TreeNode)listIt.next();
nd.clear();
}
super.clear();
}
/**
* Get parent node.
*/
public TreeNode getParent() {
return mParent;
}
/**
* Is a folder?
*/
public boolean isLeaf() {
if (mEntry == null) {
return false;
}
return (size() == 0) && (!mEntry.isDirectory());
}
/**
* Get entry - if not a leaf returns null.
*/
public ZipEntry getEntry() {
if (isLeaf()) {
return mEntry;
}
return null;
}
/**
* Get absolute path.
*/
public String getAbsolutePath() {
return mstAbsPath;
}
/**
* Check equality.
*/
public boolean equals(Object obj) {
// check object
if (obj == null) {
return false;
}
if (!(obj instanceof ranab.jar.view.TreeNode)) {
return false;
}
TreeNode nd = (TreeNode)obj;
return mstAbsPath.equals(nd.mstAbsPath);
}
/**
* Get the directory name
*/
public String toString() {
return mstName;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?