/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.demo.filebrowser;
import java.io.File;
import java.io.FileFilter;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import org.openide.filesystems.FileObject;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.ChildFactory;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
import org.openide.util.lookup.Lookups;
/**
*
* @author edwin
*/
public class FileNode extends AbstractNode {
private FileObject key=null;
public FileNode(Children children) {
super(children);
}
public FileNode(FileObject key) {
super(Children.LEAF, Lookups.singleton(key));
this.key=key;
}
private static final class CustomFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
return pathname.isFile();
}
};
public static class FileNodeChildren extends ChildFactory<FileObject> {
private List<FileObject> src = null;
public FileNodeChildren(FileObject src) {
if (src != null) {
this.src=Collections.list((Enumeration<FileObject>)src.getData(false));
}
}
@Override
protected boolean createKeys(List<FileObject> toPopulate) {
if (src != null) {
toPopulate.addAll(src);
}
return true;
}
@Override
protected Node createNodeForKey(FileObject key) {
Node node = new FileNode(key);
node.setDisplayName(key.getNameExt());
node.setShortDescription(key.getNameExt());
return node;
}
}
}