public override Action GetSearchesExecution(IDataContext dataContext, INavigationExecutionHost host) { var searches = new[] { new FindUsagesOfElementContextSearch(declaredElement) }; if (searches.Any()) { return(() => Execute(dataContext, searches, host)); } return(null); }
protected override void ShowResults(IDataContext context, INavigationExecutionHost host, string title, ICollection <IOccurence> occurences, Func <TDescriptor> descriptorBuilder, IComparer <IOccurence> customSearchRequestComparer) { var occurencesList = occurences.ToList(); occurencesList.Sort((occurence, occurence1) => { var result = customSearchRequestComparer.Compare(occurence, occurence1); if (result != 0) { return(result); } return(OccurenceUtil.CompareOccurences(occurence, occurence1, OccurencePresentationOptions.DefaultOptions)); }); host.ShowResultsPopupMenu(context, occurencesList, descriptorBuilder, ProvideFeatureSpecificPresentationOptions(), true, title); }
protected override void Execute(IDataContext dataContext, IEnumerable <T> searches, INavigationExecutionHost host) { var request = searches.SelectNotNull(item => item.CreateSearchRequest(dataContext)).SingleOrDefault(); var occurrences = request?.Search(); if (occurrences == null) { return; } if (occurrences.IsEmpty()) { ShowToolTip(dataContext, NoResultsFoundText); return; } if (host.ProcessImmediateResultHighlightUsages(dataContext, occurrences)) { return; } host.ShowContextPopupMenu( dataContext, occurrences, () => new LinkedTypesSearchDescriptor(request, occurrences), OccurrencePresentationOptions.DefaultOptions, skipMenuIfSingleEnabled: true, request.Title, () => { var typeElementsForDiagram = OccurrenceUtil.GetTypeElementsForDiagram(request, occurrences).ToList(); return(new Pair <ICollection <ITypeElement>, TypeDependenciesOptions>(typeElementsForDiagram, new TypeDependenciesOptions(new[] { TypeElementDependencyType.ReturnType }, TypeDependenciesOptions.CollapseBigFoldersFunc))); }); }
protected override void ExecuteSearchRequest(IDataContext context, SearchRequest searchRequest, INavigationExecutionHost host) { var provider = searchRequest.Solution.GetComponent <FindUsagesAsyncViewProviderBase>(); var viewFactory = provider.GetFactoryGotoUsages(searchRequest, host, this); var executer = new SearchRequestExecuter(context, searchRequest, this, host, viewFactory); executer.Execute(); }
protected override void Execute(IDataContext dataContext, IEnumerable <IRegisteredComponentsContextSearch> searches, INavigationExecutionHost host) { List <RegisteredComponentsSearchRequest> requests = searches.SelectNotNull(item => item.GetRegisteredComponentsRequest(dataContext)).ToList(); ITextControl textControl = dataContext.GetData(JetBrains.TextControl.DataContext.DataConstants.TEXT_CONTROL); if (textControl != null && requests.Any()) { RegisteredComponentsSearchRequest requestToExecute = requests.First(); ICollection <IOccurence> occurences = requestToExecute.Search(); if (occurences.IsEmpty()) { Shell.Instance.Components.Tooltips().ShowAtCaret(EternalLifetime.Instance, NoRegisteredTypesFound, textControl, locks, Shell.Instance.GetComponent <IActionManager>()); } else { Func <SearchRegisteredComponentsDescriptor> descriptorBuilder = () => new SearchRegisteredComponentsDescriptor(requestToExecute, occurences); #if !SDK80 host.ShowResultsPopupMenu(dataContext, occurences, descriptorBuilder, null, true, requestToExecute.Title); #else host.ShowContextPopupMenu(dataContext, occurences, descriptorBuilder, null, true, requestToExecute.Title); #endif } } }