From c99d35bcba60dec171e3e024fac5ca4f062bcc03 Mon Sep 17 00:00:00 2001 From: Gregory Shrago Date: Thu, 2 Sep 2010 20:37:43 +0400 Subject: [PATCH] IDEA-58308 SQL console: IAE at com.intellij.ui.SwingActionWrapper.() --- .../src/com/intellij/ui/SwingActionWrapper.java | 2 +- .../util/src/com/intellij/ui/TableUtil.java | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/platform/util/src/com/intellij/ui/SwingActionWrapper.java b/platform/util/src/com/intellij/ui/SwingActionWrapper.java index 8f02d95f0000..111857ce454e 100644 --- a/platform/util/src/com/intellij/ui/SwingActionWrapper.java +++ b/platform/util/src/com/intellij/ui/SwingActionWrapper.java @@ -41,7 +41,7 @@ public abstract class SwingActionWrapper implements Action } @Nullable - private static Object getKeyForActionMap(JComponent component, KeyStroke keyStroke) { + public static Object getKeyForActionMap(JComponent component, KeyStroke keyStroke) { for (int i = 0; i < 3; i++) { final InputMap inputMap = component.getInputMap(i); if (inputMap == null) continue; diff --git a/platform/util/src/com/intellij/ui/TableUtil.java b/platform/util/src/com/intellij/ui/TableUtil.java index 48e5989f1251..2c8edb837188 100644 --- a/platform/util/src/com/intellij/ui/TableUtil.java +++ b/platform/util/src/com/intellij/ui/TableUtil.java @@ -196,21 +196,20 @@ public class TableUtil { } public static void configureAllowedCellSelection(final JTable table, final Condition cellCondition) { - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("ENTER")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("TAB")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("shift TAB")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("RIGHT")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("LEFT")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("UP")); - new MyFocusAction(table, cellCondition, KeyStroke.getKeyStroke("DOWN")); + for (String keyStroke : new String[]{"ENTER","TAB","shift TAB","RIGHT","LEFT","UP","DOWN"}) { + final Object key = SwingActionWrapper.getKeyForActionMap(table, KeyStroke.getKeyStroke(keyStroke)); + if (key != null) { + new MyFocusAction(table, cellCondition, key); + } + } } public static class MyFocusAction extends SwingActionWrapper { private final Condition myCellCondition; - public MyFocusAction(JTable table, Condition cellCondition, KeyStroke keyStroke) { - super(table, keyStroke); + public MyFocusAction(JTable table, Condition cellCondition, Object key) { + super(table, key); myCellCondition = cellCondition; }