Exemple #1
0
        private void UpdateCheckboxState(TreeNodeCollection InTreeNodesList)
        {
            foreach (TreeNode TreeNode in InTreeNodesList)
            {
                var InternalNode = TreeNode.Tag as FilterTagsTreeNode;
                if (InternalNode != null)
                {
                    if (InternalNode.AllocTagNode.GetTag().HasValue)
                    {
                        TreeNode.Checked = ActiveTags.Contains(InternalNode.AllocTagNode.GetTag().Value);
                    }
                    else
                    {
                        // Hide the checkbox on non-tag nodes
                        FilterTagsTreeView.SetCheckBoxImageState(TreeNode, 0);
                    }
                }

                UpdateCheckboxState(TreeNode.Nodes);
            }
        }
Exemple #2
0
        private void PopulateTagFilterHierarchy(string[] InFilterTerms)
        {
            UseWaitCursor = true;

            // Build the internal tree
            {
                InternalTreeRoot = new FilterTagsTreeNode(null);

                var RootNode = FStreamInfo.GlobalInstance.TagHierarchy.GetRootNode();
                BuildInternalTree(InFilterTerms, RootNode, InternalTreeRoot);
            }

            // Build the WinForm tree
            if (FilterTagsTreeView.Handle != null)             // This if statement exists to force the native tree view handle to be created
            {
                bool bIsFiltering = InFilterTerms != null && InFilterTerms.Length > 0;

                FilterTagsTreeView.BeginUpdate();

                FilterTagsTreeView.AfterCheck   -= FilterTagsTreeView_AfterCheck;
                FilterTagsTreeView.BeforeExpand -= FilterTagsTreeView_BeforeExpand;

                FilterTagsTreeView.Nodes.Clear();
                BuildFilterTagsTree(InternalTreeRoot, FilterTagsTreeView.Nodes, bIsFiltering);
                UpdateCheckboxState(FilterTagsTreeView.Nodes);

                if (bIsFiltering)
                {
                    FilterTagsTreeView.ExpandAll();
                }

                FilterTagsTreeView.AfterCheck   += FilterTagsTreeView_AfterCheck;
                FilterTagsTreeView.BeforeExpand += FilterTagsTreeView_BeforeExpand;

                FilterTagsTreeView.EndUpdate();
            }

            UseWaitCursor = false;
        }