public void InitCreateRootNodes() { if (ChildrenGetter != null) { IEnumerable oList = ChildrenGetter(null); List <TreeNode> nodes = new List <TreeNode>(); foreach (var o in oList) { TreeNode node = new TreeNode(); ComplateNode(node, o); PostCreateNode(node); nodes.Add(node); } if (SortingMethod != null) { TreeSortEnum sortingMethod = SortingMethod(null); if (sortingMethod != TreeSortEnum.NONE) { nodes.Sort(new TreeComparer(sortingMethod)); } } foreach (var node in nodes) { Nodes.Add(node); } } }
/// <summary> /// Load child nodes /// </summary> /// <param name="parentNode"></param> /// <param name="levelStep">Used for expand until level</param> /// <param name="maxLevelStep">Used for expand until level</param> /// <param name="savedExpansionState">Used for expand saved state level</param> public void LoadBrahch(TreeNode parentNode, int levelStep, int maxLevelStep, IList <string> savedExpansionState) { levelStep++; if (parentNode.Nodes.Count > 0 && parentNode.Nodes[0].Text == PSEVDO_NODE_TEXT) { parentNode.Nodes[0].Remove(); } if (ChildrenGetter != null) { IEnumerable oList = ChildrenGetter(parentNode); List <TreeNode> nodes = new List <TreeNode>(); foreach (var o in oList) { TreeNode node = new TreeNode(); if (ComplateNode != null) { ComplateNode(node, o); } PostCreateNode(node); nodes.Add(node); } if (SortingMethod != null) { TreeSortEnum sortingMethod = SortingMethod(parentNode); if (sortingMethod != TreeSortEnum.NONE) { nodes.Sort(new TreeComparer(sortingMethod)); } } foreach (var node in nodes) { parentNode.Nodes.Add(node); if (savedExpansionState != null) { if (savedExpansionState.Contains(node.FullPath)) { node.Expand(); LoadBrahch(node, levelStep, maxLevelStep, savedExpansionState); } } else if (levelStep < maxLevelStep) { LoadBrahch(node, levelStep, maxLevelStep, savedExpansionState); } } } }
public TreeComparer(TreeSortEnum sort) { this.sort = sort; }