From 6afb3b193e4f2769b2eda41fca0b45865937d1dd Mon Sep 17 00:00:00 2001 From: Dmitry Drobotov Date: Tue, 29 Jul 2025 19:14:36 +0200 Subject: [PATCH] IJPL-187935 Add accessible name prefix for File, Project, Tasks widgets GitOrigin-RevId: 494b4feabe9c06bcbf6bb1f2543c642bdad3fa95 --- .../resources/messages/ProjectConceptBundle.properties | 1 + .../platform-api/resources/messages/UIBundle.properties | 4 +++- .../wm/impl/headertoolbar/FilenameToolbarWidgetAction.kt | 2 ++ .../wm/impl/headertoolbar/ProjectToolbarWidgetAction.kt | 7 +++++++ .../resources/messages/TaskBundle.properties | 1 + .../src/com/intellij/tasks/actions/SwitchTaskAction.java | 9 +++++++++ 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/resources/messages/ProjectConceptBundle.properties b/platform/platform-api/resources/messages/ProjectConceptBundle.properties index 1660b5036c98..eb3644e8cb2a 100644 --- a/platform/platform-api/resources/messages/ProjectConceptBundle.properties +++ b/platform/platform-api/resources/messages/ProjectConceptBundle.properties @@ -21,6 +21,7 @@ popup.title.recent.projects=Recent Projects project.widget.recent.projects=Recent Projects project.widget.open.projects=Open Projects +project.widget.accessible.name.prefix=Project title.new.project=New Project title.open.project=Open Project diff --git a/platform/platform-api/resources/messages/UIBundle.properties b/platform/platform-api/resources/messages/UIBundle.properties index be3a9becdf12..7eecb3447e00 100644 --- a/platform/platform-api/resources/messages/UIBundle.properties +++ b/platform/platform-api/resources/messages/UIBundle.properties @@ -387,4 +387,6 @@ collapsible.titled.separator.collapsed.accessible.name=Show {0} collapsible.titled.separator.expanded.accessible.name=Hide {0} toolbar.combo.button.accessible.name={0}, menu -toolbar.combo.button.accessible.name.with.prefix={0}: {1}, menu \ No newline at end of file +toolbar.combo.button.accessible.name.with.prefix={0}: {1}, menu + +filename.widget.accessible.name.prefix=File \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/FilenameToolbarWidgetAction.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/FilenameToolbarWidgetAction.kt index 939a9d90cbfd..d720833a929b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/FilenameToolbarWidgetAction.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/FilenameToolbarWidgetAction.kt @@ -31,6 +31,7 @@ import com.intellij.openapi.vfs.newvfs.VfsPresentationUtil import com.intellij.openapi.wm.impl.* import com.intellij.ui.ColorUtil import com.intellij.ui.JBColor +import com.intellij.ui.UIBundle import com.intellij.util.IconUtil import com.intellij.util.ui.UIUtil import java.awt.Color @@ -107,6 +108,7 @@ class FilenameToolbarWidgetAction : ExpandableComboAction(), DumbAware, ActionRe init { isOpaque = false hoverBackground = JBColor.namedColor("MainToolbar.Dropdown.background", JBColor.foreground()) + accessibleNamePrefix = UIBundle.message("filename.widget.accessible.name.prefix") } override fun processMouseEvent(e: MouseEvent) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/ProjectToolbarWidgetAction.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/ProjectToolbarWidgetAction.kt index bd2d38af721c..4651c3ab815c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/ProjectToolbarWidgetAction.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/ProjectToolbarWidgetAction.kt @@ -20,6 +20,7 @@ import com.intellij.openapi.util.NlsSafe import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.wm.impl.ExpandableComboAction import com.intellij.openapi.wm.impl.ToolbarComboButton +import com.intellij.openapi.wm.impl.ToolbarComboButtonModel import com.intellij.ui.* import com.intellij.ui.AnimatedIcon import com.intellij.ui.components.JBLabel @@ -84,6 +85,12 @@ open class ProjectToolbarWidgetAction : ExpandableComboAction(), DumbAware { override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT + override fun createToolbarComboButton(model: ToolbarComboButtonModel): ToolbarComboButton { + return super.createToolbarComboButton(model).apply { + accessibleNamePrefix = IdeUICustomization.getInstance().projectMessage("project.widget.accessible.name.prefix") + } + } + override fun createCustomComponent(presentation: Presentation, place: String): JComponent { return super.createCustomComponent(presentation, place).apply { maximumWidth = JBUI.scale(500) diff --git a/platform/tasks-platform-impl/resources/messages/TaskBundle.properties b/platform/tasks-platform-impl/resources/messages/TaskBundle.properties index 2daf48dad553..cea3aa603c8e 100644 --- a/platform/tasks-platform-impl/resources/messages/TaskBundle.properties +++ b/platform/tasks-platform-impl/resources/messages/TaskBundle.properties @@ -244,3 +244,4 @@ notification.group.tasks=Task server connection failed notification.group.context.corrupted=Task context data corrupted task.list.url.configuration.parameter.is.mandatory='Task list URL' configuration parameter is mandatory do.not.associate.branch=Do ¬ associate branch +tasks.widget.accessible.name.prefix=Task \ No newline at end of file diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/SwitchTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/SwitchTaskAction.java index c189cf7cb8e9..5382d4febe7c 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/SwitchTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/SwitchTaskAction.java @@ -19,6 +19,8 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.changes.ChangeListManager; import com.intellij.openapi.vcs.changes.LocalChangeList; import com.intellij.openapi.wm.impl.ExpandableComboAction; +import com.intellij.openapi.wm.impl.ToolbarComboButton; +import com.intellij.openapi.wm.impl.ToolbarComboButtonModel; import com.intellij.tasks.ChangeListInfo; import com.intellij.tasks.LocalTask; import com.intellij.tasks.TaskBundle; @@ -94,6 +96,13 @@ public class SwitchTaskAction extends ExpandableComboAction implements DumbAware return ActionUpdateThread.BGT; } + @Override + public @NotNull ToolbarComboButton createToolbarComboButton(@NotNull ToolbarComboButtonModel model) { + ToolbarComboButton button = super.createToolbarComboButton(model); + button.setAccessibleNamePrefix(TaskBundle.message("tasks.widget.accessible.name.prefix")); + return button; + } + private static boolean isOriginalDefault(LocalTask activeTask) { return activeTask.isDefault() && Comparing.equal(activeTask.getCreated(), activeTask.getUpdated()); }