public void updateTargetsView(final DependencyViewerScope sourceScope) { myScope = sourceScope; final Wrappers._T<SearchResults<SNode>> results = new Wrappers._T<SearchResults<SNode>>(new SearchResults<SNode>()); ProgressManager.getInstance() .run( new Task.Modal(myProject, "Analyzing dependencies", true) { public void run(@NotNull final ProgressIndicator indicator) { ModelAccess.instance() .runReadAction( new Runnable() { public void run() { ProgressMonitor monitor = new ProgressMonitorAdapter(indicator); try { monitor.start(null, 100); List<SNode> nodes = myReferencesFinder.getNodes(sourceScope, monitor.subTask(20)); mySourceNodes = nodes; results.value = (myIsMeta ? myReferencesFinder.getUsedLanguagesSearchResults( nodes, sourceScope, monitor.subTask(80)) : myReferencesFinder.getTargetSearchResults( nodes, sourceScope, monitor.subTask(80))); } finally { monitor.done(); } } }); } }); myTargetsView.setContents(results.value); updateReferencesView(null); }