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()); } }
internal void PopulateWithRecordsTypes(WBLocationTreeState treeState, TreeNodeCollection treeNodeCollection, String viewMode, SPFolder parentFolder, WBTerm functionalArea, WBTaxonomy recordsTypesTaxonomy, TermCollection recordsTypeTerms) { List <Term> sortedTerms = new List <Term>(); foreach (Term term in recordsTypeTerms) { sortedTerms.Add(term); } sortedTerms = sortedTerms.OrderBy(o => o.Name).ToList(); foreach (Term term in sortedTerms) { WBRecordsType recordsType = new WBRecordsType(recordsTypesTaxonomy, term); bool protectiveZoneOK = true; if (!String.IsNullOrEmpty(treeState.MinimumProtectiveZone)) { protectiveZoneOK = (recordsType.IsZoneAtLeastMinimum(treeState.MinimumProtectiveZone)); } if (recordsType.BranchCanHaveDocuments() && recordsType.IsRelevantToFunctionalArea(functionalArea) && protectiveZoneOK) { SPFolder folder = null; if (viewMode != VIEW_MODE__NEW && parentFolder != null) { folder = parentFolder.WBxGetSubFolder(recordsType.Name); if (folder == null) { WBLogging.Debug("Did not find folder for: " + recordsType.Name); } } if (viewMode == VIEW_MODE__NEW || folder != null) { WBRecordsTypeTreeNode recordsTypeTreeNode = new WBRecordsTypeTreeNode(functionalArea, recordsType, folder); TreeNode node = recordsTypeTreeNode.AsTreeNode(); if (recordsType.Term.TermsCount > 0 || viewMode != VIEW_MODE__NEW) { if (viewMode == VIEW_MODE__BROWSE_FOLDERS && recordsType.Term.TermsCount == 0) { node.SelectAction = TreeNodeSelectAction.Select; } else { node.SelectAction = TreeNodeSelectAction.Expand; } node.Expanded = false; node.PopulateOnDemand = true; } else { node.SelectAction = TreeNodeSelectAction.Select; node.Expanded = true; node.PopulateOnDemand = false; } treeNodeCollection.Add(node); } } } }