mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remove invokeLater from StaticInheritanceFix and AddModuleDependencyFix
This commit is contained in:
+15
-23
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
import com.intellij.codeInsight.daemon.impl.actions.AddImportAction;
|
||||
import com.intellij.compiler.ModuleCompilerUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -30,7 +31,7 @@ import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.popup.JBPopup;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.Couple;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.ui.components.JBList;
|
||||
@@ -157,33 +158,24 @@ class AddModuleDependencyFix extends OrderEntryFix {
|
||||
}
|
||||
}
|
||||
};
|
||||
final Pair<Module, Module> circularModules = ModuleCompilerUtil.addingDependencyFormsCircularity(myCurrentModule, module);
|
||||
if (circularModules == null) {
|
||||
doit.run();
|
||||
}
|
||||
else {
|
||||
showCircularWarningAndContinue(project, circularModules, module, doit);
|
||||
Couple<Module> circularModules = ModuleCompilerUtil.addingDependencyFormsCircularity(myCurrentModule, module);
|
||||
if (circularModules == null || showCircularWarning(project, circularModules, module)) {
|
||||
WriteAction.run(doit::run);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static void showCircularWarningAndContinue(final Project project, final Pair<Module, Module> circularModules,
|
||||
final Module classModule,
|
||||
final Runnable doit) {
|
||||
private static boolean showCircularWarning(Project project, Couple<Module> circularModules, Module classModule) {
|
||||
final String message = QuickFixBundle.message("orderEntry.fix.circular.dependency.warning", classModule.getName(),
|
||||
circularModules.getFirst().getName(), circularModules.getSecond().getName());
|
||||
if (ApplicationManager.getApplication().isUnitTestMode()) throw new RuntimeException(message);
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!project.isOpen()) return;
|
||||
int ret = Messages.showOkCancelDialog(project, message,
|
||||
QuickFixBundle.message("orderEntry.fix.title.circular.dependency.warning"),
|
||||
Messages.getWarningIcon());
|
||||
if (ret == Messages.OK) {
|
||||
ApplicationManager.getApplication().runWriteAction(doit);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Messages.showOkCancelDialog(project, message,
|
||||
QuickFixBundle.message("orderEntry.fix.title.circular.dependency.warning"),
|
||||
Messages.getWarningIcon()) == Messages.OK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean startInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-22
@@ -20,8 +20,7 @@ import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.codeInsight.intention.QuickFixFactory;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.TransactionGuard;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
@@ -36,7 +35,6 @@ import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.Query;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.psiutils.ClassUtils;
|
||||
@@ -67,16 +65,12 @@ class StaticInheritanceFix extends InspectionGadgetsFix {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFix(final Project project, final ProblemDescriptor descriptor) throws IncorrectOperationException {
|
||||
ApplicationManager.getApplication().invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
dodoFix(project, descriptor);
|
||||
}
|
||||
}, ModalityState.NON_MODAL, project.getDisposed());
|
||||
public boolean startInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void dodoFix(final Project project, ProblemDescriptor descriptor) throws IncorrectOperationException {
|
||||
@Override
|
||||
public void doFix(final Project project, ProblemDescriptor descriptor) throws IncorrectOperationException {
|
||||
final PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)descriptor.getPsiElement();
|
||||
final PsiClass iface = (PsiClass)referenceElement.resolve();
|
||||
assert iface != null;
|
||||
@@ -155,16 +149,6 @@ class StaticInheritanceFix extends InspectionGadgetsFix {
|
||||
}
|
||||
|
||||
private static void invokeWriteAction(final Runnable runnable, final PsiFile file) {
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new WriteCommandAction(file.getProject(), file) {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
runnable.run();
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
});
|
||||
TransactionGuard.submitTransaction(() -> WriteCommandAction.runWriteCommandAction(file.getProject(), null, null, runnable, file));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user