public TableDataSourceFindReferencesContext( StreamingFindReferencesPresenter presenter, IFindAllReferencesWindow findReferencesWindow) { presenter.AssertIsForeground(); Presenter = presenter; _findReferencesWindow = findReferencesWindow; // If the window is closed, cancel any work we're doing. _findReferencesWindow.Closed += (s, e) => CancelSearch(); // Remove any existing sources in the window. foreach (var source in findReferencesWindow.Manager.Sources.ToArray()) { findReferencesWindow.Manager.RemoveSource(source); } // And add ourselves as the source of results for the window. findReferencesWindow.Manager.AddSource(this); // After adding us as the source, the manager should immediately call into us to // tell us what the data sink is. Debug.Assert(_tableDataSink != null); }
private void CancelSearch() { Presenter.AssertIsForeground(); _cancellationTokenSource.Cancel(); }