Example #1
0
        public ICollection <TItem> Hide(IEnumerable <TItem> elements)
        {
            var worker = new WalkerWorker1 <TItem, TEdge> (this.Sink);

            foreach (var item in elements)
            {
                worker.Remove(item);
                foreach (var edge in this.Sink.Twig(item))
                {
                    worker.Remove(edge);
                }
            }

            RevoveEdgesOfChanged(worker);

            CommitRemove(worker);
            //List<TItem> changes = new List<TItem>(WalkerWorker.Changes);
            //WalkerWorker.Changes.Clear();

            //WalkerWorker.RemoveOrphans(this.View);
            //CommitRemove(WalkerWorker);
            //changes.AddRange(WalkerWorker.Changes);

            //WalkerWorker.Changes.Clear();
            return(worker.Affected);
        }
Example #2
0
 protected virtual void RevoveEdgesOfChanged(WalkerWorker1 <TItem, TEdge> worker)
 {
     foreach (var edge in worker.Affected.OfType <TEdge>().ToArray())
     {
         if (worker.Changed(edge.Root) || worker.Changed(edge.Leaf))
         {
             worker.Remove(edge);
         }
     }
 }
Example #3
0
        public virtual ICollection <TItem> CollapseToFocused(IEnumerable <TItem> elements)
        {
            var worker = new WalkerWorker1 <TItem, TEdge> (this.Sink);

            NeverRemove(worker, elements);

            foreach (TItem item in Sink)
            {
                worker.RemoveCollapsed(item, Sink);
                worker.Remove(item);
            }

            CommitRemove(worker);

            return(worker.Affected);
        }