public DefaultSearchBlockViewModel(DefaultSearchCriteria defaultSearchCriteria, ISearchHistory history, Action <SearchSuggestionViewModel> applySuggestionAction) : base(defaultSearchCriteria, applySuggestionAction) { _history = history; foreach (var(keyword, exampleTerm) in defaultSearchCriteria.ExamplesFromEachSubCriteria()) { Examples.Add(new SearchBlockExampleViewModel($" {keyword}: ", exampleTerm)); } }
public SearchViewModel(IPipeline pipeline, ISearchEngine searchEngine, ISearchHistory searchHistory) { _pipeline = pipeline; SearchEngine = searchEngine; SearchHistory = searchHistory; SearchEngine.SearchParsed += SearchEngineOnSearchParsed; _searchTimer = new DispatcherTimer(DispatcherPriority.Input) { Interval = TimeSpan.FromMilliseconds(400) }; _searchTimer.Tick += SearchTimerOnTick; }
public Presenter( IView view, ISearchManager searchManager, ISearchHistory searchHistory, IUserDefinedSearches userDefinedSearches, ILogSourcesManager sourcesManager, IFiltersFactory filtersFactory, ISearchResultsPanelView searchResultsPanelView, LoadedMessages.IPresenter loadedMessagesPresenter, SearchResult.IPresenter searchResultPresenter, StatusReports.IPresenter statusReportFactory, SearchEditorDialog.IPresenter searchEditorDialog, SearchesManagerDialog.IPresenter searchesManagerDialog, IAlertPopup alerts ) { this.view = view; this.searchManager = searchManager; this.searchHistory = searchHistory; this.filtersFactory = filtersFactory; this.searchResultsPanelView = searchResultsPanelView; this.loadedMessagesPresenter = loadedMessagesPresenter; this.searchResultPresenter = searchResultPresenter; this.statusReportFactory = statusReportFactory; this.sourcesManager = sourcesManager; this.searchesManagerDialog = searchesManagerDialog; this.alerts = alerts; this.quickSearchPresenter = new QuickSearchTextBox.Presenter(view.SearchTextBox); this.searchEditorDialog = searchEditorDialog; InvalidateSearchHistoryList(); searchHistory.OnChanged += (sender, args) => InvalidateSearchHistoryList(); sourcesManager.OnLogSourceAdded += (sender, e) => UpdateSearchControls(); sourcesManager.OnLogSourceRemoved += (sender, e) => UpdateSearchControls(); UpdateSearchControls(); UpdateUserDefinedSearchDependentControls(false); view.SetPresenter(this); quickSearchPresenter.OnSearchNow += (sender, args) => { if (quickSearchPresenter.Text != "") { DoSearch(reverseDirection: args.ReverseSearchModifier); } }; quickSearchPresenter.OnCancelled += (sender, args) => { bool searchCancelled = false; foreach (var r in searchManager.Results.Where(r => r.Status == SearchResultStatus.Active)) { r.Cancel(); searchCancelled = true; } if (!searchCancelled && InputFocusAbandoned != null) { InputFocusAbandoned(this, EventArgs.Empty); } }; quickSearchPresenter.SetSuggestionsHandler((sender, e) => { if (e.Etag == searchListEtag) { return; } foreach (var i in searchHistory.Items) { var description = new StringBuilder(); GetUserFriendlySearchHistoryEntryDescription(i, description); e.AddItem(new QuickSearchTextBox.SuggestionItem() { DisplayString = description.ToString(), SearchString = (i as ISimpleSearchHistoryEntry)?.Options.Template, Category = "recent searches", Data = i }); } foreach (var i in userDefinedSearches.Items) { var description = new StringBuilder(); GetUserFriendlySearchHistoryEntryDescription(i, description); e.AddItem(new QuickSearchTextBox.SuggestionItem() { DisplayString = description.ToString(), LinkText = "edit", Category = "Filters", Data = i }); } e.ConfigureCategory("Filters", linkText: "manage", alwaysVisible: true); e.Etag = searchListEtag; }); quickSearchPresenter.OnCurrentSuggestionChanged += (sender, e) => { var datum = quickSearchPresenter.CurrentSuggestion?.Data; var searchHistoryEntry = datum as ISimpleSearchHistoryEntry; if (searchHistoryEntry != null) { ReadControlsFromSelectedHistoryEntry(searchHistoryEntry); } UpdateUserDefinedSearchDependentControls( datum is IUserDefinedSearch || datum is IUserDefinedSearchHistoryEntry); }; quickSearchPresenter.OnSuggestionLinkClicked += (sender, e) => { var uds = e.Suggestion.Data as IUserDefinedSearch; if (uds == null) { return; } searchEditorDialog.Open(uds); }; quickSearchPresenter.OnCategoryLinkClicked += (sender, e) => { HandleSearchesManagerDialog(); }; userDefinedSearches.OnChanged += (sender, e) => { InvalidateSearchHistoryList(); }; }
public Presenter( Settings.IGlobalSettingsAccessor settings, IRecentlyUsedEntities mru, ISearchHistory searchHistory, IView view) { this.view = view; this.settingsAccessor = settings; this.recentLogsList = mru; this.searchHistory = searchHistory; this.recentLogsListSizeEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.RecentLogsListSizeEditor)); this.searchHistoryDepthEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.SearchHistoryDepthEditor)); this.maxNumberOfSearchResultsEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.MaxNumberOfSearchResultsEditor)); this.logSizeThresholdEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.LogSizeThresholdEditor)); this.logWindowSizeEditor = new LabeledStepperPresenter.Presenter(view.GetStepperView(ViewControl.LogWindowSizeEditor)); this.logSizeThresholdEditor.AllowedValues = new int[] { 1, 2, 4, 8, 12, 16, 24, 32, 48, 64, 80, 100, 120, 160, 200 }; this.logSizeThresholdEditor.Value = 1; this.logWindowSizeEditor.AllowedValues = new int[] { 1, 2, 3, 4, 5, 6, 8, 12, 20, 24 }; this.logWindowSizeEditor.Value = 1; this.searchHistoryDepthEditor.AllowedValues = new int[] { 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300 }; this.searchHistoryDepthEditor.Value = 0; this.maxNumberOfSearchResultsEditor.AllowedValues = new int[] { 1000, 4000, 8000, 16000, 30000, 50000, 70000, 100000, 200000 }; this.maxNumberOfSearchResultsEditor.Value = 1000; this.recentLogsListSizeEditor.AllowedValues = new int[] { 0, 100, 200, 400, 800, 1500 }; this.recentLogsListSizeEditor.Value = 0; view.SetPresenter(this); UpdateView(); }
public UserController(IUserService userService, ISearchHistory searchHistory) { _userService = userService; _searchService = searchHistory; }