private void ParseChildren(Layer layer, TreeNode nodesParent)
{
foreach (INode node in layer.Nodes)
{
ParseNode(node, nodesParent);
}
}
private void ParseNode(INode nodeCur, TreeNode nodesParent)
{
// Create corresponding TreeNode
TreeNode nodeTreeTemp = new TreeNode(nodeCur.Name);
nodeTreeTemp.Tag = nodeCur;
// if nodeCur is CompositeNode
// reflect its hierarchy
if (nodeCur is ICompositeNode)
{
ICompositeNode nodeComposite = nodeCur as ICompositeNode;
if (nodeComposite != null)
{
// Parse composite node's children
nodeTreeTemp.ImageIndex = 2;
nodeTreeTemp.SelectedImageIndex = 2;
ParseChildren(nodeComposite, nodeTreeTemp);
nodeTreeTemp.Text = (nodeComposite as INode).Name + " (" + nodeComposite.ChildCount + ")";
}
}
else
{
nodeTreeTemp.Tag = nodeCur;
nodeTreeTemp.ImageIndex = 1;
nodeTreeTemp.SelectedImageIndex = 1;
}
// Add created TreeNode to nodesParent
nodesParent.Nodes.Add(nodeTreeTemp);
}
|