private void RestoreExpansion() { foreach (object item in m_expandedItems) { TreeControlAdapter.Expand(item); } }
private void RestoreExpansion() { foreach (string category in m_expandedCollections) { TreeControlAdapter.Expand(category); } }
private void TreeControl_NodeExpandedChanged(object sender, TreeControl.NodeEventArgs e) { var treeView = TreeView.As <FilteredTreeView>(); // early exit if (m_updating || !m_searching || e.Node.Tag == null || treeView == null) { return; } if (m_toExpand != null) { var node = m_toExpand; m_toExpand = null; try { m_updating = true; TreeControlAdapter.Expand(node.Tag); treeView.RestoreExpansion(e.Node, TreeControlAdapter); } finally { m_updating = false; } } else if (e.Node.Expanded && RestoreSubExpansion) { treeView.RestoreExpansion(e.Node, TreeControlAdapter); } }
/// <summary> /// Restores subtree's node expansion states, if remembered</summary> /// <param name="treeControlAdapter">TreeControlAdapter that performs node expansion</param> /// <param name="parent">Node whose subtree's expansion state was remembered</param> public void RestoreExpansion(TreeControlAdapter treeControlAdapter, TreeControl.Node parent) { if (parent.Tag != null && m_expandedItems.ContainsKey(parent.Tag)) { foreach (object item in m_expandedItems[parent.Tag]) { treeControlAdapter.Expand(item); } } }
private void ExpandAllMatches() { Tree <object> tree = new Tree <object>(TreeView.Root); BuildTree(tree); foreach (Tree <object> node in tree.PreOrder) { if (!node.IsLeaf) { TreeControlAdapter.Expand(node.Value); } } }
internal void RestoreExpansion(TreeControl.Node parent, TreeControlAdapter treeAdapter) { if (parent.Tag == null) { return; } List <object> expandedItems; if (m_expandedNodeMap.TryGetValue(parent.Tag, out expandedItems)) { m_expandedNodeMap.Remove(parent.Tag); expandedItems.ForEach(item => treeAdapter.Expand(item)); } }
private void searchInput_Updated(object sender, EventArgs e) { if (TreeControl.Root == null) { return; } if (m_searchInput.IsNullOrEmpty()) { if (m_searching) { // get the tree control to force-reload the tree data m_paletteTreeAdapter.RefreshControl(); RestoreExpansion(); } m_searching = false; return; } else { if (!m_searching) { RememberExpansion(); } m_searching = true; } m_paletteTreeAdapter.RefreshControl(); // expand categories that have matched children foreach (object category in m_paletteTreeAdapter.GetChildren(m_paletteTreeAdapter)) { foreach (object typeName in m_paletteTreeAdapter.GetChildren(category)) { ItemInfo info = new WinFormsItemInfo(); m_paletteTreeAdapter.GetInfo(typeName, info); if (m_searchInput.Matches(info.Label)) { TreeControlAdapter.Expand(category); break; } } } RestoreExpansion(); }
/// <summary> /// Performs custom actions after changing a node's Expanded property</summary> /// <param name="sender">Sender</param> /// <param name="e">Event args</param> void treeControl_NodeExpandedChanged(object sender, TreeControl.NodeEventArgs e) { if (!m_searching) { return; } var filteredTreeView = TreeView as FilteredTreeView; if (m_nodeToExpand != null) { TreeControl.Node nodeToExpand = m_nodeToExpand; m_autoExpanding = true; TreeControlAdapter.Expand(m_nodeToExpand.Tag); filteredTreeView.RestoreExpansion(TreeControlAdapter, nodeToExpand); m_nodeToExpand = null; m_autoExpanding = false; } else if (e.Node.Expanded && RestoreSubExpansion) { filteredTreeView.RestoreExpansion(TreeControlAdapter, e.Node); } }
internal void RestoreExpansion(TreeControl.Node parent, TreeControlAdapter treeAdapter) { if (parent.Tag == null) return; List<object> expandedItems; if (m_expandedNodeMap.TryGetValue(parent.Tag, out expandedItems)) { m_expandedNodeMap.Remove(parent.Tag); expandedItems.ForEach(item => treeAdapter.Expand(item)); } }
/// <summary> /// Restores subtree's node expansion states, if remembered</summary> /// <param name="treeControlAdapter">TreeControlAdapter that performs node expansion</param> /// <param name="parent">Node whose subtree's expansion state was remembered</param> public void RestoreExpansion(TreeControlAdapter treeControlAdapter, TreeControl.Node parent) { if (parent.Tag != null && m_expandedItems.ContainsKey(parent.Tag)) { foreach (object item in m_expandedItems[parent.Tag]) treeControlAdapter.Expand(item); } }