/// <summary> /// Searching a contact downwards the treeview /// </summary> /// <param name="node"></param> /// <param name="pattern"></param> private void FindNext(RosterNode node, string pattern) { if ( (node.NodeType == RosterNodeType.RootNode || node.NodeType == RosterNodeType.GroupNode) && node.Nodes.Count > 0 && !node.IsExpanded ) { node.Expand(); } if (node.NextVisibleNode != null) { node = node.NextVisibleNode as RosterNode; if (node.NodeType == RosterNodeType.RosterNode && node.Text.ToLower().Contains(pattern.ToLower())) { treeView.SelectedNode = node; node.EnsureVisible(); treeView.Focus(); } else { FindNext(node, pattern); } } }
/// <summary> /// Moves a Node from the online section to the offline section or vice versa /// </summary> /// <param name="rdata"></param> /// <param name="from"></param> /// <param name="to"></param> private void MoveRoster(RosterData rdata, RosterNode from, RosterNode to) { RosterNode groupNode; string groupName = rdata.Group; groupNode = GetGroup(to, groupName); if (groupNode == null) { groupNode = AddGroup(groupName, to); } RosterNode newNode = rdata.RosterNode.Clone() as RosterNode; groupNode.Nodes.Add(newNode); // Expand all groupes in the Online Node if (to == m_RootOnline) { groupNode.Expand(); m_RootOnline.Expand(); } TreeNode Parent = rdata.RosterNode.Parent; rdata.RosterNode.Remove(); rdata.RosterNode = null; rdata.RosterNode = newNode; if (m_HideEmptyGroups) { if (Parent.Nodes.Count == 0) { Parent.Remove(); } } }
/// <summary> /// Searching a contact downwards the treeview /// </summary> /// <param name="node"></param> /// <param name="pattern"></param> private void FindNext(RosterNode node, string pattern) { if ( (node.NodeType == RosterNodeType.RootNode || node.NodeType == RosterNodeType.GroupNode) && node.Nodes.Count > 0 && !node.IsExpanded ) node.Expand(); if (node.NextVisibleNode != null) { node = node.NextVisibleNode as RosterNode; if ( node.NodeType == RosterNodeType.RosterNode && node.Text.ToLower().Contains(pattern.ToLower()) ) { treeView.SelectedNode = node; node.EnsureVisible(); treeView.Focus(); } else FindNext(node, pattern); } }