diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java index ad947e418..19a92a420 100644 --- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java +++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/daemon/impl/quickfix/GenerifyFileFix.java @@ -16,12 +16,11 @@ package com.intellij.java.impl.codeInsight.daemon.impl.quickfix; import com.intellij.java.impl.refactoring.actions.TypeCookAction; -import consulo.application.Result; +import consulo.annotation.access.RequiredReadAction; import consulo.codeEditor.Editor; import consulo.fileEditor.FileEditorManager; import consulo.java.analysis.impl.localize.JavaQuickFixLocalize; import consulo.language.editor.FileModificationService; -import consulo.language.editor.WriteCommandAction; import consulo.language.editor.inspection.LocalQuickFix; import consulo.language.editor.inspection.ProblemDescriptor; import consulo.language.editor.intention.SyntheticIntentionAction; @@ -30,15 +29,18 @@ import consulo.language.psi.PsiManager; import consulo.localize.LocalizeValue; import consulo.project.Project; +import consulo.ui.annotation.RequiredUIAccess; +import consulo.undoRedo.CommandProcessor; import jakarta.annotation.Nonnull; public class GenerifyFileFix implements SyntheticIntentionAction, LocalQuickFix { - private String myFileName; + @Nonnull + private LocalizeValue myText = LocalizeValue.empty(); @Nonnull @Override public LocalizeValue getText() { - return JavaQuickFixLocalize.generifyText(myFileName); + return myText; } @Nonnull @@ -48,35 +50,36 @@ public LocalizeValue getName() { } @Override - public void applyFix(@Nonnull final Project project, @Nonnull final ProblemDescriptor descriptor) { - final PsiElement element = descriptor.getPsiElement(); + @RequiredUIAccess + public void applyFix(@Nonnull Project project, @Nonnull ProblemDescriptor descriptor) { + PsiElement element = descriptor.getPsiElement(); if (element == null) { return; } - final PsiFile file = element.getContainingFile(); + PsiFile file = element.getContainingFile(); if (isAvailable(project, null, file)) { - myFileName = file.getName(); - new WriteCommandAction(project) { - @Override - protected void run(Result result) throws Throwable { - invoke(project, FileEditorManager.getInstance(project).getSelectedTextEditor(), file); - } - }.execute(); + CommandProcessor.getInstance().newCommand() + .project(project) + .inWriteAction() + .run(() -> invoke(project, FileEditorManager.getInstance(project).getSelectedTextEditor(), file)); } } @Override + @RequiredReadAction public boolean isAvailable(@Nonnull Project project, Editor editor, PsiFile file) { if (file != null && file.isValid()) { - myFileName = file.getName(); + myText = JavaQuickFixLocalize.generifyText(file.getName()); return PsiManager.getInstance(project).isInProject(file); } else { + myText = LocalizeValue.empty(); return false; } } @Override + @RequiredUIAccess public void invoke(@Nonnull Project project, Editor editor, PsiFile file) { if (!FileModificationService.getInstance().prepareFileForWrite(file)) { return;