IDEA-CR-67094: IDEA-250871 Class import menu items are not spoken

GitOrigin-RevId: af825316b58982142d81d97b027bd46b57af88f6
This commit is contained in:
Artem Semenov
2020-09-24 19:14:47 +00:00
committed by intellij-monorepo-bot
parent 6280f8ed57
commit 1b504b303e
3 changed files with 31 additions and 3 deletions
@@ -36,6 +36,7 @@ import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.accessibility.AccessibleContext;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
@@ -136,8 +137,18 @@ public class AddImportAction implements QuestionAction {
PopupListElementRenderer baseRenderer = (PopupListElementRenderer)super.getListElementRenderer();
ListCellRenderer<Object> psiRenderer = new DefaultPsiElementCellRenderer();
return (list, value, index, isSelected, cellHasFocus) -> {
JPanel panel = new JPanel(new BorderLayout());
baseRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
JPanel panel = new JPanel(new BorderLayout()) {
private final AccessibleContext myAccessibleContext = baseRenderer.getAccessibleContext();
@Override
public AccessibleContext getAccessibleContext() {
if (myAccessibleContext == null) {
return super.getAccessibleContext();
}
return myAccessibleContext;
}
};
panel.add(baseRenderer.getNextStepLabel(), BorderLayout.EAST);
panel.add(psiRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus));
return panel;
@@ -7,6 +7,8 @@ import com.intellij.ui.components.panels.OpaquePanel;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.accessibility.AccessibleContextUtil;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
@@ -15,7 +17,7 @@ import java.awt.*;
import static com.intellij.ui.RelativeFont.BOLD;
public abstract class GroupedElementsRenderer {
public abstract class GroupedElementsRenderer implements Accessible {
protected SeparatorWithText mySeparatorComponent = createSeparator();
protected abstract JComponent createItemComponent();
@@ -178,4 +180,8 @@ public abstract class GroupedElementsRenderer {
}
}
@Override
public AccessibleContext getAccessibleContext() {
return myRendererComponent.getAccessibleContext();
}
}
@@ -18,6 +18,7 @@ import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.Nullable;
import javax.accessibility.AccessibleContext;
import javax.swing.*;
import java.awt.*;
@@ -66,8 +67,18 @@ public class PopupListElementRenderer<E> extends GroupedItemsListRenderer<E> {
@Override
protected JComponent createItemComponent() {
JPanel panel = new JPanel(new BorderLayout());
createLabel();
JPanel panel = new JPanel(new BorderLayout()) {
private final AccessibleContext myAccessibleContext = myTextLabel.getAccessibleContext();
@Override
public AccessibleContext getAccessibleContext() {
if (myAccessibleContext == null) {
return super.getAccessibleContext();
}
return myAccessibleContext;
}
};
panel.add(myTextLabel, BorderLayout.WEST);
myValueLabel = new JLabel();
myValueLabel.setEnabled(false);