Esempio n. 1
0
 public IProjectionSnapshot Apply(NormalizedSpanCollection spansToElide, NormalizedSpanCollection spansToExpand)
 {
     this.applied = true;
     try
     {
         if (spansToElide == null)
         {
             spansToElide = NormalizedSpanCollection.Empty;
         }
         if (spansToExpand == null)
         {
             spansToExpand = NormalizedSpanCollection.Empty;
         }
         if (spansToElide.Count > 0 || spansToExpand.Count > 0)
         {
             if ((spansToElide.Count > 0) && (spansToElide[spansToElide.Count - 1].End > this.elBuffer.sourceSnapshot.Length))
             {
                 throw new ArgumentOutOfRangeException("spansToElide");
             }
             if ((spansToExpand.Count > 0) && (spansToExpand[spansToExpand.Count - 1].End > this.elBuffer.sourceSnapshot.Length))
             {
                 throw new ArgumentOutOfRangeException("spansToExpand");
             }
             ElisionSourceSpansChangedEventArgs args = this.elBuffer.ApplySpanChanges(spansToElide, spansToExpand);
             if (args != null)
             {
                 ElisionSourceSpansChangedEventRaiser raiser = new ElisionSourceSpansChangedEventRaiser(args);
                 this.baseBuffer.group.EnqueueEvents(raiser, this.baseBuffer);
                 raiser.RaiseEvent(this.baseBuffer, true);
             }
             this.baseBuffer.editInProgress = false;
         }
         else
         {
             this.baseBuffer.editInProgress = false;
         }
     }
     finally
     {
         this.baseBuffer.group.FinishEdit();
     }
     return(this.elBuffer.currentElisionSnapshot);
 }
Esempio n. 2
0
 public ElisionSourceSpansChangedEventRaiser(ElisionSourceSpansChangedEventArgs args)
 {
     this.args = args;
 }
 void OnElisionSourceSpansChanged(object sender, ElisionSourceSpansChangedEventArgs e)
 {
     UpdateSpans(e.After);
 }