Ejemplo n.º 1
0
 private void RestoreExpansion()
 {
     foreach (object item in m_expandedItems)
     {
         TreeControlAdapter.Expand(item);
     }
 }
Ejemplo n.º 2
0
 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);
            }
        }
Ejemplo n.º 4
0
 /// <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);
         }
     }
 }
Ejemplo n.º 5
0
        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);
                }
            }
        }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        /// <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);
            }
        }
Ejemplo n.º 9
0
 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));                
     }
 }
Ejemplo n.º 10
0
 /// <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);
     }
 }