/**
* SlingBeans - NetBeans Sling plugin https://github.com/jkan997/SlingBeans
* Licensed under Apache 2.0 license http://www.apache.org/licenses/LICENSE-2.0
*/
package org.jkan997.slingbeans.nbprojects.maven;
import org.jkan997.slingbeans.helper.LogHelper;
import org.jkan997.slingbeans.nbtree.*;
import org.jkan997.slingbeans.slingfs.local.LocalFileObject;
import org.openide.filesystems.FileObject;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
import org.openide.util.lookup.Lookups;
/**
*
* @author jkan997
*/
public class LocalSlingNodeChildren extends Children.Keys {
LocalFileObject parentObject = null;
public LocalSlingNodeChildren(LocalFileObject parentObject) {
this.parentObject = parentObject;
}
public LocalSlingNodeChildren() {
}
@Override
protected void addNotify() {
LocalFileObject[] children = new LocalFileObject[]{};
if (parentObject != null) {
children = parentObject.getChildren();
}
setKeys(children);
}
public void reload() {
LocalFileObject[] children = new LocalFileObject[]{};
if (parentObject != null) {
setKeys(new Object[]{});
children = parentObject.getChildren();
}
setKeys(children);
}
@Override
protected Node[] createNodes(Object o) {
return loadNodes(o, false);
}
protected Node[] loadNodes(Object o, boolean refresh) {
LocalFileObject fo = (LocalFileObject) o;
if (refresh) {
//fo.refresh();
}
LogHelper.logInfo(this, fo.toString());
Children children = null;
if (fo.isLeafNode()) {
children = Children.LEAF;
} else {
children = new LocalSlingNodeChildren(fo);
}
LocalSlingNode localSlingNode = new LocalSlingNode(fo,children);
// result.set
String displayName = fo.getFullName();
if (displayName.length() == 0) {
displayName = "/";
}
localSlingNode.setDisplayName(displayName);
return new Node[]{localSlingNode};
}
}