/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.demo.folderviewer;
import java.awt.Image;
import javax.swing.Action;
import org.demo.folderviewer.actions.SetRootAction;
import org.openide.actions.PropertiesAction;
import org.openide.filesystems.FileObject;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
import org.openide.util.NotImplementedException;
import org.openide.util.actions.SystemAction;
import org.openide.util.lookup.Lookups;
/**
*
* @author edwin
*/
public class FolderNode extends AbstractNode {
public FolderNode(Children children, Lookup lookup) {
super(children, lookup);
}
public FolderNode(Children children) {
super(children);
}
static class RootFolderNode extends FolderNode{
public RootFolderNode(Children children, Lookup lookup) {
super(children, lookup);
}
@Override
public Action[] getActions(boolean context){
return new Action[]{
new SetRootAction(),
SystemAction.get(PropertiesAction.class)
};
}
}
static FolderNode getEmptyRootNode() {
FolderNode node=new RootFolderNode(Children.LEAF, Lookups.singleton("root"));
node.setDisplayName("(*not specified root*)");
return node;
}
public static FolderNode getRootNode(FileObject root){
FolderNode node=new FolderNode.RootFolderNode(Children.create(new FolderChildFactory(root.getFolders(false)),true),Lookups.singleton(root));
node.setDisplayName(root.getName());
return node;
}
@Override
public Image getOpenedIcon(int type) {
return ImageUtilities.loadImage("org/demo/folderviewer/icons/folder_open_16.png", true);
}
@Override
public Image getIcon(int type) {
return ImageUtilities.loadImage("org/demo/folderviewer/icons/folder_close_16.png", true);
}
}