mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-391989 [java-injection-ui] "Select annotation class" window is not showing up in 2026.2
(cherry picked from commit e68d16e423df853c53d134dab143bdb94a778993) IJ-CR-215387 GitOrigin-RevId: 61b2f2d43ab21c3f9137d9c5253683ec9bc60dc7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
84346118a0
commit
db5675dd4e
@@ -4,6 +4,8 @@ package org.intellij.plugins.intelliLang;
|
||||
|
||||
import com.intellij.ide.util.TreeClassChooser;
|
||||
import com.intellij.ide.util.TreeClassChooserFactory;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.options.SearchableConfigurable;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -11,6 +13,7 @@ import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.ui.ReferenceEditorWithBrowseButton;
|
||||
import com.intellij.util.concurrency.AppExecutorUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.JComponent;
|
||||
@@ -85,16 +88,22 @@ public class AdvancedSettingsUI implements SearchableConfigurable {
|
||||
final TreeClassChooserFactory factory = TreeClassChooserFactory.getInstance(myProject);
|
||||
|
||||
final GlobalSearchScope scope = GlobalSearchScope.allScope(myProject);
|
||||
final PsiClass aClass = JavaPsiFacade.getInstance(myProject).findClass(myField.getText(), scope);
|
||||
final TreeClassChooser chooser =
|
||||
factory.createNoInnerClassesScopeChooser(IntelliLangBundle.message("dialog.title.select.annotation.class"), scope,
|
||||
PsiClass::isAnnotationType, aClass);
|
||||
|
||||
chooser.showDialog();
|
||||
final PsiClass psiClass = chooser.getSelected();
|
||||
if (psiClass != null) {
|
||||
myField.setText(psiClass.getQualifiedName());
|
||||
}
|
||||
ReadAction.nonBlocking(() -> JavaPsiFacade.getInstance(myProject).findClass(myField.getText(), scope))
|
||||
.expireWhen(() -> myProject.isDisposed())
|
||||
.finishOnUiThread(ModalityState.current(), aClass -> {
|
||||
final TreeClassChooser chooser =
|
||||
factory.createNoInnerClassesScopeChooser(IntelliLangBundle.message("dialog.title.select.annotation.class"), scope,
|
||||
PsiClass::isAnnotationType, aClass);
|
||||
chooser.showDialog();
|
||||
final PsiClass psiClass = chooser.getSelected();
|
||||
if (psiClass != null) {
|
||||
String name = psiClass.getQualifiedName();
|
||||
if (name != null) {
|
||||
myField.setText(name);
|
||||
}
|
||||
}
|
||||
})
|
||||
.submit(AppExecutorUtil.getAppExecutorService());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user