import java.io.File;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
public class FileTreeModel implements TreeModel{
private File root;
public FileTreeModel(File f){
root = f;
}
@Override
public Object getChild(Object parent, int index) {
if(parent==null)
return null;
File[] files = ((File)parent).listFiles();
return files[index];
}
@Override
public int getChildCount(Object parent) {
if(parent==null)
return 0;
return ((File)parent).listFiles().length;
}
@Override
public int getIndexOfChild(Object parent, Object child) {
if(parent==null)
return 0;
File[] files = ((File)parent).listFiles();
for(int i =0; i < files.length;i++){
if(files[i].equals((File)child)){
return i;
}
}
return 0;
}
@Override
public Object getRoot() {
return root;
}
@Override
public boolean isLeaf(Object node) {
if(node instanceof File)
return ((File)node).isFile();
return false;
}
@Override
public void removeTreeModelListener(TreeModelListener l) {
}
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
}
@Override
public void addTreeModelListener(TreeModelListener l) {
}
}