commit 54004527c14fbe12f610ce4484921d3044a25752
Author: Simon Legner <Simon.Legner@gmail.com>
Date:   Thu Aug 11 16:05:32 2016 +0200

    Use InputMapUtils where applicable

diff --git a/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java b/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
index d62b418..50aeb2e 100644
--- a/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
+++ b/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
@@ -300,14 +300,12 @@ public void actionPerformed(ActionEvent e) {
             for (int i = 0; i < options.length; i++) {
                 final DefaultAction action = new DefaultAction(dialog, pane, i);
                 buttons.get(i).addActionListener(action);
-                buttons.get(i).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-                buttons.get(i).getActionMap().put("enter", action);
+                InputMapUtils.addEnterAction(buttons.get(i), action);
             }
         } else {
             final DefaultAction action = new DefaultAction(dialog, pane, 0);
             buttons.get(0).addActionListener(action);
-            buttons.get(0).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-            buttons.get(0).getActionMap().put("enter", action);
+            InputMapUtils.addEnterAction(buttons.get(0), action);
         }
 
         dialog.pack();
diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
index 63e4880..34d8ecb 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
@@ -57,6 +57,7 @@
 import org.openstreetmap.josm.io.ChangesetQuery;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
@@ -256,8 +257,7 @@ protected JPanel buildChangesetTablePanel() {
                 model.getSelectionModel()
         );
         tblChangesets.addMouseListener(new MouseEventHandler());
-        tblChangesets.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "showDetails");
-        tblChangesets.getActionMap().put("showDetails", new ShowDetailAction(model));
+        InputMapUtils.addEnterAction(tblChangesets, new ShowDetailAction(model));
         model.getSelectionModel().addListSelectionListener(new ChangesetDetailViewSynchronizer(model));
 
         // activate DEL on the table
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
index 70c3a4f..f738e7a 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
@@ -495,12 +495,8 @@ public void setFilter(final SearchCompiler.Match filter) {
     private void setupKeyboardShortcuts() {
 
         // ENTER = editAction, open "edit" dialog
-        tagTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
-                .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onTableEnter");
-        tagTable.getActionMap().put("onTableEnter", editAction);
-        membershipTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
-                .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onTableEnter");
-        membershipTable.getActionMap().put("onTableEnter", editAction);
+        InputMapUtils.addEnterActionWhenAncestor(tagTable, editAction);
+        InputMapUtils.addEnterActionWhenAncestor(membershipTable, editAction);
 
         // INSERT button = addAction, open "add tag" dialog
         tagTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
diff --git a/src/org/openstreetmap/josm/gui/download/DownloadDialog.java b/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
index 8bd2e67..6e9547a 100644
--- a/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
+++ b/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
@@ -83,11 +83,6 @@ public static synchronized DownloadDialog getInstance() {
     private final DownloadAction actDownload = new DownloadAction();
     protected final JButton btnDownload = new JButton(actDownload);
 
-    private void makeCheckBoxRespondToEnter(JCheckBox cb) {
-        cb.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "doDownload");
-        cb.getActionMap().put("doDownload", actDownload);
-    }
-
     protected final JPanel buildMainPanel() {
         JPanel pnl = new JPanel(new GridBagLayout());
 
@@ -181,10 +176,10 @@ protected final JPanel buildButtonPanel() {
         pnl.add(btnDownload);
         InputMapUtils.enableEnter(btnDownload);
 
-        makeCheckBoxRespondToEnter(cbDownloadGpxData);
-        makeCheckBoxRespondToEnter(cbDownloadOsmData);
-        makeCheckBoxRespondToEnter(cbDownloadNotes);
-        makeCheckBoxRespondToEnter(cbNewLayer);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadGpxData, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadOsmData, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbDownloadNotes, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbNewLayer, actDownload);
 
         // -- cancel button
         JButton btnCancel;
diff --git a/src/org/openstreetmap/josm/tools/InputMapUtils.java b/src/org/openstreetmap/josm/tools/InputMapUtils.java
index 87c6873..7e5fe41 100644
--- a/src/org/openstreetmap/josm/tools/InputMapUtils.java
+++ b/src/org/openstreetmap/josm/tools/InputMapUtils.java
@@ -66,18 +66,33 @@ public static void unassignPageUpDown(JComponent cmp, int condition) {
      */
     public static void enableEnter(JButton b) {
          b.setFocusable(true);
-         b.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
-         b.getActionMap().put("enter", b.getAction());
+         addEnterAction(b, b.getAction());
     }
 
     /**
      * Add an action activated with Enter key on a component.
      * @param c The Swing component
      * @param a action activated with Enter key
+     * @see JComponent#WHEN_FOCUSED
      */
     public static void addEnterAction(JComponent c, Action a) {
+        addEnterAction(c, a, JComponent.WHEN_FOCUSED);
+    }
+
+    /**
+     * Add an action activated with Enter key on a component or its children.
+     * @param c The Swing component
+     * @param a action activated with Enter key
+     * @see JComponent#WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
+     * @since 10783
+     */
+    public static void addEnterActionWhenAncestor(JComponent c, Action a) {
+         addEnterAction(c, a, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+    }
+
+    private static void addEnterAction(JComponent c, Action a, int condition) {
          c.getActionMap().put("enter", a);
-         c.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
+         c.getInputMap(condition).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
     }
 
     /**
