public void Setup() { fakeDataAccess = Substitute.For<IDataAccess>(); fakeView = Substitute.For<ISearchView>(); target = new SearchPresenter(fakeDataAccess); target.SearchView = fakeView; }
/// <summary> /// Initializes a new instance of the <see cref="SearchViewPresentationModel"/> class. /// </summary> /// <param name="view">The view associated with this presentation model.</param> /// <param name="configurationService">The configuration service instance used to retrieve configuration values.</param> /// <param name="assetsDataServiceFacade">The service facade used to search for assets.</param> /// <param name="eventAggregator">The event aggregator instance used to publish/subscribe for events.</param> public SearchViewPresentationModel(ISearchView view, IConfigurationService configurationService, IAssetsDataServiceFacade assetsDataServiceFacade, IEventAggregator eventAggregator, ISearchServiceBridge searchServiceBridge) { this.configurationService = configurationService; this.assetsDataServiceFacade = assetsDataServiceFacade; this.assetsDataServiceFacade.LoadAssetsCompleted += this.OnLoadAssetsCompleted; this.searchServiceBridge = searchServiceBridge; this.searchServiceBridge.ResultsAvailable += this.OnLoadAssetsCompleted; this.eventAggregator = eventAggregator; this.eventAggregator.GetEvent <AssetsLoadingEvent>().Subscribe(this.OnAssetsLoading, true); this.searchCommand = new DelegateCommand <string>(this.Search); this.KeyboardActionCommand = new DelegateCommand <Tuple <KeyboardAction, object> >(this.ExecuteKeyboardAction); this.SearchIntegrationEnabled = this.configurationService.GetParameterValueAsBoolean("SearchIntegrationEnabled").GetValueOrDefault(); this.CanSearch = true; this.View = view; this.View.Model = this; if (!this.SearchIntegrationEnabled) { this.Search(null); } }
/// <summary> /// Initializes a new instance of the <see cref="PlaylistViewModel" /> class. /// </summary> /// <param name="publicTransport">The public transport.</param> /// <param name="playlistService">The playlist service.</param> /// <param name="dispatcher">The dispatcher.</param> /// <param name="playerService">The audio player service.</param> /// <param name="fileInfoBuilder">The fileInfoBuilder.</param> /// <param name="configurationManager">The configuration manager.</param> /// <param name="globalHotkeyService">The global hotkey service.</param> /// <param name="windowManager">The window manager.</param> /// <param name="searchView">The search view.</param> public PlaylistViewModel(IPublicTransport publicTransport, IPlaylistService playlistService, IDispatcher dispatcher, IPlayerService playerService, IInfoBuilder <StorableTaggedFile> fileInfoBuilder, IConfigurationManager configurationManager, IGlobalHotkeyService globalHotkeyService, IWindowManager windowManager, ISearchView searchView) { this.publicTransport = Guard.IsNull(() => publicTransport); Guard.IsNull(() => configurationManager); this.dispatcher = Guard.IsNull(() => dispatcher); this.fileInfoBuilder = Guard.IsNull(() => fileInfoBuilder); this.globalHotkeyService = Guard.IsNull(() => globalHotkeyService); this.windowManager = Guard.IsNull(() => windowManager); this.searchView = Guard.IsNull(() => searchView); publicTransport.ApplicationEventBus.Subscribe <PlaylistUpdatedEvent>(OnPlaylistUpdated); publicTransport.ApplicationEventBus.Subscribe <TrackChangedEvent>(OnTrackChanged); searchHotkey = configurationManager.GetValue("Search", new HotkeyDescriptor(ModifierKeys.Control | ModifierKeys.Alt, Key.J), KnownConfigSections.GlobalHotkeys); searchHotkey.ValueChanged += SearchHotkeyOnValueChanged; globalHotkeyService.RegisterHotkey(searchHotkey.Value, OnSearch); searchView.PlayFile += SearchViewOnPlayFile; Files = new List <FileItem>(playlistService.Files.Select(x => new FileItem(x))); var currenTrack = playerService.CurrentTrackAsReadonly; if (null == currenTrack) { return; } SetPlayingFile(playlistService.Files.Find(x => x.Filename == currenTrack.Name)); }
/// <summary> /// Initializes a new instance of the <see cref="BoxDetailsPresenter"/> class. /// </summary> /// <param name="view">The view.</param> public BoxDetailsPresenter(ISearchView view) { if (view == null) { throw new Exception("view cannot be null"); } _searchView = view; }
public SearchPresenter(ISearchView view) { if (view == null) { throw new Exception("view cannot be null"); } this.view = view; }
public SearchPresenter(ISearchView view) { _view = view; _view.Form_Load += InitailLoad; _view.Clear_Click += ClearForm; _view.Search_Click += Search; _view.Selected_Row += Selected; }
public SearchPresenter(ISearchView searchview) { _searchview = searchview; _searchview.Search_event += new EventHandler<EventArgs>(OnSearch); _searchview.Stop_event += new EventHandler<EventArgs>(OnStop); _model.Found_event += new EventHandler<List<System.IO.FileInfo>>(Display); _model.SearchFinished += new EventHandler<EventArgs>(OnFinished); //UpdateView(); }
public SearchPresenter( ISearchView view, IApplicationController applicationController, ISearchRepository searchRepository) { _view = view; _applicationController = applicationController; _searchRepository = searchRepository; }
public SearchPresenter(ISearchView searchview) { _searchview = searchview; _searchview.Search_event += new EventHandler <EventArgs>(OnSearch); _searchview.Stop_event += new EventHandler <EventArgs>(OnStop); _model.Found_event += new EventHandler <List <System.IO.FileInfo> >(Display); _model.SearchFinished += new EventHandler <EventArgs>(OnFinished); //UpdateView(); }
public SearchPresenter(ISearchView view, IErrorLogRepository errorLogRepository, IHttpUserAgentSearchLauncherFactory httpUserAgentSearchLauncherFactory, ISettingsManager settingsManager) { View = view; _repository = errorLogRepository; _httpUserAgentSearchLauncherFactory = httpUserAgentSearchLauncherFactory; _settingsManager = settingsManager; RegisterEvents(); }
public static void ExecuteQuery(ISearchView view, SearchQuery query, SearchAnalytics.GenericEventType sourceEvt = SearchAnalytics.GenericEventType.SearchQueryExecute) { if (view is QuickSearch qs) { qs.SendEvent(sourceEvt, query.searchQuery); } view.context.SetFilteredProviders(query.providerIds); view.SetSearchText(query.searchQuery); }
public void ThrowNullReferenceException_WhenISearchViewIsNull() { ISearchView searchView = null; var advertServiceMock = new Mock <IAdvertServices>(); var pictureServiceMock = new Mock <IPictureServices>(); Assert.That( () => new SearcherPresenter(searchView, advertServiceMock.Object, pictureServiceMock.Object), Throws.InstanceOf <NullReferenceException>()); }
private void OnFilmsViewInformerSearchRequested(object sender, FormLocationInfo info) { SearchForm form = new SearchForm(); if (ShowForm(form, info)) { searchView = form; searchView.SearchStarted += OnSearchViewSearchStarted; } }
public static bool ShowAtPosition(ISearchView quickSearchTool, Rect rect) { var screenPos = GUIUtility.GUIToScreenPoint(new Vector2(rect.x, rect.y)); var screenRect = new Rect(screenPos, rect.size); var filterWindow = ScriptableObject.CreateInstance <FilterWindow>(); filterWindow.searchView = quickSearchTool; filterWindow.ShowAsDropDown(screenRect, Styles.windowSize); return(true); }
protected override void Context() { _view = A.Fake <ISearchView>(); _regionResolver = A.Fake <IRegionResolver>(); _activeSubjectRetriever = A.Fake <IActiveSubjectRetriever>(); _searchResultMapper = A.Fake <ISearchResultToDTOSearchResultMapper>(); _searchTask = A.Fake <ISearchTask>(); _applicationController = A.Fake <IMoBiApplicationController>(); _context = A.Fake <IMoBiContext>(); sut = new SearchPresenter(_view, _regionResolver, _activeSubjectRetriever, _searchResultMapper, _searchTask, _applicationController, _context); }
public static void Disable() { if (searchContext != null) { searchContext.sessionStarted -= OnSearchStarted; searchContext.sessionEnded -= OnSearchEnded; } searchView = null; searchContext = null; }
public static void Enable(ISearchView view) { if (!SearchSettings.debug) { return; } searchView = view; searchContext = view.context; Refresh(); }
public static void ShowAtPosition(ISearchView quickSearchTool, SearchContext context, Rect screenRect) { var window = ScriptableObject.CreateInstance <SearchQueryCreateWindow>(); window.m_SearchView = quickSearchTool; window.m_Context = context; window.m_Description = context.searchText; window.m_QueryFolder = SearchSettings.queryFolder; window.m_QueryFileName = SearchQuery.RemoveInvalidChars(context.searchText); window.ShowAsDropDown(screenRect, Styles.windowSize); }
public static void Enable(ISearchView view) { if (!SearchSettings.debug) { return; } searchView = view; searchContext = view.context; searchContext.sessionStarted += OnSearchStarted; searchContext.sessionEnded += OnSearchEnded; Refresh(); }
/// <summary> /// Initializes a new instance of the <see cref="SearchViewPresentationModel"/> class. /// </summary> /// <param name="view">The view associated with this presentation model.</param> /// <param name="configurationService">The configuration service instance used to retrieve configuration values.</param> /// <param name="assetsDataServiceFacade">The service facade used to search for assets.</param> /// <param name="eventAggregator">The event aggregator instance used to publish/subscribe for events.</param> public SearchViewPresentationModel(ISearchView view, IConfigurationService configurationService, IAssetsDataServiceFacade assetsDataServiceFacade, IEventAggregator eventAggregator) { this.configurationService = configurationService; this.assetsDataServiceFacade = assetsDataServiceFacade; this.eventAggregator = eventAggregator; this.assetsDataServiceFacade.LoadAssetsCompleted += this.DataServiceFacade_LoadAssetsCompleted; this.View = view; this.searchCommand = new DelegateCommand <string>(this.Search); this.View.Model = this; this.Search(null); }
public static void Draw(SearchContext context, ISearchView view, SearchField searchField) { if (!enabled) { return; } var evt = Event.current; if (evt.type == EventType.MouseDown && !position.Contains(evt.mousePosition)) { evt.Use(); Clear(); return; } // Check if the cache filtered list should be updated if (evt.type == EventType.Repaint && !context.searchText.Equals(s_LastInput, StringComparison.Ordinal)) { UpdateCompleteList(searchField.GetTextEditor()); } if (s_FilteredList == null) { return; } var selected = DrawItems(evt, out var proposition); if (proposition.valid) { if (proposition.moveCursor == TextCursorPlacement.MoveLineEnd) { view.SetSearchText(proposition.replacement, proposition.moveCursor); } else if (!options.tokens.All(t => t.StartsWith(proposition.replacement, StringComparison.OrdinalIgnoreCase))) { var insertion = ReplaceText(context.searchText, proposition.replacement, options.cursor, out var insertTokenPos); SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.QuickSearchAutoCompleteInsertSuggestion, insertion); view.SetSearchText(insertion, proposition.moveCursor, insertTokenPos); } } if (selected) { // No more results Clear(); } }
public QueryHelperWidget(bool blockMode, ISearchView view = null) { m_BlockMode = blockMode; drawBorder = true; m_Areas = new QueryBuilder("") { drawBackground = false, }; m_Areas.AddBlock(new QueryAreaBlock(m_Areas, k_All, "")); var builtinSearches = SearchTemplateAttribute.GetAllQueries(); var allProviders = view != null && view.context != null?view.context.GetProviders() : SearchService.GetActiveProviders(); var generalProviders = allProviders.Where(p => !p.isExplicitProvider); var explicitProviders = allProviders.Where(p => p.isExplicitProvider); var providers = generalProviders.Concat(explicitProviders); if (blockMode) { m_ActiveSearchProviders = providers.Where(p => p.id != "expression" && (p.fetchPropositions != null || builtinSearches.Any(sq => sq.searchText.StartsWith(p.filterId) || sq.GetProviderIds().Any(pid => p.id == pid)))).ToArray(); } else { m_ActiveSearchProviders = providers.ToArray(); } foreach (var p in m_ActiveSearchProviders) { m_Areas.AddBlock(new QueryAreaBlock(m_Areas, p)); } m_Areas.@readonly = true; foreach (var b in m_Areas.blocks) { b.tooltip = $"Double click to search in: {b.value}"; } if (string.IsNullOrEmpty(m_CurrentAreaFilterId)) { m_CurrentAreaFilterId = SearchSettings.helperWidgetCurrentArea; } m_Searches = new QueryHelperSearchGroup(m_BlockMode, L10n.Tr("Searches")); ChangeCurrentAreaFilter(m_CurrentAreaFilterId); PopulateSearches(builtinSearches); RefreshSearches(); BindSearchView(view); }
public static bool ShowAtPosition(ISearchView quickSearchTool, SearchContext context, Rect rect) { var screenPos = GUIUtility.GUIToScreenPoint(new Vector2(rect.x, rect.y)); var screenRect = new Rect(screenPos, rect.size); s_SearchContext = context; var filterWindow = ScriptableObject.CreateInstance <FilterWindow>(); filterWindow.m_SearchView = quickSearchTool; var height = Math.Min(Styles.kMaxWindowHeight, Styles.windowSize.y + Styles.kItemHeight * context.filters.Count()); var size = new Vector2(Styles.windowSize.x, height); filterWindow.ShowAsDropDown(screenRect, size); s_SearchContext = null; return(true); }
/// <summary> /// Initializes a new instance of the <see cref="PlaylistViewModel" /> class. /// </summary> /// <param name="publicTransport">The public transport.</param> /// <param name="playlistService">The playlist service.</param> /// <param name="dispatcher">The dispatcher.</param> /// <param name="playerService">The audio player service.</param> /// <param name="builder">The builder.</param> /// <param name="configurationManager">The configuration manager.</param> /// <param name="globalHotkeyService">The global hotkey service.</param> /// <param name="windowManager">The window manager.</param> /// <param name="searchView">The search view.</param> /// <param name="serializerService">The serializer service.</param> /// <param name="logger">The logger.</param> public PlaylistViewModel(IPublicTransport publicTransport, IPlaylistService playlistService, IDispatcher dispatcher, IPlayerService playerService, IInfoBuilder <StorableTaggedFile> builder, IConfigurationManager configurationManager, IGlobalHotkeyService globalHotkeyService, IWindowManager windowManager, ISearchView searchView, ISerializerService serializerService, ILogger logger) : base(logger) { publicTransport.Guard("publicTransport"); playlistService.Guard("playlistService"); dispatcher.Guard("dispatcher"); playerService.Guard("playerService"); builder.Guard("builder"); configurationManager.Guard("configurationManager"); globalHotkeyService.Guard("globalHotkeyService"); windowManager.Guard("windowManager"); searchView.Guard("searchView"); serializerService.Guard("serializerService"); this.playlistService = playlistService; this.dispatcher = dispatcher; this.playerService = playerService; this.builder = builder; this.globalHotkeyService = globalHotkeyService; this.windowManager = windowManager; this.searchView = searchView; publicTransport.ApplicationEventBus.Subscribe <PlaylistUpdatedEvent>(OnPlaylistUpdated); publicTransport.ApplicationEventBus.Subscribe <TrackChangedEvent>(OnTrackChanged); searchHotkey = configurationManager.GetValue("Search", new HotkeyDescriptor(ModifierKeys.Control | ModifierKeys.Alt, Key.J), KnownConfigSections.GlobalHotkeys); searchHotkey.ValueChanged += SearchHotkeyOnValueChanged; globalHotkeyService.RegisterHotkey(searchHotkey.Value, OnSearch); //globalHotkeyService.RegisterHotkey(new HotkeyDescriptor(ModifierKeys.None, Key.A), () => MessageBox.Show("Stuff")); searchView.PlayFile += SearchViewOnPlayFile; Files = new List <FileItem>(playlistService.Files.Select(x => new FileItem(x))); }
public static void AutoCompletion(Rect rect, SearchContext context, ISearchView view) { if (s_DiscardAutoComplete || controlID <= 0) { return; } if (s_AutoCompleting && Event.current.type == EventType.MouseDown && !s_AutoCompleteRect.Contains(Event.current.mousePosition)) { s_DiscardAutoComplete = true; s_AutoCompleting = false; return; } var te = GetTextEditor(); var cursorPosition = te.cursorIndex; if (cursorPosition == 0) { return; } var searchText = context.searchText; var lastTokenStartPos = searchText.LastIndexOf(' ', Math.Max(0, te.cursorIndex - 1)); var lastToken = lastTokenStartPos == -1 ? searchText : searchText.Substring(lastTokenStartPos + 1); var keywords = SearchService.GetKeywords(context, lastToken).Where(k => !k.Equals(lastToken, StringComparison.OrdinalIgnoreCase)).ToArray(); if (keywords.Length > 0) { const int maxAutoCompleteCount = 16; s_AutoCompleteMaxIndex = Math.Min(keywords.Length, maxAutoCompleteCount); if (!s_AutoCompleting) { s_AutoCompleteIndex = 0; } if (Event.current.type == EventType.Repaint) { var content = new GUIContent(context.searchText.Substring(0, context.searchText.Length - lastToken.Length)); var offset = Styles.searchField.CalcSize(content).x; s_AutoCompleteRect = rect; s_AutoCompleteRect.x += offset; s_AutoCompleteRect.y = rect.yMax; s_AutoCompleteRect.width = 250; s_AutoCompleteRect.x = Math.Min(rect.width - s_AutoCompleteRect.width - 25, s_AutoCompleteRect.x); } var lt = lastToken; var autoFill = DoAutoComplete(lastToken, keywords, maxAutoCompleteCount, 0.1f); if (autoFill == null) { // No more results s_AutoCompleting = false; s_AutoCompleteIndex = -1; } else if (autoFill != lastToken) { var regex = new Regex(Regex.Escape(lastToken), RegexOptions.IgnoreCase); autoFill = regex.Replace(autoFill, ""); view.SetSearchText(context.searchText.Insert(cursorPosition, autoFill)); } else { s_AutoCompleting = true; } } else { s_AutoCompleting = false; s_AutoCompleteIndex = -1; } }
public SearchPresenter(ISearchView view, IDataAccess dataAccess) { if (view == null) throw new Exception("view cannot be null"); this.view = view; this.dataAccess = dataAccess; }
public ListView(ISearchView hostView) : base(hostView) { }
/// <summary> /// Constructor /// </summary> public SearchPresenter(ISearchView view, Window windowHandler) { this.view = view; this.windowHandler = windowHandler; }
public GridView(ISearchView hostView) : base(hostView) { }
public SearchPresenter(ISearchView view, IBlogSystemData data) { this.view = view; this.Data = data; }
public ResultView(ISearchView hostView) { searchView = hostView; }
public static void ExecuteQuery(ISearchView view, SearchQuery query) { view.context.SetFilteredProviders(query.providerIds); view.SetSearchText(query.searchQuery); }
public SearchPresenter(ISearchView searchView) { }
public SearchPresenter(ISearchView view) { this.view = view; entityData = new EntityData(); }
/// <summary> /// Constructs a new controller for the given search view /// </summary> /// <param name="svcProvider">Service provider for the controller</param> /// <param name="view">Search view associated with the controller</param> public SearchViewController(IServiceProvider svcProvider, ISearchView view) : base(svcProvider, view) { }
public void AttachView(ISearchView view) { _view = view; }
public void DetachView() { _view = null; }
/// <summary> /// Initializes a new instance of the <see cref="BoxDetailsPresenter"/> class. /// </summary> /// <param name="view">The view.</param> public BoxDetailsPresenter(ISearchView view) { if (view == null) throw new Exception("view cannot be null"); _searchView = view; }
public static void Draw(SearchContext context, ISearchView view) { if (!enabled) { return; } var evt = Event.current; if (evt.type == EventType.MouseDown && !position.Contains(evt.mousePosition)) { evt.Use(); Clear(); return; } // Check if the cache filtered list should be updated if (evt.type == EventType.Repaint && !context.searchText.Equals(s_LastInput, StringComparison.Ordinal)) { UpdateCompleteList(SearchField.GetTextEditor()); } if (s_FilteredList == null) { return; } var autoFill = DrawItems(evt); if (!string.IsNullOrEmpty(autoFill)) { Log($"Select({autoFill}, {options.cursor}, {options.token})"); if (!options.token.StartsWith(autoFill, StringComparison.OrdinalIgnoreCase)) { var searchText = context.searchText; var replaceFrom = options.cursor - 1; while (replaceFrom >= 0 && !char.IsWhiteSpace(searchText[replaceFrom])) { replaceFrom--; } if (replaceFrom == -1) { replaceFrom = 0; } else { replaceFrom++; } var replaceTo = searchText.IndexOf(' ', options.cursor); if (replaceTo == -1) { replaceTo = searchText.Length; } var sb = new StringBuilder(searchText); sb.Remove(replaceFrom, replaceTo - replaceFrom); sb.Insert(replaceFrom, autoFill); view.SetSearchText(sb.ToString(), TextCursorPlacement.MoveAutoComplete); } Clear(); } else if (autoFill == string.Empty) { // No more results Clear(); } }
public SearchPresenter(ISearchView view) { this.view = view; }