package org.chartsy.main.favorites.nodes;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.openide.nodes.Index;
import org.openide.nodes.Node;
/**
*
* @author Viorel
*/
public class RootAPIChildren extends Index.ArrayChildren
{
private RootAPI root;
public RootAPIChildren(RootAPI root)
{
this.root = root;
}
protected @Override List<Node> initCollection()
{
if (nodes == null)
nodes = new ArrayList<Node>();
for (FolderAPI folder : root.getFolders())
nodes.add(new FolderAPINode(folder));
for (StockAPI stock : root.getStocks())
nodes.add(new StockAPINode(stock));
return (List<Node>) nodes;
}
public void addNewFolder(FolderAPINode node)
{
ArrayList<Node> list = new ArrayList<Node>();
Iterator<Node> iterator = nodes.iterator();
while (iterator.hasNext())
list.add(iterator.next());
list.add(getLastFolderIndex(), node);
nodes = list;
refresh();
}
private int getLastFolderIndex()
{
int i = -1;
Iterator<Node> iterator = nodes.iterator();
while (iterator.hasNext())
{
Node node = iterator.next();
if (node instanceof FolderAPINode)
i++;
else if (node instanceof StockAPINode)
return i+1;
}
return -1;
}
}