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); }
public ElisionSourceSpansChangedEventRaiser(ElisionSourceSpansChangedEventArgs args) { this.args = args; }
void OnElisionSourceSpansChanged(object sender, ElisionSourceSpansChangedEventArgs e) { UpdateSpans(e.After); }