Index: trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java	(revision 5200)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
@@ -108,6 +109,5 @@
         };
         b.addActionListener(a);
-        b.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-        b.getActionMap().put("enter", a);
+        InputMapUtils.enableEnter(b);
         return b;
     }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 5200)
@@ -20,4 +20,5 @@
 import javax.swing.AbstractAction;
 import javax.swing.Box;
+import javax.swing.JComponent;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
@@ -48,4 +49,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -83,5 +85,6 @@
         undoSelectionListener = new UndoRedoSelectionListener(undoTree);
         undoTree.getSelectionModel().addTreeSelectionListener(undoSelectionListener);
-
+        InputMapUtils.unassignCtrlShiftUpDown(undoTree, JComponent.WHEN_FOCUSED);
+        
         redoTree.addMouseListener(new PopupMenuHandler());
         redoTree.setRootVisible(false);
@@ -119,4 +122,7 @@
             new SideButton(redoAction)
         }));
+        
+        InputMapUtils.addEnterAction(undoTree, selectAction);
+        InputMapUtils.addEnterAction(redoTree, selectAction);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 5200)
@@ -48,4 +48,5 @@
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.MultikeyActionsHandler;
 import org.openstreetmap.josm.tools.MultikeyShortcutAction;
@@ -213,4 +214,24 @@
             }
         });
+        
+        // Toggle filter "enabled" on Enter
+        InputMapUtils.addEnterAction(userTable, new AbstractAction() {
+            public void actionPerformed(ActionEvent e) {
+                int index = userTable.getSelectedRow();
+                if (index<0) return;
+                Filter filter = filterModel.getFilter(index);
+                filterModel.setValueAt(!filter.enable, index, FilterTableModel.COL_ENABLED);
+            }
+        });
+
+        // Toggle filter "hiding" on Spacebar
+        InputMapUtils.addSpacebarAction(userTable, new AbstractAction() {
+            public void actionPerformed(ActionEvent e) {
+                int index = userTable.getSelectedRow();
+                if (index<0) return;
+                Filter filter = filterModel.getFilter(index);
+                filterModel.setValueAt(!filter.hiding, index, FilterTableModel.COL_HIDING);
+            }
+        });
 
         createLayout(userTable, true, Arrays.asList(new SideButton[] {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 5200)
@@ -43,4 +43,5 @@
 import org.openstreetmap.josm.gui.history.HistoryLoadTask;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -107,4 +108,8 @@
         historyTable.getSelectionModel().addListSelectionListener(showHistoryAction);
         historyTable.getSelectionModel().addListSelectionListener(reloadAction);
+        
+        // Show history dialog on Enter/Spacebar
+        InputMapUtils.addEnterAction(historyTable, showHistoryAction);
+        InputMapUtils.addSpacebarAction(historyTable, showHistoryAction);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 5200)
@@ -65,4 +65,5 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.MultikeyActionsHandler;
 import org.openstreetmap.josm.tools.MultikeyShortcutAction;
@@ -271,6 +272,16 @@
                 );
         getActionMap().put("delete", deleteLayerAction);
