public override ICollection<IOccurence> Search(IProgressIndicator progressIndicator) { UnusedModulesProjectVisitor visitor = new UnusedModulesProjectVisitor(progressIndicator); using (ReadLockCookie cookie = ReadLockCookie.Create()) { solution.Accept(visitor); emptyResult = visitor.GetTotalUnusedModules() == 0; results = visitor.GetSearchResults(); } return EmptyArray<IOccurence>.Instance; }
public UnusedReferencesSearchResult GetSearchResults() { UnusedReferencesSearchResult ret = new UnusedReferencesSearchResult(); foreach (KeyValuePair<IProject, ICollection<IModuleReference>> pair in results) { if (pair.Value.Count > 0) ret.Add(pair.Key, new List<IModuleReference>(pair.Value)); } return ret; }
///<summary> /// /// Initializes workflow with specified data context /// ///</summary> /// public bool Initialize(IDataContext context, IInitializationContext initializationContext) { solution = context.GetData<ISolution>(JetBrains.ReSharper.DataConstants.SOLUTION); psiLanguageType = context.GetData<PsiLanguageType>(DataConstants.PSI_LANGUAGE_TYPE); Assert.CheckNotNull(solution); bool emptyResult = false; UnusedReferencesSearchRequest request = new UnusedReferencesSearchRequest(solution); UnusedReferencesSearchDescriptor searchDescriptor = new UnusedReferencesSearchDescriptor(request); using(ReadLockCookie cookie = ReadLockCookie.Create()) { searchDescriptor.Search(); } emptyResult = request.EmptyResult; searchResults = request.Results; if (searchDescriptor.Items == null) return false; if (emptyResult) { EmptyResultsPane panel = new EmptyResultsPane(); page = panel; } else { ModulesChooserPane pane = new ModulesChooserPane(this); pane.AutoActivate = true; page = pane; } return true; }