private void mMenSortAscending_Click(object sender, EventArgs e) { tvConnections.BeginUpdate(); ConnectionTree.Sort(tvConnections.Nodes[0], SortOrder.Ascending); tvConnections.EndUpdate(); Runtime.SaveConnectionsBG(); }
private void cMenTreeToolsSortDescending_Click(object sender, EventArgs e) { tvConnections.BeginUpdate(); ConnectionTree.Sort(tvConnections.SelectedNode, SortOrder.Descending); tvConnections.EndUpdate(); Runtime.SaveConnectionsBG(); }
public static void AddSessionsToTree() { TreeView treeView = ConnectionTree.TreeView; if (treeView == null) { return; } if (treeView.InvokeRequired) { treeView.Invoke(new AddSessionsToTreeDelegate(AddSessionsToTree)); return; } foreach (Provider provider in Providers) { TreeNode rootTreeNode = provider.RootTreeNode; bool inUpdate = false; List <ConnectionInfo> savedSessions = new List <ConnectionInfo>(provider.GetSessions()); if (!IsProviderEnabled(provider) || savedSessions == null || savedSessions.Count == 0) { if (rootTreeNode != null && treeView.Nodes.Contains(rootTreeNode)) { treeView.BeginUpdate(); treeView.Nodes.Remove(rootTreeNode); treeView.EndUpdate(); } continue; } if (!treeView.Nodes.Contains(rootTreeNode)) { if (!inUpdate) { treeView.BeginUpdate(); inUpdate = true; } treeView.Nodes.Add(rootTreeNode); } List <TreeNode> newTreeNodes = new List <TreeNode>(); foreach (PuttySessionInfo sessionInfo in savedSessions) { TreeNode treeNode = default(TreeNode); bool isNewNode = false; if (rootTreeNode.Nodes.ContainsKey(sessionInfo.Name)) { treeNode = rootTreeNode.Nodes[sessionInfo.Name]; isNewNode = false; } else { treeNode = ConnectionTreeNode.AddNode(TreeNodeType.PuttySession, sessionInfo.Name); if (treeNode == null) { continue; } treeNode.Name = treeNode.Text; treeNode.ImageIndex = (int)TreeImageType.ConnectionClosed; treeNode.SelectedImageIndex = (int)TreeImageType.ConnectionClosed; isNewNode = true; } sessionInfo.RootPuttySessionsInfo = provider.RootInfo; sessionInfo.TreeNode = treeNode; //sessionInfo.IInheritable.TurnOffInheritanceCompletely(); treeNode.Tag = sessionInfo; if (isNewNode) { newTreeNodes.Add(treeNode); } } foreach (TreeNode treeNode in rootTreeNode.Nodes) { if (!savedSessions.Contains((ConnectionInfo)treeNode.Tag)) { if (!inUpdate) { treeView.BeginUpdate(); inUpdate = true; } rootTreeNode.Nodes.Remove(treeNode); } } if (!(newTreeNodes.Count == 0)) { if (!inUpdate) { treeView.BeginUpdate(); inUpdate = true; } rootTreeNode.Nodes.AddRange(newTreeNodes.ToArray()); } if (inUpdate) { ConnectionTree.Sort(rootTreeNode, SortOrder.Ascending); rootTreeNode.Expand(); treeView.EndUpdate(); } } }