/// <summary> /// Add a workspace at the end of the folder specified. Throw an /// exception on error. /// </summary> public KwsBrowserKwsNode AddKws(Workspace kws, KwsBrowserFolderNode dstFolder, bool firstFlag) { if (m_kwsTree.ContainsKey(kws.InternalID)) throw new Exception(Base.GetKwsString() + "already exist"); if (dstFolder.IsRoot()) throw new Exception(Base.GetKwsString() + " must be in folders"); KwsBrowserKwsNode node = new KwsBrowserKwsNode(kws); dstFolder.AddNode(node, firstFlag ? 0 : dstFolder.KwsNodes.Count); m_kwsTree[kws.InternalID] = node; return node; }
/// <summary> /// Move the node at the source specified to the destination specified /// with the index specified. Throw an exception on error. /// </summary> public void Move(KwsBrowserNode srcNode, KwsBrowserFolderNode dstFolder, String dstName, int dstIndex) { String MoveCheckRes = MoveCheck(srcNode, dstFolder, dstName, dstIndex); if (MoveCheckRes != null) throw new Exception(MoveCheckRes); // Adjust the destination index if we're moving the source node // to the last index of a different folder than its parent. if (dstFolder.GetNodeByID(srcNode.ID) == null && dstIndex + 1 == dstFolder.KwsNodes.Count) { dstIndex++; } srcNode.Parent.RemoveNode(srcNode); if (srcNode is KwsBrowserFolderNode) ((KwsBrowserFolderNode)srcNode).FolderName = dstName; dstFolder.AddNode(srcNode, dstIndex); // The workspace list has changed. m_wm.OutlookBroker.OnKwsListChanged(); }
/// <summary> /// Add a folder with the name specified at the end of the folder /// specified. Throw an exception on error. /// </summary> public KwsBrowserFolderNode AddFolder(KwsBrowserFolderNode dstFolder, String name) { if (!KwsBrowserFolderNode.IsValidFolderName(name)) throw new Exception("invalid folder name"); KwsBrowserFolderNode node = new KwsBrowserFolderNode(name); if (dstFolder.GetNodeByID(node.ID) != null) throw new Exception("destination already exists"); dstFolder.AddNode(node, dstFolder.FolderNodes.Count); return node; }