-
-
+        
+        // Activate layer on Enter key press
+        InputMapUtils.addEnterAction(layerList, new AbstractAction() {
+            public void actionPerformed(ActionEvent e) {
+                activateLayerAction.actionPerformed(null);
+                layerList.requestFocus();
+            }
+        });
+        
+        // Show/Activate layer on Enter key press
+        InputMapUtils.addSpacebarAction(layerList, showHideLayerAction);
+        
         createLayout(layerList, true, Arrays.asList(new SideButton[] {
                 new SideButton(moveUpAction, false),
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 5200)
@@ -69,4 +69,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.Utils;
@@ -142,5 +143,9 @@
         selectionModel.addListSelectionListener(upAction);
         selectionModel.addListSelectionListener(downAction);
-
+        
+        // Toggle style on Enter and Spacebar
+        InputMapUtils.addEnterAction(tblStyles, onoffAction);
+        InputMapUtils.addSpacebarAction(tblStyles, onoffAction);
+        
         createLayout(p, true, Arrays.asList(new SideButton[] {
                 new SideButton(onoffAction, false),
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 5200)
@@ -25,6 +25,8 @@
 import javax.swing.Action;
 import javax.swing.DefaultListSelectionModel;
+import javax.swing.JComponent;
 import javax.swing.JList;
 import javax.swing.JMenuItem;
+import javax.swing.KeyStroke;
 import javax.swing.ListSelectionModel;
 import javax.swing.SwingUtilities;
@@ -65,4 +67,5 @@
 import org.openstreetmap.josm.gui.widgets.ListPopupMenu;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -151,6 +154,15 @@
         //displaylist.getActionMap().put("deleteRelation", deleteAction);
 
+        InputMapUtils.unassignCtrlShiftUpDown(displaylist, JComponent.WHEN_FOCUSED);
+        
+        // Select relation on Ctrl-Enter
+        InputMapUtils.addEnterAction(displaylist, selectAction);
+
         addToRelation = new AddToRelation();
         popupMenu = new RelationDialogPopupMenu(displaylist);
+
+        // Edit relation on Ctrl-Enter
+        displaylist.getActionMap().put("edit", editAction);
+        displaylist.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.CTRL_MASK), "edit");
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 5200)
@@ -72,4 +72,5 @@
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -148,4 +149,5 @@
 
         popupMenu = new SelectionPopup(lstPrimitives);
+        InputMapUtils.addEnterAction(lstPrimitives, actZoomToListSelection);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 5200)
@@ -21,7 +21,9 @@
 
 import javax.swing.AbstractAction;
+import javax.swing.JComponent;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
 import javax.swing.JPopupMenu;
+import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 import javax.swing.event.TreeSelectionEvent;
@@ -53,4 +55,5 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.xml.sax.SAXException;
@@ -105,5 +108,6 @@
         tree.addMouseListener(new ClickWatch());
         tree.addTreeSelectionListener(new SelectionWatch());
-
+        InputMapUtils.unassignCtrlShiftUpDown(tree, JComponent.WHEN_FOCUSED);
+                
         List<SideButton> buttons = new LinkedList<SideButton>();
 
@@ -119,4 +123,6 @@
             }
         });
+        InputMapUtils.addEnterAction(tree, selectButton.getAction());
+        
         selectButton.setEnabled(false);
         buttons.add(selectButton);
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 5200)
@@ -112,4 +112,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.OpenBrowser;
@@ -846,16 +847,9 @@
         
         //  unassign some standard shortcuts for JTable to allow upload / download
-        InputMap inputMap=SwingUtilities.getUIInputMap(propertyTable,JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
-        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_UP,InputEvent.CTRL_MASK|InputEvent.SHIFT_MASK));
-        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,InputEvent.CTRL_MASK|InputEvent.SHIFT_MASK));
-        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_UP,InputEvent.ALT_MASK|InputEvent.SHIFT_MASK));
-        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,InputEvent.ALT_MASK|InputEvent.SHIFT_MASK));
-        SwingUtilities.replaceUIInputMap(propertyTable,JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,inputMap);
+        InputMapUtils.unassignCtrlShiftUpDown(propertyTable, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
         
         // -- add action and shortcut
         this.btnAdd = new SideButton(addAction);
-        btnAdd.setFocusable(true);
-        btnAdd.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter");
-        btnAdd.getActionMap().put("onEnter", addAction);
+        InputMapUtils.enableEnter(this.btnAdd);
 
         // -- edit action
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 5200)
@@ -42,4 +42,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.OsmUrlToBounds;
 import org.openstreetmap.josm.tools.Utils;
@@ -163,7 +164,6 @@
         // -- download button
         pnl.add(btnDownload = new SideButton(actDownload = new DownloadAction()));
