Index: trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 10788)
+++ trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 10790)
@@ -301,12 +301,10 @@
                 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);
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 10788)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 10790)
@@ -58,4 +58,5 @@
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
@@ -257,6 +258,5 @@
         );
         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));
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 10788)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 10790)
@@ -496,10 +496,6 @@
 
         // 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
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 10788)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 10790)
@@ -84,9 +84,4 @@
     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());
@@ -182,8 +177,8 @@
         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
Index: trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java	(revision 10788)
+++ trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java	(revision 10790)
@@ -67,6 +67,5 @@
     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());
     }
 
@@ -75,8 +74,24 @@
      * @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 10790
+     */
+    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");
     }
 
