mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-319883 Move AnalyzeModuleDependencyAction.findUsedScopes to a BGT
Hijack the result class by allowing to extend it and put the result there. It's OK, as this class is internal and was introduced exactly for this purpose: storing various precomputed stuff to be used in the EDT later. GitOrigin-RevId: 4801518afa4aef8a383a0fb19c7f0bd79076f05d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7076f54b6b
commit
18ac9b3822
+16
-1
@@ -68,7 +68,7 @@ class AnalyzeModuleDependencyAction extends AnAction {
|
||||
GlobalSearchScope.union(scopes.toArray(GlobalSearchScope.EMPTY_ARRAY))) {
|
||||
@Override
|
||||
protected boolean shouldShowDependenciesPanel(@NotNull DependencyAnalysisResult result) {
|
||||
Set<GlobalSearchScope> usedScopes = findUsedScopes(result.getBuilders(), scopes);
|
||||
Set<GlobalSearchScope> usedScopes = ((MyAnalyzeResult)result).usedScopes;
|
||||
if (usedScopes.contains(mainScope)) {
|
||||
Messages.showInfoMessage(myProject,
|
||||
JavaUiBundle
|
||||
@@ -126,6 +126,17 @@ class AnalyzeModuleDependencyAction extends AnAction {
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull DependencyAnalysisResult createAnalysisResult() {
|
||||
return new MyAnalyzeResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bgtPostAnalyze(DependencyAnalysisResult result) {
|
||||
super.bgtPostAnalyze(result);
|
||||
((MyAnalyzeResult)result).usedScopes = findUsedScopes(result.getBuilders(), scopes);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canStartInBackground() {
|
||||
return false;
|
||||
@@ -186,4 +197,8 @@ class AnalyzeModuleDependencyAction extends AnAction {
|
||||
public @NotNull ActionUpdateThread getActionUpdateThread() {
|
||||
return ActionUpdateThread.EDT;
|
||||
}
|
||||
|
||||
private static class MyAnalyzeResult extends DependencyAnalysisResult {
|
||||
Set<GlobalSearchScope> usedScopes;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import com.intellij.openapi.util.NlsContexts
|
||||
import org.jetbrains.annotations.ApiStatus.Internal
|
||||
|
||||
@Internal
|
||||
class DependencyAnalysisResult(
|
||||
open class DependencyAnalysisResult(
|
||||
val builders: MutableList<DependenciesBuilder> = arrayListOf()
|
||||
) {
|
||||
|
||||
|
||||
+11
-2
@@ -40,7 +40,7 @@ public abstract class DependenciesHandlerBase {
|
||||
}
|
||||
|
||||
public void analyze() {
|
||||
final DependencyAnalysisResult result = new DependencyAnalysisResult();
|
||||
final DependencyAnalysisResult result = createAnalysisResult();
|
||||
|
||||
final Task task;
|
||||
if (canStartInBackground()) {
|
||||
@@ -73,6 +73,11 @@ public abstract class DependenciesHandlerBase {
|
||||
ProgressManager.getInstance().run(task);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected DependencyAnalysisResult createAnalysisResult() {
|
||||
return new DependencyAnalysisResult();
|
||||
}
|
||||
|
||||
protected boolean canStartInBackground() {
|
||||
return true;
|
||||
}
|
||||
@@ -96,7 +101,7 @@ public abstract class DependenciesHandlerBase {
|
||||
for (DependenciesBuilder builder : result.getBuilders()) {
|
||||
builder.analyze();
|
||||
}
|
||||
result.panelDisplayName = getPanelDisplayName(result.getBuilders().get(0).getScope());
|
||||
bgtPostAnalyze(result);
|
||||
snapshot.logResponsivenessSinceCreation("Dependency analysis");
|
||||
}
|
||||
catch (IndexNotReadyException e) {
|
||||
@@ -106,6 +111,10 @@ public abstract class DependenciesHandlerBase {
|
||||
}
|
||||
}
|
||||
|
||||
protected void bgtPostAnalyze(DependencyAnalysisResult result) {
|
||||
result.panelDisplayName = getPanelDisplayName(result.getBuilders().get(0).getScope());
|
||||
}
|
||||
|
||||
private void onSuccess(final DependencyAnalysisResult result) {
|
||||
//noinspection SSBasedInspection
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
|
||||
Reference in New Issue
Block a user