internal void PopulateWithSubFolders(WBLocationTreeState treeState, TreeNodeCollection treeNodeCollection, String viewMode, SPFolder parentFolder) { SPFolderCollection subFolders = parentFolder.SubFolders; if (subFolders.Count > 0) { List <SPFolder> folders = new List <SPFolder>(); foreach (SPFolder folder in subFolders) { folders.Add(folder); } folders = folders.OrderBy(o => o.Name).ToList(); foreach (SPFolder folder in folders) { WBFolderTreeNode folderNode = new WBFolderTreeNode(folder); TreeNode node = folderNode.AsTreeNode(); if (folder.SubFolders.Count > 0 || viewMode == VIEW_MODE__REPLACE) { node.Expanded = false; node.PopulateOnDemand = true; if (viewMode == VIEW_MODE__BROWSE_FOLDERS) { node.SelectAction = TreeNodeSelectAction.Select; } else { node.SelectAction = TreeNodeSelectAction.Expand; } } else { node.Expanded = true; node.PopulateOnDemand = false; node.SelectAction = TreeNodeSelectAction.Select; } treeNodeCollection.Add(node); } } else { if (viewMode == VIEW_MODE__REPLACE) { PopulateWithDocuments(treeState, treeNodeCollection, viewMode, parentFolder); } } }
internal void PopulateTreeNode(WBLocationTreeState treeState, TreeNode node, String viewMode) { WBLogging.Debug("Looking for WBFolderTreeNode with path: " + node.ValuePath); WBFolderTreeNode folderTreeNode = this.GetFolderTreeNode(node.ValuePath); if (folderTreeNode == null) { WBLogging.Debug("Did not find WBFolderTreeNode at: " + node.ValuePath); return; } if (folderTreeNode is WBRecordsTypeTreeNode) { WBLogging.Debug("Expanding a records type node: " + node.Text); WBRecordsTypeTreeNode recordsTypeNode = (WBRecordsTypeTreeNode)folderTreeNode; WBRecordsType recordsType = recordsTypeNode.RecordsType; TermCollection childTerms = recordsType.Term.Terms; if (childTerms.Count > 0) { PopulateWithRecordsTypes(treeState, node.ChildNodes, viewMode, recordsTypeNode.Folder, recordsTypeNode.FunctionalArea, recordsType.Taxonomy, childTerms); } else { if (viewMode != VIEW_MODE__NEW) { PopulateWithSubFolders(treeState, node.ChildNodes, viewMode, recordsTypeNode.Folder); } } } else if (folderTreeNode is WBFolderTreeNode) { WBLogging.Debug("Expanding a folder node: " + node.Text); // You shouldn't be here if the view mode was NEW ! PopulateWithSubFolders(treeState, node.ChildNodes, viewMode, folderTreeNode.Folder); } else { WBLogging.Debug("NOT expanding an unrecognised node: " + node.Text + " of type: " + node.GetType()); } }