From 603afcced835d6d93cafb6ee769abfe783a2a1d4 Mon Sep 17 00:00:00 2001 From: Ekaterina Chernikova Date: Mon, 6 Jul 2026 18:36:28 +0200 Subject: [PATCH] [Query Console] DBE-7494: fixed mnemonic handling in error panel (cherry picked from commit 608fd61ea6710b0c915af570bc1bcc49dd629d2c) IJ-CR-218779 GitOrigin-RevId: cfea7108a942392f0c8375ff61130917ac7e8c1c --- grid/impl/src/run/ui/ErrorNotificationPanel.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/grid/impl/src/run/ui/ErrorNotificationPanel.kt b/grid/impl/src/run/ui/ErrorNotificationPanel.kt index a0055a205b72..a1637f8ea810 100644 --- a/grid/impl/src/run/ui/ErrorNotificationPanel.kt +++ b/grid/impl/src/run/ui/ErrorNotificationPanel.kt @@ -17,6 +17,7 @@ import com.intellij.openapi.ui.MessageType import com.intellij.openapi.util.NlsActions import com.intellij.openapi.util.NlsContexts import com.intellij.openapi.util.text.StringUtil +import com.intellij.ui.ComponentWithMnemonics import com.intellij.ui.components.ActionLink import com.intellij.util.ui.JBDimension import com.intellij.util.ui.JBUI @@ -27,6 +28,7 @@ import java.awt.Cursor import java.awt.Dimension import java.awt.FlowLayout import java.awt.Graphics +import java.awt.event.ActionEvent import java.awt.event.KeyEvent import java.awt.event.MouseEvent import java.awt.event.MouseListener @@ -58,7 +60,7 @@ class ErrorNotificationPanel private constructor( items: List, private val hideErrorAction: Runnable?, private val messageType: MessageType = MessageType.ERROR, -) : JPanel(BorderLayout()), UiDataProvider { +) : JPanel(BorderLayout()), UiDataProvider, ComponentWithMnemonics { private var copyProvider: CopyProvider? = null private val textPane: JTextArea? private val content: JPanel @@ -250,7 +252,7 @@ class ErrorNotificationPanel private constructor( private val mnemonicCode: Int? = null, ) : PanelItem { override fun buildComponent(): JComponent { - return ActionLink(linkText) { onClickAction() }.apply { + return MnemonicActionLink(linkText) { onClickAction() }.apply { font = UIManager.getFont("ToolTip.font") if (mnemonicCode != null) { mnemonic = mnemonicCode @@ -260,6 +262,9 @@ class ErrorNotificationPanel private constructor( } } + private class MnemonicActionLink(@Nls linkText: String, onClickAction: (ActionEvent) -> Unit) : + ActionLink(linkText, onClickAction), ComponentWithMnemonics + private class IconLink( private val icon: Icon, private val onClickAction: () -> Unit,