Ejemplo n.º 1
0
        private bool ApplyFilter(AnalysisDataNode node, HashSet <IMemberData> filtered)
        {
            var passes = this.PassesFilter(node.Data, filtered);

            if (passes)
            {
                node.Annotate(this.filter);
            }
            else
            {
                node.Deannotate <ISmell>();
            }

            if (node.ChildNodes.Loaded)
            {
                bool childPasses = this.ApplyFilter(node.ChildNodes.Cast <AnalysisDataNode>(), filtered);
                node.Visible = passes || childPasses;
            }
            else
            {
                node.ChildNodes.LazyForEach(n => this.ApplyFilter((AnalysisDataNode)n, filtered));
                node.Visible = passes || AnyDescendantPassesFilter(node.Data, filtered);
            }

            node.VisibleOnlyBecauseOfChildren = node.Visible && !passes;

            return(node.Visible);
        }
Ejemplo n.º 2
0
        private bool ApplyFilter(AnalysisDataNode node, HashSet<IMemberData> filtered)
        {
            var passes = this.PassesFilter(node.Data, filtered);
            if (passes)
                node.Annotate(this.filter);
            else
                node.Deannotate<ISmell>();

            if (node.ChildNodes.Loaded) {
                bool childPasses = this.ApplyFilter(node.ChildNodes.Cast<AnalysisDataNode>(), filtered);
                node.Visible = passes || childPasses;
            }
            else {
                node.ChildNodes.LazyForEach(n => this.ApplyFilter((AnalysisDataNode)n, filtered));
                node.Visible = passes || AnyDescendantPassesFilter(node.Data, filtered);
            }

            node.VisibleOnlyBecauseOfChildren = node.Visible && !passes;

            return node.Visible;
        }