/// <summary> /// Insert the children of the parent folder specified recursively. /// </summary> private void AddTvWorkspacesChildNodes(KwsBrowserFolderNode bParent, TreeNodeCollection tnc) { foreach (KwsBrowserNode bNode in bParent.GetNodes()) { KwsBrowserKwsNode bKwsNode = bNode as KwsBrowserKwsNode; KwsBrowserFolderNode bFolderNode = bNode as KwsBrowserFolderNode; if (bKwsNode != null && !bKwsNode.Kws.IsDisplayable()) continue; TreeNode tNode = CreateTvWorkspacesTreeNode(bNode); tnc.Add(tNode); if (bFolderNode != null) { AddTvWorkspacesChildNodes(bFolderNode, tNode.Nodes); if (bFolderNode.ExpandedFlag) tNode.Expand(); } } }
/// <summary> /// Remove the folder specified. Throw an exception on error. /// </summary> public void RemoveFolder(KwsBrowserFolderNode node) { Debug.Assert(SelectedFolder != node); if (node.PermanentFlag) throw new Exception("cannot remove permanent folder"); if (node.GetNodes().Count != 0) throw new Exception("folder isn't empty"); node.Parent.RemoveNode(node); }