/* * Copyright (c) 2009 Kathryn Huxtable and Kenneth Orr. * * This file is part of the SeaGlass Pluggable Look and Feel. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ package com.seaglasslookandfeel.util; import javax.swing.JTextField; import javax.swing.UIDefaults; import javax.swing.text.DefaultEditorKit; /** * Install Mac keyboard bindings. */ public class MacKeybindings { /** * Install the key bindings. * * @param table the UIDefaults table. */ public static void installKeybindings(UIDefaults table) { UIDefaults.LazyInputMap buttonFocusInputMap = new UIDefaults.LazyInputMap(new Object[] { "SPACE", "pressed", "released SPACE", "released" }); // Input map for text fields UIDefaults.LazyInputMap fieldInputMap = new UIDefaults.LazyInputMap(new String[] { "BACK_SPACE", DefaultEditorKit.deletePrevCharAction, "DELETE", DefaultEditorKit.deleteNextCharAction, "meta X", DefaultEditorKit.cutAction, "meta C", DefaultEditorKit.copyAction, "meta V", DefaultEditorKit.pasteAction, "CUT", DefaultEditorKit.cutAction, "COPY", DefaultEditorKit.copyAction, "PASTE", DefaultEditorKit.pasteAction, "RIGHT", DefaultEditorKit.forwardAction, "KP_RIGHT", DefaultEditorKit.forwardAction, "LEFT", DefaultEditorKit.backwardAction, "KP_LEFT", DefaultEditorKit.backwardAction, "shift RIGHT", DefaultEditorKit.selectionForwardAction, "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction, "shift LEFT", DefaultEditorKit.selectionBackwardAction, "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction, "UP", DefaultEditorKit.upAction, "KP_UP", DefaultEditorKit.upAction, "DOWN", DefaultEditorKit.downAction, "KP_DOWN", DefaultEditorKit.downAction, "shift UP", DefaultEditorKit.selectionUpAction, "shift KP_UP", DefaultEditorKit.selectionUpAction, "shift DOWN", DefaultEditorKit.selectionDownAction, "shift KP_DOWN", DefaultEditorKit.selectionDownAction, "alt LEFT", DefaultEditorKit.previousWordAction, "alt KP_LEFT", DefaultEditorKit.previousWordAction, "alt RIGHT", DefaultEditorKit.nextWordAction, "alt KP_RIGHT", DefaultEditorKit.nextWordAction, "alt shift LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift RIGHT", DefaultEditorKit.selectionNextWordAction, "alt shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction, "alt UP", DefaultEditorKit.beginLineAction, "alt KP_UP", DefaultEditorKit.beginLineAction, "ctrl LEFT", DefaultEditorKit.beginLineAction, "ctrl KP_LEFT", DefaultEditorKit.beginLineAction, "meta LEFT", DefaultEditorKit.beginLineAction, "meta KP_LEFT", DefaultEditorKit.beginLineAction, "alt DOWN", DefaultEditorKit.endLineAction, "alt KP_DOWN", DefaultEditorKit.endLineAction, "ctrl RIGHT", DefaultEditorKit.endLineAction, "ctrl KP_RIGHT", DefaultEditorKit.endLineAction, "meta RIGHT", DefaultEditorKit.endLineAction, "meta KP_RIGHT", DefaultEditorKit.endLineAction, "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction, "ctrl shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "HOME", DefaultEditorKit.beginAction, "END", DefaultEditorKit.endAction, "meta UP", DefaultEditorKit.beginAction, "meta KP_UP", DefaultEditorKit.beginAction, "meta DOWN", DefaultEditorKit.endAction, "meta KP_DOWN", DefaultEditorKit.endAction, "shift HOME", DefaultEditorKit.selectionBeginAction, "shift END", DefaultEditorKit.selectionEndAction, "meta A", DefaultEditorKit.selectAllAction, "meta shift A", "unselect", "controlBackground shift O", "toggle-componentOrientation", "alt DELETE", MacEditorKit.deleteNextWordAction, "alt BACK_SPACE", MacEditorKit.deletePrevWordAction, "ENTER", JTextField.notifyAction, }); // Input map for password fields UIDefaults.LazyInputMap passwordFieldInputMap = new UIDefaults.LazyInputMap(new String[] { "BACK_SPACE", DefaultEditorKit.deletePrevCharAction, "DELETE", DefaultEditorKit.deleteNextCharAction, "meta X", DefaultEditorKit.beepAction, "meta C", DefaultEditorKit.beepAction, "meta V", DefaultEditorKit.pasteAction, "CUT", DefaultEditorKit.beepAction, "COPY", DefaultEditorKit.beepAction, "PASTE", DefaultEditorKit.pasteAction, "RIGHT", DefaultEditorKit.forwardAction, "KP_RIGHT", DefaultEditorKit.forwardAction, "LEFT", DefaultEditorKit.backwardAction, "KP_LEFT", DefaultEditorKit.backwardAction, "shift RIGHT", DefaultEditorKit.selectionForwardAction, "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction, "shift LEFT", DefaultEditorKit.selectionBackwardAction, "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction, "UP", DefaultEditorKit.upAction, "KP_UP", DefaultEditorKit.upAction, "DOWN", DefaultEditorKit.downAction, "KP_DOWN", DefaultEditorKit.downAction, "shift UP", DefaultEditorKit.selectionUpAction, "shift KP_UP", DefaultEditorKit.selectionUpAction, "shift DOWN", DefaultEditorKit.selectionDownAction, "shift KP_DOWN", DefaultEditorKit.selectionDownAction, "alt LEFT", DefaultEditorKit.previousWordAction, "alt KP_LEFT", DefaultEditorKit.previousWordAction, "alt RIGHT", DefaultEditorKit.nextWordAction, "alt KP_RIGHT", DefaultEditorKit.nextWordAction, "alt shift LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift RIGHT", DefaultEditorKit.selectionNextWordAction, "alt shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction, "alt UP", DefaultEditorKit.beginLineAction, "alt KP_UP", DefaultEditorKit.beginLineAction, "ctrl LEFT", DefaultEditorKit.beginLineAction, "ctrl KP_LEFT", DefaultEditorKit.beginLineAction, "meta LEFT", DefaultEditorKit.beginLineAction, "meta KP_LEFT", DefaultEditorKit.beginLineAction, "alt DOWN", DefaultEditorKit.endLineAction, "alt KP_DOWN", DefaultEditorKit.endLineAction, "ctrl RIGHT", DefaultEditorKit.endLineAction, "ctrl KP_RIGHT", DefaultEditorKit.endLineAction, "meta RIGHT", DefaultEditorKit.endLineAction, "meta KP_RIGHT", DefaultEditorKit.endLineAction, "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction, "ctrl shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "HOME", DefaultEditorKit.beginAction, "END", DefaultEditorKit.endAction, "meta UP", DefaultEditorKit.beginAction, "meta KP_UP", DefaultEditorKit.beginAction, "meta DOWN", DefaultEditorKit.endAction, "meta KP_DOWN", DefaultEditorKit.endAction, "shift HOME", DefaultEditorKit.selectionBeginAction, "shift END", DefaultEditorKit.selectionEndAction, "meta A", DefaultEditorKit.selectAllAction, "meta shift A", "unselect", "controlBackground shift O", "toggle-componentOrientation", "alt DELETE", MacEditorKit.deleteNextWordAction, "alt BACK_SPACE", MacEditorKit.deletePrevWordAction, "ENTER", JTextField.notifyAction, }); // Input map for spinner editors UIDefaults.LazyInputMap spinnerInputMap = new UIDefaults.LazyInputMap(new String[] { "BACK_SPACE", DefaultEditorKit.deletePrevCharAction, "DELETE", DefaultEditorKit.deleteNextCharAction, "meta X", DefaultEditorKit.cutAction, "meta C", DefaultEditorKit.copyAction, "meta V", DefaultEditorKit.pasteAction, "CUT", DefaultEditorKit.cutAction, "COPY", DefaultEditorKit.copyAction, "PASTE", DefaultEditorKit.pasteAction, "RIGHT", DefaultEditorKit.forwardAction, "KP_RIGHT", DefaultEditorKit.forwardAction, "LEFT", DefaultEditorKit.backwardAction, "KP_LEFT", DefaultEditorKit.backwardAction, "shift RIGHT", DefaultEditorKit.selectionForwardAction, "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction, "shift LEFT", DefaultEditorKit.selectionBackwardAction, "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction, "UP", "increment", "KP_UP", "increment", "DOWN", "decrement", "KP_DOWN", "decrement", "shift UP", DefaultEditorKit.selectionUpAction, "shift KP_UP", DefaultEditorKit.selectionUpAction, "shift DOWN", DefaultEditorKit.selectionDownAction, "shift KP_DOWN", DefaultEditorKit.selectionDownAction, "alt LEFT", DefaultEditorKit.previousWordAction, "alt KP_LEFT", DefaultEditorKit.previousWordAction, "alt RIGHT", DefaultEditorKit.nextWordAction, "alt KP_RIGHT", DefaultEditorKit.nextWordAction, "alt shift LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift RIGHT", DefaultEditorKit.selectionNextWordAction, "alt shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction, "alt UP", DefaultEditorKit.beginLineAction, "alt KP_UP", DefaultEditorKit.beginLineAction, "ctrl LEFT", DefaultEditorKit.beginLineAction, "ctrl KP_LEFT", DefaultEditorKit.beginLineAction, "meta LEFT", DefaultEditorKit.beginLineAction, "meta KP_LEFT", DefaultEditorKit.beginLineAction, "alt DOWN", DefaultEditorKit.endLineAction, "alt KP_DOWN", DefaultEditorKit.endLineAction, "ctrl RIGHT", DefaultEditorKit.endLineAction, "ctrl KP_RIGHT", DefaultEditorKit.endLineAction, "meta RIGHT", DefaultEditorKit.endLineAction, "meta KP_RIGHT", DefaultEditorKit.endLineAction, "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction, "ctrl shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "HOME", DefaultEditorKit.beginAction, "END", DefaultEditorKit.endAction, "meta UP", DefaultEditorKit.beginAction, "meta KP_UP", DefaultEditorKit.beginAction, "meta DOWN", DefaultEditorKit.endAction, "meta KP_DOWN", DefaultEditorKit.endAction, "shift HOME", DefaultEditorKit.selectionBeginAction, "shift END", DefaultEditorKit.selectionEndAction, "meta A", DefaultEditorKit.selectAllAction, "meta shift A", "unselect", "controlBackground shift O", "toggle-componentOrientation", "alt DELETE", MacEditorKit.deleteNextWordAction, "alt BACK_SPACE", MacEditorKit.deletePrevWordAction, "ENTER", JTextField.notifyAction, }); // Input map for multiline text fields UIDefaults.LazyInputMap multilineInputMap = new UIDefaults.LazyInputMap(new String[] { "shift ENTER", DefaultEditorKit.insertBreakAction, "alt ENTER", DefaultEditorKit.insertBreakAction, "ENTER", DefaultEditorKit.insertBreakAction, "TAB", DefaultEditorKit.insertTabAction, "BACK_SPACE", DefaultEditorKit.deletePrevCharAction, "DELETE", DefaultEditorKit.deleteNextCharAction, "meta X", DefaultEditorKit.cutAction, "meta C", DefaultEditorKit.copyAction, "meta V", DefaultEditorKit.pasteAction, "CUT", DefaultEditorKit.cutAction, "COPY", DefaultEditorKit.copyAction, "PASTE", DefaultEditorKit.pasteAction, "PAGE_UP", DefaultEditorKit.pageUpAction, "PAGE_DOWN", DefaultEditorKit.pageDownAction, "shift PAGE_UP", "selection-page-up", "shift PAGE_DOWN", "selection-page-down", "ctrl shift PAGE_UP", "selection-page-left", "ctrl shift PAGE_DOWN", "selection-page-right", "RIGHT", DefaultEditorKit.forwardAction, "KP_RIGHT", DefaultEditorKit.forwardAction, "LEFT", DefaultEditorKit.backwardAction, "KP_LEFT", DefaultEditorKit.backwardAction, "shift RIGHT", DefaultEditorKit.selectionForwardAction, "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction, "shift LEFT", DefaultEditorKit.selectionBackwardAction, "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction, "UP", DefaultEditorKit.upAction, "KP_UP", DefaultEditorKit.upAction, "DOWN", DefaultEditorKit.downAction, "KP_DOWN", DefaultEditorKit.downAction, "shift UP", DefaultEditorKit.selectionUpAction, "shift KP_UP", DefaultEditorKit.selectionUpAction, "shift DOWN", DefaultEditorKit.selectionDownAction, "shift KP_DOWN", DefaultEditorKit.selectionDownAction, "alt LEFT", DefaultEditorKit.previousWordAction, "alt KP_LEFT", DefaultEditorKit.previousWordAction, "alt RIGHT", DefaultEditorKit.nextWordAction, "alt KP_RIGHT", DefaultEditorKit.nextWordAction, "alt shift LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift RIGHT", DefaultEditorKit.selectionNextWordAction, "alt shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction, "alt UP", DefaultEditorKit.beginLineAction, "alt KP_UP", DefaultEditorKit.beginLineAction, "ctrl LEFT", DefaultEditorKit.beginLineAction, "ctrl KP_LEFT", DefaultEditorKit.beginLineAction, "meta LEFT", DefaultEditorKit.beginLineAction, "meta KP_LEFT", DefaultEditorKit.beginLineAction, "alt DOWN", DefaultEditorKit.endLineAction, "alt KP_DOWN", DefaultEditorKit.endLineAction, "ctrl RIGHT", DefaultEditorKit.endLineAction, "ctrl KP_RIGHT", DefaultEditorKit.endLineAction, "meta RIGHT", DefaultEditorKit.endLineAction, "meta KP_RIGHT", DefaultEditorKit.endLineAction, "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift KP_LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction, "ctrl shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift KP_RIGHT", DefaultEditorKit.selectionEndLineAction, "HOME", DefaultEditorKit.beginAction, "END", DefaultEditorKit.endAction, "meta UP", DefaultEditorKit.beginAction, "meta KP_UP", DefaultEditorKit.beginAction, "meta DOWN", DefaultEditorKit.endAction, "meta KP_DOWN", DefaultEditorKit.endAction, "shift HOME", DefaultEditorKit.selectionBeginAction, "shift END", DefaultEditorKit.selectionEndAction, "meta A", DefaultEditorKit.selectAllAction, "meta shift A", "unselect", "controlBackground shift O", "toggle-componentOrientation", "alt DELETE", MacEditorKit.deleteNextWordAction, "alt BACK_SPACE", MacEditorKit.deletePrevWordAction, }); // Input map for the editors of combo boxes UIDefaults.LazyInputMap comboEditorInputMap = new UIDefaults.LazyInputMap(new String[] { "BACK_SPACE", DefaultEditorKit.deletePrevCharAction, "DELETE", DefaultEditorKit.deleteNextCharAction, "meta X", DefaultEditorKit.cutAction, "meta C", DefaultEditorKit.copyAction, "meta V", DefaultEditorKit.pasteAction, "CUT", DefaultEditorKit.cutAction, "COPY", DefaultEditorKit.copyAction, "PASTE", DefaultEditorKit.pasteAction, "RIGHT", DefaultEditorKit.forwardAction, "KP_RIGHT", DefaultEditorKit.forwardAction, "LEFT", DefaultEditorKit.backwardAction, "KP_LEFT", DefaultEditorKit.backwardAction, "shift RIGHT", DefaultEditorKit.selectionForwardAction, "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction, "shift LEFT", DefaultEditorKit.selectionBackwardAction, "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction, // "UP", DefaultEditorKit.upAction, // "DOWN", DefaultEditorKit.downAction, // "shift UP", DefaultEditorKit.selectionUpAction, // "shift DOWN", DefaultEditorKit.selectionDownAction, // , DefaultEditorKit.beginWordAction, // , DefaultEditorKit.endWordAction, // , DefaultEditorKit.selectionBeginWordAction, // , DefaultEditorKit.selectionEndWordAction, "alt LEFT", DefaultEditorKit.previousWordAction, "alt KP_LEFT", DefaultEditorKit.previousWordAction, "alt RIGHT", DefaultEditorKit.nextWordAction, "alt KP_RIGHT", DefaultEditorKit.nextWordAction, "alt shift LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction, "alt shift RIGHT", DefaultEditorKit.selectionNextWordAction, "alt shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction, // "alt UP", DefaultEditorKit.beginLineAction, "ctrl LEFT", DefaultEditorKit.beginLineAction, "meta LEFT", DefaultEditorKit.beginLineAction, // "alt DOWN", DefaultEditorKit.endLineAction, "ctrl RIGHT", DefaultEditorKit.endLineAction, "meta RIGHT", DefaultEditorKit.endLineAction, "ctrl shift LEFT", DefaultEditorKit.selectionBeginLineAction, "meta shift LEFT", DefaultEditorKit.selectionBeginLineAction, "ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction, "meta shift RIGHT", DefaultEditorKit.selectionEndLineAction, // , DefaultEditorKit.beginParagraphAction, // , DefaultEditorKit.endParagraphAction, // , DefaultEditorKit.selectionBeginParagraphAction, // , DefaultEditorKit.selectionEndParagraphAction, // "HOME", DefaultEditorKit.beginAction, // "END", DefaultEditorKit.endAction, // "meta UP", DefaultEditorKit.beginAction, // "meta DOWN", DefaultEditorKit.endAction, "shift HOME", DefaultEditorKit.selectionBeginAction, "shift END", DefaultEditorKit.selectionEndAction, // , DefaultEditorKit.selectWordAction, // , DefaultEditorKit.selectLineAction, // , DefaultEditorKit.selectParagraphAction, "meta A", DefaultEditorKit.selectAllAction, "meta shift A", "unselect" /*DefaultEditorKit.unselectAction*/, "controlBackground shift O", "toggle-componentOrientation", /*DefaultEditorKit.toggleComponentOrientation*/ "alt DELETE", MacEditorKit.deleteNextWordAction, "alt BACK_SPACE", MacEditorKit.deletePrevWordAction, "ENTER", JTextField.notifyAction, }); UIDefaults.LazyInputMap tabbedPaneFocusInputMap = new UIDefaults.LazyInputMap(new Object[] { "RIGHT", "navigateRight", "KP_RIGHT", "navigateRight", "LEFT", "navigateLeft", "KP_LEFT", "navigateLeft", "UP", "navigateUp", "KP_UP", "navigateUp", "DOWN", "navigateDown", "KP_DOWN", "navigateDown", "ctrl DOWN", "requestFocusForVisibleComponent", "ctrl KP_DOWN", "requestFocusForVisibleComponent", }); UIDefaults.LazyInputMap tabbedPaneAncestorInputMap = new UIDefaults.LazyInputMap(new Object[] { "ctrl PAGE_DOWN", "navigatePageDown", "ctrl PAGE_UP", "navigatePageUp", "ctrl UP", "requestFocus", "ctrl KP_UP", "requestFocus", }); UIDefaults.LazyInputMap tableAncestorInputMap = new UIDefaults.LazyInputMap(new Object[] { "meta C", "copy", "meta V", "paste", "meta X", "cut", "COPY", "copy", "PASTE", "paste", "CUT", "cut", "RIGHT", "selectNextColumn", "KP_RIGHT", "selectNextColumn", "shift RIGHT", "selectNextColumnExtendSelection", "shift KP_RIGHT", "selectNextColumnExtendSelection", "ctrl shift RIGHT", "selectNextColumnExtendSelection", "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection", "ctrl RIGHT", "selectNextColumnChangeLead", "ctrl KP_RIGHT", "selectNextColumnChangeLead", "LEFT", "selectPreviousColumn", "KP_LEFT", "selectPreviousColumn", "shift LEFT", "selectPreviousColumnExtendSelection", "shift KP_LEFT", "selectPreviousColumnExtendSelection", "ctrl shift LEFT", "selectPreviousColumnExtendSelection", "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection", "ctrl LEFT", "selectPreviousColumnChangeLead", "ctrl KP_LEFT", "selectPreviousColumnChangeLead", "DOWN", "selectNextRow", "KP_DOWN", "selectNextRow", "shift DOWN", "selectNextRowExtendSelection", "shift KP_DOWN", "selectNextRowExtendSelection", "ctrl shift DOWN", "selectNextRowExtendSelection", "ctrl shift KP_DOWN", "selectNextRowExtendSelection", "ctrl DOWN", "selectNextRowChangeLead", "ctrl KP_DOWN", "selectNextRowChangeLead", "UP", "selectPreviousRow", "KP_UP", "selectPreviousRow", "shift UP", "selectPreviousRowExtendSelection", "shift KP_UP", "selectPreviousRowExtendSelection", "ctrl shift UP", "selectPreviousRowExtendSelection", "ctrl shift KP_UP", "selectPreviousRowExtendSelection", "ctrl UP", "selectPreviousRowChangeLead", "ctrl KP_UP", "selectPreviousRowChangeLead", "HOME", "selectFirstColumn", "shift HOME", "selectFirstColumnExtendSelection", "ctrl shift HOME", "selectFirstRowExtendSelection", "ctrl HOME", "selectFirstRow", "END", "selectLastColumn", "shift END", "selectLastColumnExtendSelection", "ctrl shift END", "selectLastRowExtendSelection", "ctrl END", "selectLastRow", "PAGE_UP", "scrollUpChangeSelection", "shift PAGE_UP", "scrollUpExtendSelection", "ctrl shift PAGE_UP", "scrollLeftExtendSelection", "ctrl PAGE_UP", "scrollLeftChangeSelection", "PAGE_DOWN", "scrollDownChangeSelection", "shift PAGE_DOWN", "scrollDownExtendSelection", "ctrl shift PAGE_DOWN", "scrollRightExtendSelection", "ctrl PAGE_DOWN", "scrollRightChangeSelection", "TAB", "selectNextColumnCell", "shift TAB", "selectPreviousColumnCell", "ENTER", "selectNextRowCell", "shift ENTER", "selectPreviousRowCell", "meta A", "selectAll", "ctrl SLASH", "selectAll", "ctrl BACK_SLASH", "clearSelection", "ESCAPE", "cancel", "F2", "startEditing", "SPACE", "addToSelection", "ctrl SPACE", "toggleAndAnchor", "shift SPACE", "extendTo", "ctrl shift SPACE", "moveSelectionTo" }); UIDefaults.LazyInputMap tableAncestorInputMapRightToLeft = new UIDefaults.LazyInputMap(new Object[] { "RIGHT", "selectPreviousColumn", "KP_RIGHT", "selectPreviousColumn", "shift RIGHT", "selectPreviousColumnExtendSelection", "shift KP_RIGHT", "selectPreviousColumnExtendSelection", "ctrl shift RIGHT", "selectPreviousColumnExtendSelection", "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection", "shift RIGHT", "selectPreviousColumnChangeLead", "shift KP_RIGHT", "selectPreviousColumnChangeLead", "LEFT", "selectNextColumn", "KP_LEFT", "selectNextColumn", "shift LEFT", "selectNextColumnExtendSelection", "shift KP_LEFT", "selectNextColumnExtendSelection", "ctrl shift LEFT", "selectNextColumnExtendSelection", "ctrl shift KP_LEFT", "selectNextColumnExtendSelection", "ctrl LEFT", "selectNextColumnChangeLead", "ctrl KP_LEFT", "selectNextColumnChangeLead", "ctrl PAGE_UP", "scrollRightChangeSelection", "ctrl PAGE_DOWN", "scrollLeftChangeSelection", "ctrl shift PAGE_UP", "scrollRightExtendSelection", "ctrl shift PAGE_DOWN", "scrollLeftExtendSelection", }); UIDefaults.LazyInputMap comboBoxAncestorInputMap = new UIDefaults.LazyInputMap(new Object[] { "ESCAPE", "hidePopup", "PAGE_UP", "pageUpPassThrough", "PAGE_DOWN", "pageDownPassThrough", "HOME", "homePassThrough", "END", "endPassThrough", "DOWN", "selectNext", "KP_DOWN", "selectNext", "alt DOWN", "togglePopup", "alt KP_DOWN", "togglePopup", "alt UP", "togglePopup", "alt KP_UP", "togglePopup", "SPACE", "spacePopup", "ENTER", "enterPressed", "UP", "selectPrevious", "KP_UP", "selectPrevious" }); // These bindings are only enabled when there is a default // button set on the RootPane. Object[] rootPaneDefaultButtonWindowKeyBindings = new Object[] { "ENTER", "press", "released ENTER", "release", "ctrl ENTER", "press", "ctrl released ENTER", "release" }; UIDefaults.LazyInputMap spinnerAncestorInputMap = new UIDefaults.LazyInputMap(new Object[] { "UP", "increment", "KP_UP", "increment", "DOWN", "decrement", "KP_DOWN", "decrement", }); UIDefaults.LazyInputMap treeFocusInputMap = new UIDefaults.LazyInputMap(new Object[] { "meta C", "copy", "meta V", "paste", "meta X", "cut", "COPY", "copy", "PASTE", "paste", "CUT", "cut", "UP", "selectPrevious", "KP_UP", "selectPrevious", "shift UP", "selectPreviousExtendSelection", "shift KP_UP", "selectPreviousExtendSelection", "DOWN", "selectNext", "KP_DOWN", "selectNext", "shift DOWN", "selectNextExtendSelection", "shift KP_DOWN", "selectNextExtendSelection", "RIGHT", "selectChild", "KP_RIGHT", "selectChild", "LEFT", "selectParent", "KP_LEFT", "selectParent", "PAGE_UP", "scrollUpChangeSelection", "shift PAGE_UP", "scrollUpExtendSelection", "PAGE_DOWN", "scrollDownChangeSelection", "shift PAGE_DOWN", "scrollDownExtendSelection", "HOME", "selectFirst", "alt UP", "selectFirst", "shift HOME", "selectFirstExtendSelection", "END", "selectLast", "alt DOWN", "selectLast", "shift END", "selectLastExtendSelection", "F2", "startEditing", "meta A", "selectAll", // "ctrl SLASH", "selectAll", "meta shift A", "clearSelection", "ctrl SPACE", "toggleSelectionPreserveAnchor", "shift SPACE", "extendSelection", "ctrl HOME", "selectFirstChangeLead", "ctrl END", "selectLastChangeLead", "ctrl UP", "selectPreviousChangeLead", "ctrl KP_UP", "selectPreviousChangeLead", "ctrl DOWN", "selectNextChangeLead", "ctrl KP_DOWN", "selectNextChangeLead", "ctrl PAGE_DOWN", "scrollDownChangeLead", "ctrl shift PAGE_DOWN", "scrollDownExtendSelection", "ctrl PAGE_UP", "scrollUpChangeLead", "ctrl shift PAGE_UP", "scrollUpExtendSelection", "ctrl LEFT", "scrollLeft", "ctrl KP_LEFT", "scrollLeft", "ctrl RIGHT", "scrollRight", "ctrl KP_RIGHT", "scrollRight", "SPACE", "toggleSelectionPreserveAnchor", }); // Assign the defaults Object[] defaults = { "Button.focusInputMap", buttonFocusInputMap, "CheckBox.focusInputMap", buttonFocusInputMap, // "ComboBox.actionMap", ..., "ComboBox.ancestorInputMap", comboBoxAncestorInputMap, "ComboBox.editorInputMap", comboEditorInputMap, "EditorPane.focusInputMap", multilineInputMap, "FormattedTextField.focusInputMap", fieldInputMap, "FormattedTextField.keyBindings", null, "PasswordField.focusInputMap", passwordFieldInputMap, "PasswordField.keyBindings", null, "RadioButton.focusInputMap", buttonFocusInputMap, "RootPane.defaultButtonWindowKeyBindings", rootPaneDefaultButtonWindowKeyBindings, "Spinner.ancestorInputMap", spinnerAncestorInputMap, "Spinner.focusInputMap", spinnerInputMap, "TabbedPane.focusInputMap", tabbedPaneFocusInputMap, "TabbedPane.ancestorInputMap", tabbedPaneAncestorInputMap, "TabbedPane.actionMap", table.get("TabbedPane.actionMap"), "TabbedPane.wrap.focusInputMap", tabbedPaneFocusInputMap, "TabbedPane.wrap.ancestorInputMap", tabbedPaneAncestorInputMap, "TabbedPane.wrap.actionMap", table.get("TabbedPane.actionMap"), "TabbedPane.scroll.focusInputMap", tabbedPaneFocusInputMap, "TabbedPane.scroll.ancestorInputMap", tabbedPaneAncestorInputMap, "TabbedPane.scroll.actionMap", table.get("TabbedPane.actionMap"), "Table.ancestorInputMap", tableAncestorInputMap, "Table.ancestorInputMap.rightToLeft", tableAncestorInputMapRightToLeft, "TextArea.focusInputMap", multilineInputMap, "TextArea.keyBindings", null, "TextField.focusInputMap", fieldInputMap, "TextField.keyBindings", null, "TextPane.focusInputMap", multilineInputMap, "TextPane.keyBindings", null, "ToggleButton.focusInputMap", buttonFocusInputMap, "Tree.focusInputMap", treeFocusInputMap, }; table.putDefaults(defaults); } }