Skip to content

Commit b4f1021

Browse files
committed
fix(gui): improve accessibility of preferences dialog (#2445)
1 parent a163e5a commit b4f1021

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

Diff for: jadx-gui/src/main/java/jadx/gui/settings/ui/JadxSettingsWindow.java

+1
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ private void initUI() {
142142

143143
tree = new SettingsTree();
144144
tree.init(wrapGroupPanel, groups);
145+
tree.setFocusable(true);
145146
JScrollPane leftPane = new JScrollPane(tree);
146147
leftPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 3, 3));
147148

Diff for: jadx-gui/src/main/java/jadx/gui/settings/ui/SettingsGroup.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,18 @@ public JLabel addRow(String label, JComponent comp) {
3939
}
4040

4141
public JLabel addRow(String label, String tooltip, JComponent comp) {
42-
c.gridy = row++;
4342
JLabel rowLbl = new JLabel(label);
4443
rowLbl.setLabelFor(comp);
4544
rowLbl.setHorizontalAlignment(SwingConstants.LEFT);
45+
if (tooltip != null) {
46+
rowLbl.setToolTipText(tooltip);
47+
comp.setToolTipText(tooltip);
48+
} else {
49+
comp.setToolTipText(label);
50+
}
51+
comp.getAccessibleContext().setAccessibleName(label);
52+
53+
c.gridy = row++;
4654
c.gridx = 0;
4755
c.gridwidth = 1;
4856
c.anchor = GridBagConstraints.LINE_START;
@@ -55,10 +63,6 @@ public JLabel addRow(String label, String tooltip, JComponent comp) {
5563
c.weightx = 0.7;
5664
c.fill = GridBagConstraints.LINE_START;
5765

58-
if (tooltip != null) {
59-
rowLbl.setToolTipText(tooltip);
60-
comp.setToolTipText(tooltip);
61-
}
6266
gridPanel.add(comp, c);
6367
comp.addPropertyChangeListener("enabled", evt -> rowLbl.setEnabled((boolean) evt.getNewValue()));
6468
return rowLbl;

Diff for: jadx-gui/src/main/java/jadx/gui/settings/ui/plugins/PluginSettingsGroup.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ private JPanel buildMainSettingsPage() {
9696
pluginList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
9797
pluginList.setCellRenderer(new PluginsListCellRenderer());
9898
pluginList.addListSelectionListener(ev -> onSelection(pluginList.getSelectedValue()));
99+
pluginList.setFocusable(true);
99100

100101
JScrollPane scrollPane = new JScrollPane(pluginList);
101102
scrollPane.setMinimumSize(new Dimension(80, 120));
@@ -276,8 +277,7 @@ public PluginsListCellRenderer() {
276277

277278
titleLbl = new JLabel();
278279
titleLbl.setHorizontalAlignment(SwingConstants.CENTER);
279-
titleLbl.setEnabled(false);
280-
versionLbl.setPreferredSize(new Dimension(40, 10));
280+
titleLbl.setPreferredSize(new Dimension(40, 10));
281281
}
282282

283283
@Override
@@ -290,6 +290,7 @@ public Component getListCellRendererComponent(JList<? extends BasePluginListNode
290290
nameLbl.setText(plugin.getTitle());
291291
nameLbl.setToolTipText(plugin.getLocationId());
292292
versionLbl.setText(Utils.getOrElse(plugin.getVersion(), ""));
293+
panel.getAccessibleContext().setAccessibleName(plugin.getTitle());
293294

294295
boolean enabled = !plugin.isDisabled();
295296
nameLbl.setEnabled(enabled);

0 commit comments

Comments
 (0)