EA-442231 - CCE: AlternativeSourceNotificationProvider.lambda$collectNotificationData$0

GitOrigin-RevId: 1fb430589979bc4692321bd789ba6f9e24092b57
This commit is contained in:
Egor Ushakov
2024-02-27 12:39:51 +01:00
committed by intellij-monorepo-bot
parent 08992fdff9
commit 1633344882

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.debugger.ui;
import com.intellij.debugger.DebuggerManagerEx;
@@ -18,6 +18,7 @@ import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.pom.Navigatable;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.ui.EditorNotificationPanel;
@@ -99,7 +100,7 @@ public final class AlternativeSourceNotificationProvider implements EditorNotifi
List<PsiClass> allClasses = ContainerUtil.prepend(otherClasses, baseClass);
ComboBoxClassElement[] elems = ContainerUtil.map2Array(allClasses,
ComboBoxClassElement.class,
psiClass -> new ComboBoxClassElement((PsiClass)psiClass.getNavigationElement()));
psiClass -> new ComboBoxClassElement(psiClass.getNavigationElement()));
String locationDeclName = null;
XStackFrame frame = session.getCurrentStackFrame();
@@ -121,18 +122,18 @@ public final class AlternativeSourceNotificationProvider implements EditorNotifi
}
private static class ComboBoxClassElement {
private final PsiClass myClass;
private final PsiElement myElement;
private String myText;
ComboBoxClassElement(PsiClass aClass) {
myClass = aClass;
ComboBoxClassElement(PsiElement element) {
myElement = element;
}
@Override
public String toString() {
if (myText == null) {
ModuleRendererFactory factory = ModuleRendererFactory.findInstance(myClass);
TextWithIcon moduleTextWithIcon = factory.getModuleTextWithIcon(myClass);
ModuleRendererFactory factory = ModuleRendererFactory.findInstance(myElement);
TextWithIcon moduleTextWithIcon = factory.getModuleTextWithIcon(myElement);
myText = moduleTextWithIcon == null ? "" : moduleTextWithIcon.getText();
}
return myText;
@@ -165,7 +166,7 @@ public final class AlternativeSourceNotificationProvider implements EditorNotifi
public void actionPerformed(ActionEvent e) {
final DebuggerContextImpl context = DebuggerManagerEx.getInstanceEx(project).getContext();
final DebuggerSession session = context.getDebuggerSession();
final PsiClass item = ((ComboBoxClassElement)switcher.getSelectedItem()).myClass;
final PsiElement item = ((ComboBoxClassElement)switcher.getSelectedItem()).myElement;
final VirtualFile vFile = item.getContainingFile().getVirtualFile();
if (session != null && vFile != null) {
session.getProcess().getManagerThread().schedule(new DebuggerCommandImpl() {
@@ -181,9 +182,9 @@ public final class AlternativeSourceNotificationProvider implements EditorNotifi
}
});
}
else {
else if (item instanceof Navigatable navigatable) {
FileEditorManager.getInstance(project).closeFile(file);
item.navigate(true);
navigatable.navigate(true);
}
}
});