-        btnDownload.setFocusable(true);
-        btnDownload.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "download");
-        btnDownload.getActionMap().put("download",actDownload);
+        InputMapUtils.enableEnter(btnDownload);
+        
         makeCheckBoxRespondToEnter(cbDownloadGpxData);
         makeCheckBoxRespondToEnter(cbDownloadOsmData);
@@ -174,7 +174,5 @@
         CancelAction actCancel = new CancelAction();
         pnl.add(btnCancel = new SideButton(actCancel));
-        btnCancel.setFocusable(true);
-        btnCancel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-        btnCancel.getActionMap().put("enter",actCancel);
+        InputMapUtils.enableEnter(btnCancel);
 
         // -- cancel on ESC
@@ -185,7 +183,5 @@
         SideButton btnHelp;
         pnl.add(btnHelp = new SideButton(new ContextSensitiveHelpAction(ht("/Action/Download"))));
-        btnHelp.setFocusable(true);
-        btnHelp.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-        btnHelp.getActionMap().put("enter",btnHelp.getAction());
+        InputMapUtils.enableEnter(btnHelp);
 
         return pnl;
Index: trunk/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java	(revision 5200)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
@@ -74,7 +75,5 @@
         lstOpenChangesets.addListSelectionListener(closeAction);
         pnl.add(btnCloseChangesets = new SideButton(closeAction));
-        btnCloseChangesets.setFocusable(true);
-        btnCloseChangesets.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-        btnCloseChangesets.getActionMap().put("enter",closeAction);
+        InputMapUtils.enableEnter(btnCloseChangesets);
 
         // -- cancel action
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 5199)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 5200)
@@ -45,4 +45,5 @@
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.WindowGeometry;
 
@@ -154,7 +155,5 @@
         pnl.add(btnUpload = new SideButton(uploadAction));
         btnUpload.setFocusable(true);
-        InputMap inputMap = btnUpload.getInputMap();
-        inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "doUpload");
-        btnUpload.getActionMap().put("doUpload", uploadAction);
+        InputMapUtils.enableEnter(btnUpload);
 
         // -- cancel button
Index: trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java	(revision 5200)
+++ trunk/src/org/openstreetmap/josm/tools/InputMapUtils.java	(revision 5200)
@@ -0,0 +1,46 @@
+package org.openstreetmap.josm.tools;
+
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import javax.swing.Action;
+import javax.swing.InputMap;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+
+/**
+ * Tools to work with Swing InputMap 
+ *
+ */
+public class InputMapUtils {
+      public static void unassignCtrlShiftUpDown(JComponent cmp, int condition) {
+        InputMap inputMap=SwingUtilities.getUIInputMap(cmp, condition);
+        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_UP,InputEvent.CTRL_MASK|InputEvent.SHIFT_MASK));
+        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,InputEvent.CTRL_MASK|InputEvent.SHIFT_MASK));
+        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_UP,InputEvent.ALT_MASK|InputEvent.SHIFT_MASK));
+        inputMap.remove(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,InputEvent.ALT_MASK|InputEvent.SHIFT_MASK));
+        SwingUtilities.replaceUIInputMap(cmp,JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,inputMap);
+      }
+      
+      
+      /**
+       * Enable activating button on Enter (which is replaced with spacebar for certain Look-And-Feels)
+       */
+      public static void enableEnter(JButton b) {
+         b.setFocusable(true);
+         b.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_Q,0), "enter");
+         b.getActionMap().put("enter",b.getAction());
+      }
+      
+      public static void addEnterAction(JComponent c, Action a) {
+         c.getActionMap().put("enter", a);
+         c.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "enter");
+      }
+      
+      public static void addSpacebarAction(JComponent c, Action a) {
+         c.getActionMap().put("spacebar", a);
+         c.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "spacebar");
+      }
+           
+}
