public override void Execute(TreeListNode node)
        {
            bool visibleChildNodesResult = false;

            if (node.Nodes.Count != 0)
            {
                FilterNodesOperation childNodesOperation = new FilterNodesOperation(filterConditions);
                node.TreeList.NodesIterator.DoLocalOperation(childNodesOperation, node.Nodes);
                visibleChildNodesResult = childNodesOperation.HasVisibleChildNodes;
                filteredVisibleNodes.AddRange(childNodesOperation.FilteredVisibleNodes);
            }

            bool nodeFiltered = IsNodeFiltered(node);

            if (!nodeFiltered || visibleChildNodesResult)
            {
                hasVisibleChildNodes = true;
            }

            if (nodeFiltered && visibleChildNodesResult)
            {
                filteredVisibleNodes.Add(node);
            }

            node.Visible = !nodeFiltered || visibleChildNodesResult;
        }
Exemplo n.º 2
0
 public override void FilterNodes()
 {
     this.BeginUpdate();
     try
     {
         FilterNodesOperation filterNodesOperation = new FilterNodesOperation(columnFilterConditions);
         this.NodesIterator.DoLocalOperation(filterNodesOperation, this.Nodes);
         filteredVisibleNodes.AddRange(filterNodesOperation.FilteredVisibleNodes);
     } finally
     {
         this.EndUpdate();
     }
 }