/// <summary> /// /// </summary> /// <param name="folderNode"></param> /// <param name="index"></param> /// <returns></returns> int CheckChildren(GTreeNode folderNode, int index) { int cnt = folderNode.numChildren; for (int i = 0; i < cnt; i++) { index++; GTreeNode node = folderNode.GetChildAt(i); if (node.cell == null) { CreateCell(node); } if (node.cell.parent == null) { AddChildAt(node.cell, index); } if (node.isFolder && node.expanded) { index = CheckChildren(node, index); } } return(index); }
/// <summary> /// /// </summary> /// <param name="folderNode"></param> public void ExpandAll(GTreeNode folderNode) { folderNode.expanded = true; int cnt = folderNode.numChildren; for (int i = 0; i < cnt; i++) { GTreeNode node = folderNode.GetChildAt(i); if (node.isFolder) { ExpandAll(node); } } }
/// <summary> /// /// </summary> /// <param name="folderNode"></param> public void CollapseAll(GTreeNode folderNode) { if (folderNode != _rootNode) { folderNode.expanded = false; } int cnt = folderNode.numChildren; for (int i = 0; i < cnt; i++) { GTreeNode node = folderNode.GetChildAt(i); if (node.isFolder) { CollapseAll(node); } } }
/// <summary> /// /// </summary> /// <param name="folderNode"></param> void HideFolderNode(GTreeNode folderNode) { int cnt = folderNode.numChildren; for (int i = 0; i < cnt; i++) { GTreeNode node = folderNode.GetChildAt(i); if (node.cell != null && node.cell.parent != null) { RemoveChild(node.cell); } if (node.isFolder && node.expanded) { HideFolderNode(node); } } }
/// <summary> /// /// </summary> /// <param name="node"></param> void RemoveNode(GTreeNode node) { if (node.cell != null) { if (node.cell.parent != null) { RemoveChild(node.cell); } itemPool.ReturnObject(node.cell); node._cell._treeNode = null; node._cell = null; } if (node.isFolder) { int cnt = node.numChildren; for (int i = 0; i < cnt; i++) { GTreeNode node2 = node.GetChildAt(i); RemoveNode(node2); } } }