~ubuntu-branches/debian/stretch/insubstantial/stretch

« back to all changes in this revision

Viewing changes to substance/src/main/java/org/pushingpixels/substance/internal/inputmaps/BaseInputMapSet.java

  • Committer: Package Import Robot
  • Author(s): Felix Natter
  • Date: 2016-01-18 20:58:45 UTC
  • Revision ID: package-import@ubuntu.com-20160118205845-crbmrkda61qsi5qa
Tags: upstream-7.3+dfsg2
ImportĀ upstreamĀ versionĀ 7.3+dfsg2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2005-2010 Substance Kirill Grouchnikov. All Rights Reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions are met:
 
6
 *
 
7
 *  o Redistributions of source code must retain the above copyright notice,
 
8
 *    this list of conditions and the following disclaimer.
 
9
 *
 
10
 *  o Redistributions in binary form must reproduce the above copyright notice,
 
11
 *    this list of conditions and the following disclaimer in the documentation
 
12
 *    and/or other materials provided with the distribution.
 
13
 *
 
14
 *  o Neither the name of Substance Kirill Grouchnikov nor the names of
 
15
 *    its contributors may be used to endorse or promote products derived
 
16
 *    from this software without specific prior written permission.
 
17
 *
 
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 
19
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 
20
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
21
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 
22
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
23
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
24
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 
25
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 
26
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 
27
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 
28
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 */
 
30
package org.pushingpixels.substance.internal.inputmaps;
 
31
 
 
32
import javax.swing.*;
 
33
import javax.swing.text.DefaultEditorKit;
 
34
 
 
35
import org.pushingpixels.substance.api.inputmaps.InputMapSet;
 
36
import org.pushingpixels.substance.api.inputmaps.SubstanceInputMap;
 
37
 
 
38
public class BaseInputMapSet implements InputMapSet {
 
39
        public static final String PRESSED = "pressed";
 
40
 
 
41
        public static final String RELEASED = "released";
 
42
 
 
43
        public static final String COPY = (String) TransferHandler.getCopyAction()
 
44
                        .getValue(Action.NAME);
 
45
 
 
46
        public static final String PASTE = (String) TransferHandler
 
47
                        .getPasteAction().getValue(Action.NAME);
 
48
 
 
49
        public static final String CUT = (String) TransferHandler.getCutAction()
 
50
                        .getValue(Action.NAME);
 
51
 
 
52
        protected SubstanceInputMap getActionControlFocusInputMap() {
 
53
                SubstanceInputMap result = new SubstanceInputMap();
 
54
                result.put("SPACE", PRESSED);
 
55
                result.put("released SPACE", RELEASED);
 
56
                return result;
 
57
        }
 
58
 
 
59
        @Override
 
60
    public SubstanceInputMap getButtonFocusInputMap() {
 
61
                return this.getActionControlFocusInputMap();
 
62
        }
 
63
 
 
64
        @Override
 
65
    public SubstanceInputMap getCheckBoxFocusInputMap() {
 
66
                return this.getActionControlFocusInputMap();
 
67
        }
 
68
 
 
69
        /**
 
70
         * Taken from BasicComboBoxUI.Actions
 
71
         */
 
72
        protected static class ComboActions {
 
73
                public static final String HIDE = "hidePopup";
 
74
                public static final String DOWN = "selectNext";
 
75
                public static final String DOWN_2 = "selectNext2";
 
76
                public static final String TOGGLE = "togglePopup";
 
77
                public static final String TOGGLE_2 = "spacePopup";
 
78
                public static final String UP = "selectPrevious";
 
79
                public static final String UP_2 = "selectPrevious2";
 
80
                public static final String ENTER = "enterPressed";
 
81
                public static final String PAGE_DOWN = "pageDownPassThrough";
 
82
                public static final String PAGE_UP = "pageUpPassThrough";
 
83
                public static final String HOME = "homePassThrough";
 
84
                public static final String END = "endPassThrough";
 
85
        }
 
86
 
 
87
        @Override
 
88
    public SubstanceInputMap getComboBoxAncestorInputMap() {
 
89
                SubstanceInputMap result = new SubstanceInputMap();
 
90
 
 
91
                result.put("ESCAPE", ComboActions.HIDE);
 
92
                result.put("PAGE_UP", ComboActions.PAGE_UP);
 
93
                result.put("PAGE_DOWN", ComboActions.PAGE_DOWN);
 
94
                result.put("HOME", ComboActions.HOME);
 
95
                result.put("END", ComboActions.END);
 
96
                result.put("DOWN", ComboActions.DOWN);
 
97
                result.put("KP_DOWN", ComboActions.DOWN);
 
98
                result.put("alt DOWN", ComboActions.TOGGLE);
 
99
                result.put("alt KP_DOWN", ComboActions.TOGGLE);
 
100
                result.put("alt UP", ComboActions.TOGGLE);
 
101
                result.put("alt KP_UP", ComboActions.TOGGLE);
 
102
                result.put("SPACE", ComboActions.TOGGLE_2);
 
103
                result.put("ENTER", ComboActions.ENTER);
 
104
                result.put("UP", ComboActions.UP);
 
105
                result.put("KP_UP", ComboActions.UP);
 
106
 
 
107
                return result;
 
108
        };
 
109
 
 
110
        /**
 
111
         * Taken from BasicDesktopPaneUI.Actions
 
112
         */
 
113
        protected static class DesktopPaneActions {
 
114
                public static String CLOSE = "close";
 
115
                public static String ESCAPE = "escape";
 
116
                public static String MAXIMIZE = "maximize";
 
117
                public static String MINIMIZE = "minimize";
 
118
                public static String MOVE = "move";
 
119
                public static String RESIZE = "resize";
 
120
                public static String RESTORE = "restore";
 
121
                public static String LEFT = "left";
 
122
                public static String RIGHT = "right";
 
123
                public static String UP = "up";
 
124
                public static String DOWN = "down";
 
125
                public static String SHRINK_LEFT = "shrinkLeft";
 
126
                public static String SHRINK_RIGHT = "shrinkRight";
 
127
                public static String SHRINK_UP = "shrinkUp";
 
128
                public static String SHRINK_DOWN = "shrinkDown";
 
129
                public static String NEXT_FRAME = "selectNextFrame";
 
130
                public static String PREVIOUS_FRAME = "selectPreviousFrame";
 
131
                public static String NAVIGATE_NEXT = "navigateNext";
 
132
                public static String NAVIGATE_PREVIOUS = "navigatePrevious";
 
133
        }
 
134
 
 
135
        @Override
 
136
    public SubstanceInputMap getDesktopAncestorInputMap() {
 
137
                SubstanceInputMap result = new SubstanceInputMap();
 
138
 
 
139
                result.put("ctrl F5", DesktopPaneActions.RESTORE);
 
140
                result.put("ctrl F4", DesktopPaneActions.CLOSE);
 
141
                result.put("ctrl F7", DesktopPaneActions.MOVE);
 
142
                result.put("ctrl F8", DesktopPaneActions.RESIZE);
 
143
 
 
144
                result.put("RIGHT", DesktopPaneActions.RIGHT);
 
145
                result.put("KP_RIGHT", DesktopPaneActions.RIGHT);
 
146
                result.put("shift RIGHT", DesktopPaneActions.SHRINK_RIGHT);
 
147
                result.put("shift KP_RIGHT", DesktopPaneActions.SHRINK_RIGHT);
 
148
                result.put("LEFT", DesktopPaneActions.LEFT);
 
149
                result.put("KP_LEFT", DesktopPaneActions.LEFT);
 
150
                result.put("shift LEFT", DesktopPaneActions.SHRINK_LEFT);
 
151
                result.put("shift KP_LEFT", DesktopPaneActions.SHRINK_LEFT);
 
152
 
 
153
                result.put("UP", DesktopPaneActions.UP);
 
154
                result.put("KP_UP", DesktopPaneActions.UP);
 
155
                result.put("shift UP", DesktopPaneActions.SHRINK_UP);
 
156
                result.put("shift KP_UP", DesktopPaneActions.SHRINK_UP);
 
157
                result.put("DOWN", DesktopPaneActions.DOWN);
 
158
                result.put("KP_DOWN", DesktopPaneActions.DOWN);
 
159
                result.put("shift DOWN", DesktopPaneActions.SHRINK_DOWN);
 
160
                result.put("shift KP_DOWN", DesktopPaneActions.SHRINK_DOWN);
 
161
 
 
162
                result.put("ESCAPE", DesktopPaneActions.ESCAPE);
 
163
                result.put("ctrl F9", DesktopPaneActions.MINIMIZE);
 
164
                result.put("ctrl F10", DesktopPaneActions.MAXIMIZE);
 
165
 
 
166
                result.put("ctrl F6", DesktopPaneActions.NEXT_FRAME);
 
167
                result.put("ctrl TAB", DesktopPaneActions.NEXT_FRAME);
 
168
                result.put("ctrl alt F6", DesktopPaneActions.NEXT_FRAME);
 
169
                result.put("shift ctrl alt F6", DesktopPaneActions.PREVIOUS_FRAME);
 
170
                result.put("ctrl F12", DesktopPaneActions.NAVIGATE_NEXT);
 
171
                result.put("shift ctrl F12", DesktopPaneActions.NAVIGATE_PREVIOUS);
 
172
 
 
173
                return result;
 
174
        }
 
175
 
 
176
        protected static class TextComponentActions {
 
177
                // from DefaultEditorKit
 
178
                public static final String SELECTION_PAGE_UP = "selection-page-up";
 
179
                public static final String SELECTION_PAGE_DOWN = "selection-page-down";
 
180
                public static final String SELECTION_PAGE_LEFT = "selection-page-left";
 
181
                public static final String SELECTION_PAGE_RIGHT = "selection-page-right";
 
182
                public static final String UNSELECT = "unselect";
 
183
                public static final String TOGGLE_COMPONENT_ORIENTATION = "toggle-componentOrientation";
 
184
 
 
185
                // from HTMLEditorKit
 
186
                public static final String NEXT_LINK = "next-link-action";
 
187
                public static final String PREVIOUS_LINK = "previous-link-action";
 
188
                public static final String ACTIVATE_LINK = "activate-link-action";
 
189
 
 
190
                // from JFormattedTextField.CancelAction
 
191
                public static final String RESET_FIELD_EDIT = "reset-field-edit";
 
192
 
 
193
                // from BasicSpinnerUI.loadActionMap
 
194
                public static final String INCREMENT = "increment";
 
195
                public static final String DECREMENT = "decrement";
 
196
        }
 
197
 
 
198
        protected SubstanceInputMap getMultilineTextComponentFocusInputMap() {
 
199
                SubstanceInputMap result = new SubstanceInputMap();
 
200
 
 
201
                result.put("ctrl C", DefaultEditorKit.copyAction);
 
202
                result.put("ctrl V", DefaultEditorKit.pasteAction);
 
203
                result.put("ctrl X", DefaultEditorKit.cutAction);
 
204
                result.put("COPY", DefaultEditorKit.copyAction);
 
205
                result.put("PASTE", DefaultEditorKit.pasteAction);
 
206
                result.put("CUT", DefaultEditorKit.cutAction);
 
207
                result.put("control INSERT", DefaultEditorKit.copyAction);
 
208
                result.put("shift INSERT", DefaultEditorKit.pasteAction);
 
209
                result.put("shift DELETE", DefaultEditorKit.cutAction);
 
210
 
 
211
                result.put("shift LEFT", DefaultEditorKit.selectionBackwardAction);
 
212
                result.put("shift KP_LEFT", DefaultEditorKit.selectionBackwardAction);
 
213
                result.put("shift RIGHT", DefaultEditorKit.selectionForwardAction);
 
214
                result.put("shift KP_RIGHT", DefaultEditorKit.selectionForwardAction);
 
215
                result.put("ctrl LEFT", DefaultEditorKit.previousWordAction);
 
216
                result.put("ctrl KP_LEFT", DefaultEditorKit.previousWordAction);
 
217
                result.put("ctrl RIGHT", DefaultEditorKit.nextWordAction);
 
218
                result.put("ctrl KP_RIGHT", DefaultEditorKit.nextWordAction);
 
219
                result.put("ctrl shift LEFT",
 
220
                                DefaultEditorKit.selectionPreviousWordAction);
 
221
                result.put("ctrl shift KP_LEFT",
 
222
                                DefaultEditorKit.selectionPreviousWordAction);
 
223
                result
 
224
                                .put("ctrl shift RIGHT",
 
225
                                                DefaultEditorKit.selectionNextWordAction);
 
226
                result.put("ctrl shift KP_RIGHT",
 
227
                                DefaultEditorKit.selectionNextWordAction);
 
228
 
 
229
                result.put("ctrl A", DefaultEditorKit.selectAllAction);
 
230
                result.put("HOME", DefaultEditorKit.beginLineAction);
 
231
                result.put("END", DefaultEditorKit.endLineAction);
 
232
                result.put("shift HOME", DefaultEditorKit.selectionBeginLineAction);
 
233
                result.put("shift END", DefaultEditorKit.selectionEndLineAction);
 
234
 
 
235
                result.put("UP", DefaultEditorKit.upAction);
 
236
                result.put("KP_UP", DefaultEditorKit.upAction);
 
237
                result.put("DOWN", DefaultEditorKit.downAction);
 
238
                result.put("KP_DOWN", DefaultEditorKit.downAction);
 
239
                result.put("PAGE_UP", DefaultEditorKit.pageUpAction);
 
240
                result.put("PAGE_DOWN", DefaultEditorKit.pageDownAction);
 
241
 
 
242
                result.put("shift PAGE_UP", TextComponentActions.SELECTION_PAGE_UP);
 
243
                result.put("shift PAGE_DOWN", TextComponentActions.SELECTION_PAGE_DOWN);
 
244
                result.put("ctrl shift PAGE_UP",
 
245
                                TextComponentActions.SELECTION_PAGE_LEFT);
 
246
                result.put("ctrl shift PAGE_DOWN",
 
247
                                TextComponentActions.SELECTION_PAGE_RIGHT);
 
248
                result.put("shift UP", DefaultEditorKit.selectionUpAction);
 
249
                result.put("shift KP_UP", DefaultEditorKit.selectionUpAction);
 
250
                result.put("shift DOWN", DefaultEditorKit.selectionDownAction);
 
251
                result.put("shift KP_DOWN", DefaultEditorKit.selectionDownAction);
 
252
 
 
253
                result.put("ctrl shift HOME", DefaultEditorKit.selectionBeginAction);
 
254
                result.put("ctrl shift END", DefaultEditorKit.selectionEndAction);
 
255
 
 
256
                result.put("ENTER", DefaultEditorKit.insertBreakAction);
 
257
                result.put("BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
258
                result.put("shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
259
                result.put("ctrl H", DefaultEditorKit.deletePrevCharAction);
 
260
                result.put("DELETE", DefaultEditorKit.deleteNextCharAction);
 
261
                result.put("ctrl DELETE", DefaultEditorKit.deleteNextWordAction);
 
262
                result.put("ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction);
 
263
 
 
264
                result.put("RIGHT", DefaultEditorKit.forwardAction);
 
265
                result.put("KP_RIGHT", DefaultEditorKit.forwardAction);
 
266
                result.put("LEFT", DefaultEditorKit.backwardAction);
 
267
                result.put("KP_LEFT", DefaultEditorKit.backwardAction);
 
268
                result.put("TAB", DefaultEditorKit.insertTabAction);
 
269
                result.put("ctrl BACK_SLASH", TextComponentActions.UNSELECT);
 
270
                result.put("ctrl HOME", DefaultEditorKit.beginAction);
 
271
                result.put("ctrl END", DefaultEditorKit.endAction);
 
272
 
 
273
                result.put("ctrl T", TextComponentActions.NEXT_LINK);
 
274
                result.put("ctrl shift T", TextComponentActions.PREVIOUS_LINK);
 
275
                result.put("ctrl SPACE", TextComponentActions.ACTIVATE_LINK);
 
276
                result.put("control shift O",
 
277
                                TextComponentActions.TOGGLE_COMPONENT_ORIENTATION);
 
278
 
 
279
                return result;
 
280
        };
 
281
 
 
282
        @Override
 
283
    public SubstanceInputMap getEditorPaneFocusInputMap() {
 
284
                return this.getMultilineTextComponentFocusInputMap();
 
285
        }
 
286
 
 
287
        /**
 
288
         * From sun.swing.FilePane via BasicFileChooserUI
 
289
         */
 
290
        protected static class FileChooserActions {
 
291
                public static final String APPROVE_SELECTION = "approveSelection";
 
292
                public static final String CANCEL_SELECTION = "cancelSelection";
 
293
                public static final String EDIT_FILE_NAME = "editFileName";
 
294
                public static final String REFRESH = "refresh";
 
295
                public static final String GO_UP = "Go Up";
 
296
        }
 
297
 
 
298
        @Override
 
299
    public SubstanceInputMap getFileChooserAncestorInputMap() {
 
300
                SubstanceInputMap result = new SubstanceInputMap();
 
301
 
 
302
                result.put("ESCAPE", FileChooserActions.CANCEL_SELECTION);
 
303
                result.put("F2", FileChooserActions.EDIT_FILE_NAME);
 
304
                result.put("F5", FileChooserActions.REFRESH);
 
305
                result.put("BACK_SPACE", FileChooserActions.GO_UP);
 
306
                result.put("ENTER", FileChooserActions.APPROVE_SELECTION);
 
307
                result.put("ctrl ENTER", FileChooserActions.APPROVE_SELECTION);
 
308
 
 
309
                return result;
 
310
        }
 
311
 
 
312
        @Override
 
313
        public SubstanceInputMap getFormattedTextFieldFocusInputMap() {
 
314
                SubstanceInputMap result = new SubstanceInputMap();
 
315
 
 
316
                result.put("ctrl C", DefaultEditorKit.copyAction);
 
317
                result.put("ctrl V", DefaultEditorKit.pasteAction);
 
318
                result.put("ctrl X", DefaultEditorKit.cutAction);
 
319
                result.put("COPY", DefaultEditorKit.copyAction);
 
320
                result.put("PASTE", DefaultEditorKit.pasteAction);
 
321
                result.put("CUT", DefaultEditorKit.cutAction);
 
322
                result.put("control INSERT", DefaultEditorKit.copyAction);
 
323
                result.put("shift INSERT", DefaultEditorKit.pasteAction);
 
324
                result.put("shift DELETE", DefaultEditorKit.cutAction);
 
325
 
 
326
                result.put("shift LEFT", DefaultEditorKit.selectionBackwardAction);
 
327
                result.put("shift KP_LEFT", DefaultEditorKit.selectionBackwardAction);
 
328
                result.put("shift RIGHT", DefaultEditorKit.selectionForwardAction);
 
329
                result.put("shift KP_RIGHT", DefaultEditorKit.selectionForwardAction);
 
330
 
 
331
                result.put("ctrl LEFT", DefaultEditorKit.previousWordAction);
 
332
                result.put("ctrl KP_LEFT", DefaultEditorKit.previousWordAction);
 
333
                result.put("ctrl RIGHT", DefaultEditorKit.nextWordAction);
 
334
                result.put("ctrl KP_RIGHT", DefaultEditorKit.nextWordAction);
 
335
                result.put("ctrl shift LEFT",
 
336
                                DefaultEditorKit.selectionPreviousWordAction);
 
337
                result.put("ctrl shift KP_LEFT",
 
338
                                DefaultEditorKit.selectionPreviousWordAction);
 
339
                result
 
340
                                .put("ctrl shift RIGHT",
 
341
                                                DefaultEditorKit.selectionNextWordAction);
 
342
                result.put("ctrl shift KP_RIGHT",
 
343
                                DefaultEditorKit.selectionNextWordAction);
 
344
 
 
345
                result.put("ctrl A", DefaultEditorKit.selectAllAction);
 
346
                result.put("HOME", DefaultEditorKit.beginLineAction);
 
347
                result.put("END", DefaultEditorKit.endLineAction);
 
348
                result.put("shift HOME", DefaultEditorKit.selectionBeginLineAction);
 
349
                result.put("shift END", DefaultEditorKit.selectionEndLineAction);
 
350
 
 
351
                result.put("BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
352
                result.put("shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
353
                result.put("ctrl H", DefaultEditorKit.deletePrevCharAction);
 
354
                result.put("DELETE", DefaultEditorKit.deleteNextCharAction);
 
355
                result.put("ctrl DELETE", DefaultEditorKit.deleteNextWordAction);
 
356
                result.put("ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction);
 
357
                result.put("RIGHT", DefaultEditorKit.forwardAction);
 
358
                result.put("LEFT", DefaultEditorKit.backwardAction);
 
359
                result.put("KP_RIGHT", DefaultEditorKit.forwardAction);
 
360
                result.put("KP_LEFT", DefaultEditorKit.backwardAction);
 
361
 
 
362
                result.put("ENTER", JTextField.notifyAction);
 
363
                result.put("ctrl BACK_SLASH", TextComponentActions.UNSELECT);
 
364
                result.put("control shift O",
 
365
                                TextComponentActions.TOGGLE_COMPONENT_ORIENTATION);
 
366
                result.put("ESCAPE", TextComponentActions.RESET_FIELD_EDIT);
 
367
                result.put("UP", TextComponentActions.INCREMENT);
 
368
                result.put("KP_UP", TextComponentActions.INCREMENT);
 
369
                result.put("DOWN", TextComponentActions.DECREMENT);
 
370
                result.put("KP_DOWN", TextComponentActions.DECREMENT);
 
371
 
 
372
                return result;
 
373
        }
 
374
 
 
375
        /**
 
376
         * From BasicListUI.Actions
 
377
         */
 
378
        protected static class ListActions {
 
379
                public static final String SELECT_PREVIOUS_COLUMN = "selectPreviousColumn";
 
380
                public static final String SELECT_PREVIOUS_COLUMN_EXTEND = "selectPreviousColumnExtendSelection";
 
381
                public static final String SELECT_PREVIOUS_COLUMN_CHANGE_LEAD = "selectPreviousColumnChangeLead";
 
382
                public static final String SELECT_NEXT_COLUMN = "selectNextColumn";
 
383
                public static final String SELECT_NEXT_COLUMN_EXTEND = "selectNextColumnExtendSelection";
 
384
                public static final String SELECT_NEXT_COLUMN_CHANGE_LEAD = "selectNextColumnChangeLead";
 
385
                public static final String SELECT_PREVIOUS_ROW = "selectPreviousRow";
 
386
                public static final String SELECT_PREVIOUS_ROW_EXTEND = "selectPreviousRowExtendSelection";
 
387
                public static final String SELECT_PREVIOUS_ROW_CHANGE_LEAD = "selectPreviousRowChangeLead";
 
388
                public static final String SELECT_NEXT_ROW = "selectNextRow";
 
389
                public static final String SELECT_NEXT_ROW_EXTEND = "selectNextRowExtendSelection";
 
390
                public static final String SELECT_NEXT_ROW_CHANGE_LEAD = "selectNextRowChangeLead";
 
391
                public static final String SELECT_FIRST_ROW = "selectFirstRow";
 
392
                public static final String SELECT_FIRST_ROW_EXTEND = "selectFirstRowExtendSelection";
 
393
                public static final String SELECT_FIRST_ROW_CHANGE_LEAD = "selectFirstRowChangeLead";
 
394
                public static final String SELECT_LAST_ROW = "selectLastRow";
 
395
                public static final String SELECT_LAST_ROW_EXTEND = "selectLastRowExtendSelection";
 
396
                public static final String SELECT_LAST_ROW_CHANGE_LEAD = "selectLastRowChangeLead";
 
397
                public static final String SCROLL_UP = "scrollUp";
 
398
                public static final String SCROLL_UP_EXTEND = "scrollUpExtendSelection";
 
399
                public static final String SCROLL_UP_CHANGE_LEAD = "scrollUpChangeLead";
 
400
                public static final String SCROLL_DOWN = "scrollDown";
 
401
                public static final String SCROLL_DOWN_EXTEND = "scrollDownExtendSelection";
 
402
                public static final String SCROLL_DOWN_CHANGE_LEAD = "scrollDownChangeLead";
 
403
                public static final String SELECT_ALL = "selectAll";
 
404
                public static final String CLEAR_SELECTION = "clearSelection";
 
405
 
 
406
                public static final String ADD_TO_SELECTION = "addToSelection";
 
407
                public static final String TOGGLE_AND_ANCHOR = "toggleAndAnchor";
 
408
 
 
409
                public static final String EXTEND_TO = "extendTo";
 
410
 
 
411
                public static final String MOVE_SELECTION_TO = "moveSelectionTo";
 
412
 
 
413
        }
 
414
 
 
415
        @Override
 
416
    public SubstanceInputMap getListFocusInputMap() {
 
417
                SubstanceInputMap result = new SubstanceInputMap();
 
418
 
 
419
                result.put("ctrl C", COPY);
 
420
                result.put("ctrl V", PASTE);
 
421
                result.put("ctrl X", CUT);
 
422
                result.put("COPY", COPY);
 
423
                result.put("PASTE", PASTE);
 
424
                result.put("CUT", CUT);
 
425
                result.put("control INSERT", COPY);
 
426
                result.put("shift INSERT", PASTE);
 
427
                result.put("shift DELETE", CUT);
 
428
 
 
429
                result.put("UP", ListActions.SELECT_PREVIOUS_ROW);
 
430
                result.put("KP_UP", ListActions.SELECT_PREVIOUS_ROW);
 
431
                result.put("shift UP", ListActions.SELECT_PREVIOUS_ROW_EXTEND);
 
432
                result.put("shift KP_UP", ListActions.SELECT_PREVIOUS_ROW_EXTEND);
 
433
                result.put("ctrl shift UP", ListActions.SELECT_PREVIOUS_ROW_EXTEND);
 
434
                result.put("ctrl shift KP_UP", ListActions.SELECT_PREVIOUS_ROW_EXTEND);
 
435
                result.put("ctrl UP", ListActions.SELECT_PREVIOUS_ROW_CHANGE_LEAD);
 
436
                result.put("ctrl KP_UP", ListActions.SELECT_PREVIOUS_ROW_CHANGE_LEAD);
 
437
 
 
438
                result.put("DOWN", ListActions.SELECT_NEXT_ROW);
 
439
                result.put("KP_DOWN", ListActions.SELECT_NEXT_ROW);
 
440
                result.put("shift DOWN", ListActions.SELECT_NEXT_ROW_EXTEND);
 
441
                result.put("shift KP_DOWN", ListActions.SELECT_NEXT_ROW_EXTEND);
 
442
                result.put("ctrl shift DOWN", ListActions.SELECT_NEXT_ROW_EXTEND);
 
443
                result.put("ctrl shift KP_DOWN", ListActions.SELECT_NEXT_ROW_EXTEND);
 
444
                result.put("ctrl DOWN", ListActions.SELECT_NEXT_ROW_CHANGE_LEAD);
 
445
                result.put("ctrl KP_DOWN", ListActions.SELECT_NEXT_ROW_CHANGE_LEAD);
 
446
 
 
447
                result.put("LEFT", ListActions.SELECT_PREVIOUS_COLUMN);
 
448
                result.put("KP_LEFT", ListActions.SELECT_PREVIOUS_COLUMN);
 
449
                result.put("shift LEFT", ListActions.SELECT_PREVIOUS_COLUMN_EXTEND);
 
450
                result.put("shift KP_LEFT", ListActions.SELECT_PREVIOUS_COLUMN_EXTEND);
 
451
                result
 
452
                                .put("ctrl shift LEFT",
 
453
                                                ListActions.SELECT_PREVIOUS_COLUMN_EXTEND);
 
454
                result.put("ctrl shift KP_LEFT",
 
455
                                ListActions.SELECT_PREVIOUS_COLUMN_EXTEND);
 
456
                result.put("ctrl LEFT", ListActions.SELECT_PREVIOUS_COLUMN_CHANGE_LEAD);
 
457
                result.put("ctrl KP_LEFT",
 
458
                                ListActions.SELECT_PREVIOUS_COLUMN_CHANGE_LEAD);
 
459
 
 
460
                result.put("RIGHT", ListActions.SELECT_NEXT_COLUMN);
 
461
                result.put("KP_RIGHT", ListActions.SELECT_NEXT_COLUMN);
 
462
                result.put("shift RIGHT", ListActions.SELECT_NEXT_COLUMN_EXTEND);
 
463
                result.put("shift KP_RIGHT", ListActions.SELECT_NEXT_COLUMN_EXTEND);
 
464
                result.put("ctrl shift RIGHT", ListActions.SELECT_NEXT_COLUMN_EXTEND);
 
465
                result
 
466
                                .put("ctrl shift KP_RIGHT",
 
467
                                                ListActions.SELECT_NEXT_COLUMN_EXTEND);
 
468
                result.put("ctrl RIGHT", ListActions.SELECT_NEXT_COLUMN_CHANGE_LEAD);
 
469
                result.put("ctrl KP_RIGHT", ListActions.SELECT_NEXT_COLUMN_CHANGE_LEAD);
 
470
 
 
471
                result.put("HOME", ListActions.SELECT_FIRST_ROW);
 
472
                result.put("shift HOME", ListActions.SELECT_FIRST_ROW_EXTEND);
 
473
                result.put("ctrl shift HOME", ListActions.SELECT_FIRST_ROW_EXTEND);
 
474
                result.put("ctrl HOME", ListActions.SELECT_FIRST_ROW_CHANGE_LEAD);
 
475
                result.put("END", ListActions.SELECT_LAST_ROW);
 
476
                result.put("shift END", ListActions.SELECT_LAST_ROW_EXTEND);
 
477
                result.put("ctrl shift END", ListActions.SELECT_LAST_ROW_EXTEND);
 
478
                result.put("ctrl END", ListActions.SELECT_LAST_ROW_CHANGE_LEAD);
 
479
 
 
480
                result.put("PAGE_UP", ListActions.SCROLL_UP);
 
481
                result.put("shift PAGE_UP", ListActions.SCROLL_UP_EXTEND);
 
482
                result.put("ctrl shift PAGE_UP", ListActions.SCROLL_UP_EXTEND);
 
483
                result.put("ctrl PAGE_UP", ListActions.SCROLL_UP_CHANGE_LEAD);
 
484
                result.put("PAGE_DOWN", ListActions.SCROLL_DOWN);
 
485
                result.put("shift PAGE_DOWN", ListActions.SCROLL_DOWN_EXTEND);
 
486
                result.put("ctrl shift PAGE_DOWN", ListActions.SCROLL_DOWN_EXTEND);
 
487
                result.put("ctrl PAGE_DOWN", ListActions.SCROLL_DOWN_CHANGE_LEAD);
 
488
 
 
489
                result.put("ctrl A", ListActions.SELECT_ALL);
 
490
                result.put("ctrl SLASH", ListActions.SELECT_ALL);
 
491
                result.put("ctrl BACK_SLASH", ListActions.CLEAR_SELECTION);
 
492
                result.put("SPACE", ListActions.ADD_TO_SELECTION);
 
493
                result.put("ctrl SPACE", ListActions.TOGGLE_AND_ANCHOR);
 
494
                result.put("shift SPACE", ListActions.EXTEND_TO);
 
495
                result.put("ctrl shift SPACE", ListActions.MOVE_SELECTION_TO);
 
496
 
 
497
                return result;
 
498
        }
 
499
 
 
500
        @Override
 
501
    public SubstanceInputMap getPasswordFieldFocusInputMap() {
 
502
                SubstanceInputMap result = new SubstanceInputMap();
 
503
 
 
504
                result.put("ctrl C", DefaultEditorKit.copyAction);
 
505
                result.put("ctrl V", DefaultEditorKit.pasteAction);
 
506
                result.put("ctrl X", DefaultEditorKit.cutAction);
 
507
                result.put("COPY", DefaultEditorKit.copyAction);
 
508
                result.put("PASTE", DefaultEditorKit.pasteAction);
 
509
                result.put("CUT", DefaultEditorKit.cutAction);
 
510
                result.put("control INSERT", DefaultEditorKit.copyAction);
 
511
                result.put("shift INSERT", DefaultEditorKit.pasteAction);
 
512
                result.put("shift DELETE", DefaultEditorKit.cutAction);
 
513
 
 
514
                result.put("shift LEFT", DefaultEditorKit.selectionBackwardAction);
 
515
                result.put("shift KP_LEFT", DefaultEditorKit.selectionBackwardAction);
 
516
                result.put("shift RIGHT", DefaultEditorKit.selectionForwardAction);
 
517
                result.put("shift KP_RIGHT", DefaultEditorKit.selectionForwardAction);
 
518
 
 
519
                result.put("ctrl LEFT", DefaultEditorKit.beginLineAction);
 
520
                result.put("ctrl KP_LEFT", DefaultEditorKit.beginLineAction);
 
521
                result.put("ctrl RIGHT", DefaultEditorKit.endLineAction);
 
522
                result.put("ctrl KP_RIGHT", DefaultEditorKit.endLineAction);
 
523
                result
 
524
                                .put("ctrl shift LEFT",
 
525
                                                DefaultEditorKit.selectionBeginLineAction);
 
526
                result.put("ctrl shift KP_LEFT",
 
527
                                DefaultEditorKit.selectionBeginLineAction);
 
528
                result.put("ctrl shift RIGHT", DefaultEditorKit.selectionEndLineAction);
 
529
                result.put("ctrl shift KP_RIGHT",
 
530
                                DefaultEditorKit.selectionEndLineAction);
 
531
 
 
532
                result.put("ctrl A", DefaultEditorKit.selectAllAction);
 
533
                result.put("HOME", DefaultEditorKit.beginLineAction);
 
534
                result.put("END", DefaultEditorKit.endLineAction);
 
535
                result.put("shift HOME", DefaultEditorKit.selectionBeginLineAction);
 
536
                result.put("shift END", DefaultEditorKit.selectionEndLineAction);
 
537
                result.put("BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
538
                result.put("shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
539
                result.put("ctrl H", DefaultEditorKit.deletePrevCharAction);
 
540
                result.put("DELETE", DefaultEditorKit.deleteNextCharAction);
 
541
                result.put("RIGHT", DefaultEditorKit.forwardAction);
 
542
                result.put("LEFT", DefaultEditorKit.backwardAction);
 
543
                result.put("KP_RIGHT", DefaultEditorKit.forwardAction);
 
544
                result.put("KP_LEFT", DefaultEditorKit.backwardAction);
 
545
                result.put("ENTER", JTextField.notifyAction);
 
546
                result.put("ctrl BACK_SLASH", TextComponentActions.UNSELECT);
 
547
                result.put("control shift O",
 
548
                                TextComponentActions.TOGGLE_COMPONENT_ORIENTATION);
 
549
 
 
550
                return result;
 
551
        }
 
552
 
 
553
        @Override
 
554
    public SubstanceInputMap getRadioButtonFocusInputMap() {
 
555
                return this.getActionControlFocusInputMap();
 
556
        }
 
557
 
 
558
        /**
 
559
         * From BasicRootPaneUI.Actions
 
560
         */
 
561
        protected static class RootPaneActions {
 
562
                public static final String POST_POPUP = "postPopup";
 
563
        }
 
564
 
 
565
        @Override
 
566
    public SubstanceInputMap getRootPaneAncestorInputMap() {
 
567
                SubstanceInputMap result = new SubstanceInputMap();
 
568
 
 
569
                result.put("shift F10", RootPaneActions.POST_POPUP);
 
570
                result.put("CONTEXT_MENU", RootPaneActions.POST_POPUP);
 
571
 
 
572
                return result;
 
573
        }
 
574
 
 
575
        /**
 
576
         * From BasicScrollBarUI.Actions
 
577
         */
 
578
        protected static class ScrollBarActions {
 
579
                public static final String POSITIVE_UNIT_INCREMENT = "positiveUnitIncrement";
 
580
                public static final String POSITIVE_BLOCK_INCREMENT = "positiveBlockIncrement";
 
581
                public static final String NEGATIVE_UNIT_INCREMENT = "negativeUnitIncrement";
 
582
                public static final String NEGATIVE_BLOCK_INCREMENT = "negativeBlockIncrement";
 
583
                public static final String MIN_SCROLL = "minScroll";
 
584
                public static final String MAX_SCROLL = "maxScroll";
 
585
        }
 
586
 
 
587
        @Override
 
588
        public SubstanceInputMap getScrollBarAncestorInputMap() {
 
589
                SubstanceInputMap result = new SubstanceInputMap();
 
590
 
 
591
                result.put("RIGHT", ScrollBarActions.POSITIVE_UNIT_INCREMENT);
 
592
                result.put("KP_RIGHT", ScrollBarActions.POSITIVE_UNIT_INCREMENT);
 
593
                result.put("DOWN", ScrollBarActions.POSITIVE_UNIT_INCREMENT);
 
594
                result.put("KP_DOWN", ScrollBarActions.POSITIVE_UNIT_INCREMENT);
 
595
                result.put("PAGE_DOWN", ScrollBarActions.POSITIVE_BLOCK_INCREMENT);
 
596
 
 
597
                result.put("LEFT", ScrollBarActions.NEGATIVE_UNIT_INCREMENT);
 
598
                result.put("KP_LEFT", ScrollBarActions.NEGATIVE_UNIT_INCREMENT);
 
599
                result.put("UP", ScrollBarActions.NEGATIVE_UNIT_INCREMENT);
 
600
                result.put("KP_UP", ScrollBarActions.NEGATIVE_UNIT_INCREMENT);
 
601
                result.put("PAGE_UP", ScrollBarActions.NEGATIVE_BLOCK_INCREMENT);
 
602
 
 
603
                result.put("HOME", ScrollBarActions.MIN_SCROLL);
 
604
                result.put("END", ScrollBarActions.MAX_SCROLL);
 
605
 
 
606
                return result;
 
607
        }
 
608
 
 
609
        /**
 
610
         * From BasicScrollPaneUI.Actions
 
611
         */
 
612
        protected static class ScrollPaneActions {
 
613
                public static final String SCROLL_UP = "scrollUp";
 
614
                public static final String SCROLL_DOWN = "scrollDown";
 
615
                public static final String SCROLL_HOME = "scrollHome";
 
616
                public static final String SCROLL_END = "scrollEnd";
 
617
                public static final String UNIT_SCROLL_UP = "unitScrollUp";
 
618
                public static final String UNIT_SCROLL_DOWN = "unitScrollDown";
 
619
                public static final String SCROLL_LEFT = "scrollLeft";
 
620
                public static final String SCROLL_RIGHT = "scrollRight";
 
621
                public static final String UNIT_SCROLL_LEFT = "unitScrollLeft";
 
622
                public static final String UNIT_SCROLL_RIGHT = "unitScrollRight";
 
623
        }
 
624
 
 
625
        @Override
 
626
    public SubstanceInputMap getScrollPaneAncestorInputMap() {
 
627
                SubstanceInputMap result = new SubstanceInputMap();
 
628
 
 
629
                result.put("RIGHT", ScrollPaneActions.UNIT_SCROLL_RIGHT);
 
630
                result.put("KP_RIGHT", ScrollPaneActions.UNIT_SCROLL_RIGHT);
 
631
                result.put("DOWN", ScrollPaneActions.UNIT_SCROLL_DOWN);
 
632
                result.put("KP_DOWN", ScrollPaneActions.UNIT_SCROLL_DOWN);
 
633
                result.put("LEFT", ScrollPaneActions.UNIT_SCROLL_LEFT);
 
634
                result.put("KP_LEFT", ScrollPaneActions.UNIT_SCROLL_LEFT);
 
635
                result.put("UP", ScrollPaneActions.UNIT_SCROLL_UP);
 
636
                result.put("KP_UP", ScrollPaneActions.UNIT_SCROLL_UP);
 
637
 
 
638
                result.put("PAGE_UP", ScrollPaneActions.SCROLL_UP);
 
639
                result.put("PAGE_DOWN", ScrollPaneActions.SCROLL_DOWN);
 
640
                result.put("ctrl PAGE_UP", ScrollPaneActions.SCROLL_LEFT);
 
641
                result.put("ctrl PAGE_DOWN", ScrollPaneActions.SCROLL_RIGHT);
 
642
                result.put("ctrl HOME", ScrollPaneActions.SCROLL_HOME);
 
643
                result.put("ctrl END", ScrollPaneActions.SCROLL_END);
 
644
 
 
645
                return result;
 
646
        }
 
647
 
 
648
        /**
 
649
         * From BasicSliderUI.Actions
 
650
         */
 
651
        protected static class SliderActions {
 
652
                public static final String POSITIVE_UNIT_INCREMENT = "positiveUnitIncrement";
 
653
                public static final String POSITIVE_BLOCK_INCREMENT = "positiveBlockIncrement";
 
654
                public static final String NEGATIVE_UNIT_INCREMENT = "negativeUnitIncrement";
 
655
                public static final String NEGATIVE_BLOCK_INCREMENT = "negativeBlockIncrement";
 
656
                public static final String MIN_SCROLL_INCREMENT = "minScroll";
 
657
                public static final String MAX_SCROLL_INCREMENT = "maxScroll";
 
658
        }
 
659
 
 
660
        @Override
 
661
    public SubstanceInputMap getSliderFocusInputMap() {
 
662
                SubstanceInputMap result = new SubstanceInputMap();
 
663
 
 
664
                result.put("RIGHT", SliderActions.POSITIVE_UNIT_INCREMENT);
 
665
                result.put("KP_RIGHT", SliderActions.POSITIVE_UNIT_INCREMENT);
 
666
                result.put("DOWN", SliderActions.NEGATIVE_UNIT_INCREMENT);
 
667
                result.put("KP_DOWN", SliderActions.NEGATIVE_UNIT_INCREMENT);
 
668
                result.put("LEFT", SliderActions.NEGATIVE_UNIT_INCREMENT);
 
669
                result.put("KP_LEFT", SliderActions.NEGATIVE_UNIT_INCREMENT);
 
670
                result.put("UP", SliderActions.POSITIVE_UNIT_INCREMENT);
 
671
                result.put("KP_UP", SliderActions.POSITIVE_UNIT_INCREMENT);
 
672
 
 
673
                result.put("PAGE_DOWN", SliderActions.NEGATIVE_BLOCK_INCREMENT);
 
674
                result.put("ctrl PAGE_DOWN", SliderActions.NEGATIVE_BLOCK_INCREMENT);
 
675
                result.put("PAGE_UP", SliderActions.POSITIVE_BLOCK_INCREMENT);
 
676
                result.put("ctrl PAGE_UP", SliderActions.POSITIVE_BLOCK_INCREMENT);
 
677
 
 
678
                result.put("HOME", SliderActions.MIN_SCROLL_INCREMENT);
 
679
                result.put("END", SliderActions.MAX_SCROLL_INCREMENT);
 
680
 
 
681
                return result;
 
682
        }
 
683
 
 
684
        @Override
 
685
    public SubstanceInputMap getSpinnerAncestorInputMap() {
 
686
                SubstanceInputMap result = new SubstanceInputMap();
 
687
 
 
688
                result.put("UP", TextComponentActions.INCREMENT);
 
689
                result.put("KP_UP", TextComponentActions.INCREMENT);
 
690
                result.put("DOWN", TextComponentActions.DECREMENT);
 
691
                result.put("KP_DOWN", TextComponentActions.DECREMENT);
 
692
 
 
693
                return result;
 
694
 
 
695
        };
 
696
 
 
697
        protected static class SplitPaneActions {
 
698
                public static final String NEGATIVE_INCREMENT = "negativeIncrement";
 
699
                public static final String POSITIVE_INCREMENT = "positiveIncrement";
 
700
                public static final String SELECT_MIN = "selectMin";
 
701
                public static final String SELECT_MAX = "selectMax";
 
702
                public static final String START_RESIZE = "startResize";
 
703
                public static final String TOGGLE_FOCUS = "toggleFocus";
 
704
                public static final String FOCUS_OUT_FORWARD = "focusOutForward";
 
705
                public static final String FOCUS_OUT_BACKWARD = "focusOutBackward";
 
706
        }
 
707
 
 
708
        @Override
 
709
    public SubstanceInputMap getSplitPaneAncestorInputMap() {
 
710
                SubstanceInputMap result = new SubstanceInputMap();
 
711
 
 
712
                result.put("UP", SplitPaneActions.NEGATIVE_INCREMENT);
 
713
                result.put("DOWN", SplitPaneActions.POSITIVE_INCREMENT);
 
714
                result.put("LEFT", SplitPaneActions.NEGATIVE_INCREMENT);
 
715
                result.put("RIGHT", SplitPaneActions.POSITIVE_INCREMENT);
 
716
                result.put("KP_UP", SplitPaneActions.NEGATIVE_INCREMENT);
 
717
                result.put("KP_DOWN", SplitPaneActions.POSITIVE_INCREMENT);
 
718
                result.put("KP_LEFT", SplitPaneActions.NEGATIVE_INCREMENT);
 
719
                result.put("KP_RIGHT", SplitPaneActions.POSITIVE_INCREMENT);
 
720
 
 
721
                result.put("HOME", SplitPaneActions.SELECT_MIN);
 
722
                result.put("END", SplitPaneActions.SELECT_MAX);
 
723
                result.put("F8", SplitPaneActions.START_RESIZE);
 
724
                result.put("F6", SplitPaneActions.TOGGLE_FOCUS);
 
725
                result.put("ctrl TAB", SplitPaneActions.FOCUS_OUT_FORWARD);
 
726
                result.put("ctrl shift TAB", SplitPaneActions.FOCUS_OUT_BACKWARD);
 
727
 
 
728
                return result;
 
729
        }
 
730
 
 
731
        /**
 
732
         * From BasicTabbedPaneUI.Actions
 
733
         */
 
734
        protected static class TabbedPaneActions {
 
735
                public static final String NEXT = "navigateNext";
 
736
                public static final String PREVIOUS = "navigatePrevious";
 
737
                public static final String RIGHT = "navigateRight";
 
738
                public static final String LEFT = "navigateLeft";
 
739
                public static final String UP = "navigateUp";
 
740
                public static final String DOWN = "navigateDown";
 
741
                public static final String PAGE_UP = "navigatePageUp";
 
742
                public static final String PAGE_DOWN = "navigatePageDown";
 
743
                public static final String REQUEST_FOCUS = "requestFocus";
 
744
                public static final String REQUEST_FOCUS_FOR_VISIBLE = "requestFocusForVisibleComponent";
 
745
                public static final String SET_SELECTED = "setSelectedIndex";
 
746
                public static final String SELECT_FOCUSED = "selectTabWithFocus";
 
747
                public static final String SCROLL_FORWARD = "scrollTabsForwardAction";
 
748
                public static final String SCROLL_BACKWARD = "scrollTabsBackwardAction";
 
749
        }
 
750
 
 
751
        @Override
 
752
        public SubstanceInputMap getTabbedPaneAncestorInputMap() {
 
753
                SubstanceInputMap result = new SubstanceInputMap();
 
754
 
 
755
                result.put("ctrl PAGE_DOWN", TabbedPaneActions.PAGE_DOWN);
 
756
                result.put("ctrl PAGE_UP", TabbedPaneActions.PAGE_UP);
 
757
                result.put("ctrl UP", TabbedPaneActions.REQUEST_FOCUS);
 
758
                result.put("ctrl KP_UP", TabbedPaneActions.REQUEST_FOCUS);
 
759
 
 
760
                return result;
 
761
        }
 
762
 
 
763
        @Override
 
764
        public SubstanceInputMap getTabbedPaneFocusInputMap() {
 
765
                SubstanceInputMap result = new SubstanceInputMap();
 
766
 
 
767
                result.put("RIGHT", TabbedPaneActions.RIGHT);
 
768
                result.put("KP_RIGHT", TabbedPaneActions.RIGHT);
 
769
                result.put("LEFT", TabbedPaneActions.LEFT);
 
770
                result.put("KP_LEFT", TabbedPaneActions.LEFT);
 
771
 
 
772
                result.put("UP", TabbedPaneActions.UP);
 
773
                result.put("KP_UP", TabbedPaneActions.UP);
 
774
                result.put("DOWN", TabbedPaneActions.DOWN);
 
775
                result.put("KP_DOWN", TabbedPaneActions.DOWN);
 
776
 
 
777
                result.put("ctrl DOWN", TabbedPaneActions.REQUEST_FOCUS_FOR_VISIBLE);
 
778
                result.put("ctrl KP_DOWN", TabbedPaneActions.REQUEST_FOCUS_FOR_VISIBLE);
 
779
 
 
780
                return result;
 
781
        }
 
782
 
 
783
        /**
 
784
         * From BasicTableUI.Actions
 
785
         */
 
786
        protected static class TableActions {
 
787
                public static final String CANCEL_EDITING = "cancel";
 
788
                public static final String SELECT_ALL = "selectAll";
 
789
                public static final String CLEAR_SELECTION = "clearSelection";
 
790
                public static final String START_EDITING = "startEditing";
 
791
 
 
792
                public static final String NEXT_ROW = "selectNextRow";
 
793
                public static final String NEXT_ROW_CELL = "selectNextRowCell";
 
794
                public static final String NEXT_ROW_EXTEND_SELECTION = "selectNextRowExtendSelection";
 
795
                public static final String NEXT_ROW_CHANGE_LEAD = "selectNextRowChangeLead";
 
796
                public static final String PREVIOUS_ROW = "selectPreviousRow";
 
797
                public static final String PREVIOUS_ROW_CELL = "selectPreviousRowCell";
 
798
                public static final String PREVIOUS_ROW_EXTEND_SELECTION = "selectPreviousRowExtendSelection";
 
799
                public static final String PREVIOUS_ROW_CHANGE_LEAD = "selectPreviousRowChangeLead";
 
800
 
 
801
                public static final String NEXT_COLUMN = "selectNextColumn";
 
802
                public static final String NEXT_COLUMN_CELL = "selectNextColumnCell";
 
803
                public static final String NEXT_COLUMN_EXTEND_SELECTION = "selectNextColumnExtendSelection";
 
804
                public static final String NEXT_COLUMN_CHANGE_LEAD = "selectNextColumnChangeLead";
 
805
                public static final String PREVIOUS_COLUMN = "selectPreviousColumn";
 
806
                public static final String PREVIOUS_COLUMN_CELL = "selectPreviousColumnCell";
 
807
                public static final String PREVIOUS_COLUMN_EXTEND_SELECTION = "selectPreviousColumnExtendSelection";
 
808
                public static final String PREVIOUS_COLUMN_CHANGE_LEAD = "selectPreviousColumnChangeLead";
 
809
 
 
810
                public static final String SCROLL_LEFT_CHANGE_SELECTION = "scrollLeftChangeSelection";
 
811
                public static final String SCROLL_LEFT_EXTEND_SELECTION = "scrollLeftExtendSelection";
 
812
                public static final String SCROLL_RIGHT_CHANGE_SELECTION = "scrollRightChangeSelection";
 
813
                public static final String SCROLL_RIGHT_EXTEND_SELECTION = "scrollRightExtendSelection";
 
814
 
 
815
                public static final String SCROLL_UP_CHANGE_SELECTION = "scrollUpChangeSelection";
 
816
                public static final String SCROLL_UP_EXTEND_SELECTION = "scrollUpExtendSelection";
 
817
                public static final String SCROLL_DOWN_CHANGE_SELECTION = "scrollDownChangeSelection";
 
818
                public static final String SCROLL_DOWN_EXTEND_SELECTION = "scrollDownExtendSelection";
 
819
 
 
820
                public static final String FIRST_COLUMN = "selectFirstColumn";
 
821
                public static final String FIRST_COLUMN_EXTEND_SELECTION = "selectFirstColumnExtendSelection";
 
822
                public static final String LAST_COLUMN = "selectLastColumn";
 
823
                public static final String LAST_COLUMN_EXTEND_SELECTION = "selectLastColumnExtendSelection";
 
824
 
 
825
                public static final String FIRST_ROW = "selectFirstRow";
 
826
                public static final String FIRST_ROW_EXTEND_SELECTION = "selectFirstRowExtendSelection";
 
827
                public static final String LAST_ROW = "selectLastRow";
 
828
                public static final String LAST_ROW_EXTEND_SELECTION = "selectLastRowExtendSelection";
 
829
 
 
830
                public static final String ADD_TO_SELECTION = "addToSelection";
 
831
 
 
832
                public static final String TOGGLE_AND_ANCHOR = "toggleAndAnchor";
 
833
 
 
834
                public static final String EXTEND_TO = "extendTo";
 
835
 
 
836
                public static final String MOVE_SELECTION_TO = "moveSelectionTo";
 
837
 
 
838
                public static final String FOCUS_HEADER = "focusHeader";
 
839
        }
 
840
 
 
841
        @Override
 
842
    public SubstanceInputMap getTableAncestorInputMap() {
 
843
                SubstanceInputMap result = new SubstanceInputMap();
 
844
 
 
845
                result.put("ctrl C", COPY);
 
846
                result.put("ctrl V", PASTE);
 
847
                result.put("ctrl X", CUT);
 
848
                result.put("COPY", COPY);
 
849
                result.put("PASTE", PASTE);
 
850
                result.put("CUT", CUT);
 
851
                result.put("control INSERT", COPY);
 
852
                result.put("shift INSERT", PASTE);
 
853
                result.put("shift DELETE", CUT);
 
854
 
 
855
                result.put("RIGHT", TableActions.NEXT_COLUMN);
 
856
                result.put("KP_RIGHT", TableActions.NEXT_COLUMN);
 
857
                result.put("shift RIGHT", TableActions.NEXT_COLUMN_EXTEND_SELECTION);
 
858
                result.put("shift KP_RIGHT", TableActions.NEXT_COLUMN_EXTEND_SELECTION);
 
859
                result.put("ctrl shift RIGHT",
 
860
                                TableActions.NEXT_COLUMN_EXTEND_SELECTION);
 
861
                result.put("ctrl shift KP_RIGHT",
 
862
                                TableActions.NEXT_COLUMN_EXTEND_SELECTION);
 
863
                result.put("ctrl RIGHT", TableActions.NEXT_COLUMN_CHANGE_LEAD);
 
864
                result.put("ctrl KP_RIGHT", TableActions.NEXT_COLUMN_CHANGE_LEAD);
 
865
 
 
866
                result.put("LEFT", TableActions.PREVIOUS_COLUMN);
 
867
                result.put("KP_LEFT", TableActions.PREVIOUS_COLUMN);
 
868
                result.put("shift LEFT", TableActions.PREVIOUS_COLUMN_EXTEND_SELECTION);
 
869
                result.put("shift KP_LEFT",
 
870
                                TableActions.PREVIOUS_COLUMN_EXTEND_SELECTION);
 
871
                result.put("ctrl shift LEFT",
 
872
                                TableActions.PREVIOUS_COLUMN_EXTEND_SELECTION);
 
873
                result.put("ctrl shift KP_LEFT",
 
874
                                TableActions.PREVIOUS_COLUMN_EXTEND_SELECTION);
 
875
                result.put("ctrl LEFT", TableActions.PREVIOUS_COLUMN_CHANGE_LEAD);
 
876
                result.put("ctrl KP_LEFT", TableActions.PREVIOUS_COLUMN_CHANGE_LEAD);
 
877
 
 
878
                result.put("DOWN", TableActions.NEXT_ROW);
 
879
                result.put("KP_DOWN", TableActions.NEXT_ROW);
 
880
                result.put("shift DOWN", TableActions.NEXT_ROW_EXTEND_SELECTION);
 
881
                result.put("shift KP_DOWN", TableActions.NEXT_ROW_EXTEND_SELECTION);
 
882
                result.put("ctrl shift DOWN", TableActions.NEXT_ROW_EXTEND_SELECTION);
 
883
                result
 
884
                                .put("ctrl shift KP_DOWN",
 
885
                                                TableActions.NEXT_ROW_EXTEND_SELECTION);
 
886
                result.put("ctrl DOWN", TableActions.NEXT_ROW_CHANGE_LEAD);
 
887
                result.put("ctrl KP_DOWN", TableActions.NEXT_ROW_CHANGE_LEAD);
 
888
 
 
889
                result.put("UP", TableActions.PREVIOUS_ROW);
 
890
                result.put("KP_UP", TableActions.PREVIOUS_ROW);
 
891
                result.put("shift UP", TableActions.PREVIOUS_ROW_EXTEND_SELECTION);
 
892
                result.put("shift KP_UP", TableActions.PREVIOUS_ROW_EXTEND_SELECTION);
 
893
                result.put("ctrl shift UP", TableActions.PREVIOUS_ROW_EXTEND_SELECTION);
 
894
                result.put("ctrl shift KP_UP",
 
895
                                TableActions.PREVIOUS_ROW_EXTEND_SELECTION);
 
896
                result.put("ctrl UP", TableActions.PREVIOUS_ROW_CHANGE_LEAD);
 
897
                result.put("ctrl KP_UP", TableActions.PREVIOUS_ROW_CHANGE_LEAD);
 
898
 
 
899
                result.put("HOME", TableActions.FIRST_COLUMN);
 
900
                result.put("shift HOME", TableActions.FIRST_COLUMN_EXTEND_SELECTION);
 
901
                result.put("ctrl shift HOME", TableActions.FIRST_ROW_EXTEND_SELECTION);
 
902
                result.put("ctrl HOME", TableActions.FIRST_ROW);
 
903
                result.put("END", TableActions.LAST_COLUMN);
 
904
                result.put("shift END", TableActions.LAST_COLUMN_EXTEND_SELECTION);
 
905
                result.put("ctrl shift END", TableActions.LAST_ROW_EXTEND_SELECTION);
 
906
                result.put("ctrl END", TableActions.LAST_ROW);
 
907
 
 
908
                result.put("PAGE_UP", TableActions.SCROLL_UP_CHANGE_SELECTION);
 
909
                result.put("shift PAGE_UP", TableActions.SCROLL_UP_EXTEND_SELECTION);
 
910
                result.put("ctrl shift PAGE_UP",
 
911
                                TableActions.SCROLL_LEFT_EXTEND_SELECTION);
 
912
                result.put("ctrl PAGE_UP", TableActions.SCROLL_LEFT_CHANGE_SELECTION);
 
913
                result.put("PAGE_DOWN", TableActions.SCROLL_DOWN_CHANGE_SELECTION);
 
914
                result
 
915
                                .put("shift PAGE_DOWN",
 
916
                                                TableActions.SCROLL_DOWN_EXTEND_SELECTION);
 
917
                result.put("ctrl shift PAGE_DOWN",
 
918
                                TableActions.SCROLL_RIGHT_EXTEND_SELECTION);
 
919
                result
 
920
                                .put("ctrl PAGE_DOWN",
 
921
                                                TableActions.SCROLL_RIGHT_CHANGE_SELECTION);
 
922
 
 
923
                result.put("TAB", TableActions.NEXT_COLUMN_CELL);
 
924
                result.put("shift TAB", TableActions.PREVIOUS_COLUMN_CELL);
 
925
                result.put("ENTER", TableActions.NEXT_ROW_CELL);
 
926
                result.put("shift ENTER", TableActions.PREVIOUS_ROW_CELL);
 
927
                result.put("ctrl A", TableActions.SELECT_ALL);
 
928
                result.put("ctrl SLASH", TableActions.SELECT_ALL);
 
929
                result.put("ctrl BACK_SLASH", TableActions.CLEAR_SELECTION);
 
930
 
 
931
                result.put("ESCAPE", TableActions.CANCEL_EDITING);
 
932
                result.put("F2", TableActions.START_EDITING);
 
933
                result.put("SPACE", TableActions.ADD_TO_SELECTION);
 
934
                result.put("ctrl SPACE", TableActions.TOGGLE_AND_ANCHOR);
 
935
                result.put("shift SPACE", TableActions.EXTEND_TO);
 
936
                result.put("ctrl shift SPACE", TableActions.MOVE_SELECTION_TO);
 
937
                result.put("F8", TableActions.FOCUS_HEADER);
 
938
 
 
939
                return result;
 
940
        }
 
941
 
 
942
        protected static class TableHeaderActions {
 
943
                public static final String TOGGLE_SORT_ORDER = "toggleSortOrder";
 
944
                public static final String SELECT_COLUMN_TO_LEFT = "selectColumnToLeft";
 
945
                public static final String SELECT_COLUMN_TO_RIGHT = "selectColumnToRight";
 
946
                public static final String MOVE_COLUMN_LEFT = "moveColumnLeft";
 
947
                public static final String MOVE_COLUMN_RIGHT = "moveColumnRight";
 
948
                public static final String RESIZE_LEFT = "resizeLeft";
 
949
                public static final String RESIZE_RIGHT = "resizeRight";
 
950
                public static final String FOCUS_TABLE = "focusTable";
 
951
        }
 
952
 
 
953
        @Override
 
954
    public SubstanceInputMap getTableHeaderAncestorInputMap() {
 
955
                SubstanceInputMap result = new SubstanceInputMap();
 
956
 
 
957
                result.put("SPACE", TableHeaderActions.TOGGLE_SORT_ORDER);
 
958
 
 
959
                result.put("LEFT", TableHeaderActions.SELECT_COLUMN_TO_LEFT);
 
960
                result.put("KP_LEFT", TableHeaderActions.SELECT_COLUMN_TO_LEFT);
 
961
                result.put("RIGHT", TableHeaderActions.SELECT_COLUMN_TO_RIGHT);
 
962
                result.put("KP_RIGHT", TableHeaderActions.SELECT_COLUMN_TO_RIGHT);
 
963
 
 
964
                result.put("alt LEFT", TableHeaderActions.MOVE_COLUMN_LEFT);
 
965
                result.put("alt KP_LEFT", TableHeaderActions.MOVE_COLUMN_LEFT);
 
966
                result.put("alt RIGHT", TableHeaderActions.MOVE_COLUMN_RIGHT);
 
967
                result.put("alt KP_RIGHT", TableHeaderActions.MOVE_COLUMN_RIGHT);
 
968
 
 
969
                result.put("alt shift LEFT", TableHeaderActions.RESIZE_LEFT);
 
970
                result.put("alt shift KP_LEFT", TableHeaderActions.RESIZE_LEFT);
 
971
                result.put("alt shift RIGHT", TableHeaderActions.RESIZE_RIGHT);
 
972
                result.put("alt shift KP_RIGHT", TableHeaderActions.RESIZE_RIGHT);
 
973
 
 
974
                result.put("ESCAPE", TableHeaderActions.FOCUS_TABLE);
 
975
 
 
976
                return result;
 
977
 
 
978
        }
 
979
 
 
980
        @Override
 
981
    public SubstanceInputMap getTextAreaFocusInputMap() {
 
982
                return this.getMultilineTextComponentFocusInputMap();
 
983
        }
 
984
 
 
985
        @Override
 
986
    public SubstanceInputMap getTextFieldFocusInputMap() {
 
987
                SubstanceInputMap result = new SubstanceInputMap();
 
988
 
 
989
                result.put("ctrl C", DefaultEditorKit.copyAction);
 
990
                result.put("ctrl V", DefaultEditorKit.pasteAction);
 
991
                result.put("ctrl X", DefaultEditorKit.cutAction);
 
992
                result.put("COPY", DefaultEditorKit.copyAction);
 
993
                result.put("PASTE", DefaultEditorKit.pasteAction);
 
994
                result.put("CUT", DefaultEditorKit.cutAction);
 
995
                result.put("control INSERT", DefaultEditorKit.copyAction);
 
996
                result.put("shift INSERT", DefaultEditorKit.pasteAction);
 
997
                result.put("shift DELETE", DefaultEditorKit.cutAction);
 
998
 
 
999
                result.put("shift LEFT", DefaultEditorKit.selectionBackwardAction);
 
1000
                result.put("shift KP_LEFT", DefaultEditorKit.selectionBackwardAction);
 
1001
                result.put("shift RIGHT", DefaultEditorKit.selectionForwardAction);
 
1002
                result.put("shift KP_RIGHT", DefaultEditorKit.selectionForwardAction);
 
1003
                result.put("ctrl LEFT", DefaultEditorKit.previousWordAction);
 
1004
                result.put("ctrl KP_LEFT", DefaultEditorKit.previousWordAction);
 
1005
                result.put("ctrl RIGHT", DefaultEditorKit.nextWordAction);
 
1006
                result.put("ctrl KP_RIGHT", DefaultEditorKit.nextWordAction);
 
1007
                result.put("ctrl shift LEFT",
 
1008
                                DefaultEditorKit.selectionPreviousWordAction);
 
1009
                result.put("ctrl shift KP_LEFT",
 
1010
                                DefaultEditorKit.selectionPreviousWordAction);
 
1011
                result
 
1012
                                .put("ctrl shift RIGHT",
 
1013
                                                DefaultEditorKit.selectionNextWordAction);
 
1014
                result.put("ctrl shift KP_RIGHT",
 
1015
                                DefaultEditorKit.selectionNextWordAction);
 
1016
 
 
1017
                result.put("ctrl A", DefaultEditorKit.selectAllAction);
 
1018
                result.put("HOME", DefaultEditorKit.beginLineAction);
 
1019
                result.put("END", DefaultEditorKit.endLineAction);
 
1020
                result.put("shift HOME", DefaultEditorKit.selectionBeginLineAction);
 
1021
                result.put("shift END", DefaultEditorKit.selectionEndLineAction);
 
1022
 
 
1023
                result.put("BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
1024
                result.put("shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction);
 
1025
                result.put("ctrl H", DefaultEditorKit.deletePrevCharAction);
 
1026
                result.put("DELETE", DefaultEditorKit.deleteNextCharAction);
 
1027
                result.put("ctrl DELETE", DefaultEditorKit.deleteNextWordAction);
 
1028
                result.put("ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction);
 
1029
 
 
1030
                result.put("RIGHT", DefaultEditorKit.forwardAction);
 
1031
                result.put("LEFT", DefaultEditorKit.backwardAction);
 
1032
                result.put("KP_RIGHT", DefaultEditorKit.forwardAction);
 
1033
                result.put("KP_LEFT", DefaultEditorKit.backwardAction);
 
1034
                result.put("ENTER", JTextField.notifyAction);
 
1035
                result.put("ctrl BACK_SLASH", TextComponentActions.UNSELECT);
 
1036
                result.put("control shift O",
 
1037
                                TextComponentActions.TOGGLE_COMPONENT_ORIENTATION);
 
1038
 
 
1039
                return result;
 
1040
 
 
1041
        }
 
1042
 
 
1043
        @Override
 
1044
    public SubstanceInputMap getTextPaneFocusInputMap() {
 
1045
                return this.getMultilineTextComponentFocusInputMap();
 
1046
        }
 
1047
 
 
1048
        @Override
 
1049
    public SubstanceInputMap getToggleButtonFocusInputMap() {
 
1050
                return this.getActionControlFocusInputMap();
 
1051
        }
 
1052
 
 
1053
        /**
 
1054
         * From BasicToolBarUI.Actions
 
1055
         */
 
1056
        protected static class ToolBarActions {
 
1057
                public static final String NAVIGATE_RIGHT = "navigateRight";
 
1058
                public static final String NAVIGATE_LEFT = "navigateLeft";
 
1059
                public static final String NAVIGATE_UP = "navigateUp";
 
1060
                public static final String NAVIGATE_DOWN = "navigateDown";
 
1061
        }
 
1062
 
 
1063
        @Override
 
1064
    public SubstanceInputMap getToolBarAncestorInputMap() {
 
1065
                SubstanceInputMap result = new SubstanceInputMap();
 
1066
 
 
1067
                result.put("UP", ToolBarActions.NAVIGATE_UP);
 
1068
                result.put("KP_UP", ToolBarActions.NAVIGATE_UP);
 
1069
                result.put("DOWN", ToolBarActions.NAVIGATE_DOWN);
 
1070
                result.put("KP_DOWN", ToolBarActions.NAVIGATE_DOWN);
 
1071
                result.put("LEFT", ToolBarActions.NAVIGATE_LEFT);
 
1072
                result.put("KP_LEFT", ToolBarActions.NAVIGATE_LEFT);
 
1073
                result.put("RIGHT", ToolBarActions.NAVIGATE_RIGHT);
 
1074
                result.put("KP_RIGHT", ToolBarActions.NAVIGATE_RIGHT);
 
1075
 
 
1076
                return result;
 
1077
        }
 
1078
 
 
1079
        protected static class TreeActions {
 
1080
                public static final String SELECT_PREVIOUS = "selectPrevious";
 
1081
                public static final String SELECT_PREVIOUS_CHANGE_LEAD = "selectPreviousChangeLead";
 
1082
                public static final String SELECT_PREVIOUS_EXTEND_SELECTION = "selectPreviousExtendSelection";
 
1083
                public static final String SELECT_NEXT = "selectNext";
 
1084
                public static final String SELECT_NEXT_CHANGE_LEAD = "selectNextChangeLead";
 
1085
                public static final String SELECT_NEXT_EXTEND_SELECTION = "selectNextExtendSelection";
 
1086
                public static final String SELECT_CHILD = "selectChild";
 
1087
                public static final String SELECT_CHILD_CHANGE_LEAD = "selectChildChangeLead";
 
1088
                public static final String SELECT_PARENT = "selectParent";
 
1089
                public static final String SELECT_PARENT_CHANGE_LEAD = "selectParentChangeLead";
 
1090
                public static final String SCROLL_UP_CHANGE_SELECTION = "scrollUpChangeSelection";
 
1091
                public static final String SCROLL_UP_CHANGE_LEAD = "scrollUpChangeLead";
 
1092
                public static final String SCROLL_UP_EXTEND_SELECTION = "scrollUpExtendSelection";
 
1093
                public static final String SCROLL_DOWN_CHANGE_SELECTION = "scrollDownChangeSelection";
 
1094
                public static final String SCROLL_DOWN_EXTEND_SELECTION = "scrollDownExtendSelection";
 
1095
                public static final String SCROLL_DOWN_CHANGE_LEAD = "scrollDownChangeLead";
 
1096
                public static final String SELECT_FIRST = "selectFirst";
 
1097
                public static final String SELECT_FIRST_CHANGE_LEAD = "selectFirstChangeLead";
 
1098
                public static final String SELECT_FIRST_EXTEND_SELECTION = "selectFirstExtendSelection";
 
1099
                public static final String SELECT_LAST = "selectLast";
 
1100
                public static final String SELECT_LAST_CHANGE_LEAD = "selectLastChangeLead";
 
1101
                public static final String SELECT_LAST_EXTEND_SELECTION = "selectLastExtendSelection";
 
1102
                public static final String TOGGLE = "toggle";
 
1103
                public static final String CANCEL_EDITING = "cancel";
 
1104
                public static final String START_EDITING = "startEditing";
 
1105
                public static final String SELECT_ALL = "selectAll";
 
1106
                public static final String CLEAR_SELECTION = "clearSelection";
 
1107
                public static final String SCROLL_LEFT = "scrollLeft";
 
1108
                public static final String SCROLL_RIGHT = "scrollRight";
 
1109
                public static final String SCROLL_LEFT_EXTEND_SELECTION = "scrollLeftExtendSelection";
 
1110
                public static final String SCROLL_RIGHT_EXTEND_SELECTION = "scrollRightExtendSelection";
 
1111
                public static final String SCROLL_RIGHT_CHANGE_LEAD = "scrollRightChangeLead";
 
1112
                public static final String SCROLL_LEFT_CHANGE_LEAD = "scrollLeftChangeLead";
 
1113
                public static final String EXPAND = "expand";
 
1114
                public static final String COLLAPSE = "collapse";
 
1115
                public static final String MOVE_SELECTION_TO_PARENT = "moveSelectionToParent";
 
1116
 
 
1117
                public static final String ADD_TO_SELECTION = "addToSelection";
 
1118
 
 
1119
                public static final String TOGGLE_AND_ANCHOR = "toggleAndAnchor";
 
1120
 
 
1121
                public static final String EXTEND_TO = "extendTo";
 
1122
 
 
1123
                public static final String MOVE_SELECTION_TO = "moveSelectionTo";
 
1124
        }
 
1125
 
 
1126
        @Override
 
1127
    public SubstanceInputMap getTreeAncestorInputMap() {
 
1128
                SubstanceInputMap result = new SubstanceInputMap();
 
1129
 
 
1130
                result.put("ESCAPE", TreeActions.CANCEL_EDITING);
 
1131
 
 
1132
                return result;
 
1133
 
 
1134
        }
 
1135
 
 
1136
        @Override
 
1137
    public SubstanceInputMap getTreeFocusInputMap() {
 
1138
                SubstanceInputMap result = new SubstanceInputMap();
 
1139
 
 
1140
                result.put("ADD", TreeActions.EXPAND);
 
1141
                result.put("SUBTRACT", TreeActions.COLLAPSE);
 
1142
 
 
1143
                result.put("ctrl C", COPY);
 
1144
                result.put("ctrl V", PASTE);
 
1145
                result.put("ctrl X", CUT);
 
1146
                result.put("COPY", COPY);
 
1147
                result.put("PASTE", PASTE);
 
1148
                result.put("CUT", CUT);
 
1149
                result.put("control INSERT", COPY);
 
1150
                result.put("shift INSERT", PASTE);
 
1151
                result.put("shift DELETE", CUT);
 
1152
 
 
1153
                result.put("UP", TreeActions.SELECT_PREVIOUS);
 
1154
                result.put("KP_UP", TreeActions.SELECT_PREVIOUS);
 
1155
                result.put("shift UP", TreeActions.SELECT_PREVIOUS_EXTEND_SELECTION);
 
1156
                result.put("shift KP_UP", TreeActions.SELECT_PREVIOUS_EXTEND_SELECTION);
 
1157
                result.put("ctrl shift UP",
 
1158
                                TreeActions.SELECT_PREVIOUS_EXTEND_SELECTION);
 
1159
                result.put("ctrl shift KP_UP",
 
1160
                                TreeActions.SELECT_PREVIOUS_EXTEND_SELECTION);
 
1161
                result.put("ctrl UP", TreeActions.SELECT_PREVIOUS_CHANGE_LEAD);
 
1162
                result.put("ctrl KP_UP", TreeActions.SELECT_PREVIOUS_CHANGE_LEAD);
 
1163
 
 
1164
                result.put("DOWN", TreeActions.SELECT_NEXT);
 
1165
                result.put("KP_DOWN", TreeActions.SELECT_NEXT);
 
1166
                result.put("shift DOWN", TreeActions.SELECT_NEXT_EXTEND_SELECTION);
 
1167
                result.put("shift KP_DOWN", TreeActions.SELECT_NEXT_EXTEND_SELECTION);
 
1168
                result.put("ctrl shift DOWN", TreeActions.SELECT_NEXT_EXTEND_SELECTION);
 
1169
                result.put("ctrl shift KP_DOWN",
 
1170
                                TreeActions.SELECT_NEXT_EXTEND_SELECTION);
 
1171
                result.put("ctrl DOWN", TreeActions.SELECT_NEXT_CHANGE_LEAD);
 
1172
                result.put("ctrl KP_DOWN", TreeActions.SELECT_NEXT_CHANGE_LEAD);
 
1173
 
 
1174
                result.put("RIGHT", TreeActions.SELECT_CHILD);
 
1175
                result.put("KP_RIGHT", TreeActions.SELECT_CHILD);
 
1176
                result.put("LEFT", TreeActions.SELECT_PARENT);
 
1177
                result.put("KP_LEFT", TreeActions.SELECT_PARENT);
 
1178
 
 
1179
                result.put("PAGE_UP", TreeActions.SCROLL_UP_CHANGE_SELECTION);
 
1180
                result.put("shift PAGE_UP", TreeActions.SCROLL_UP_EXTEND_SELECTION);
 
1181
                result
 
1182
                                .put("ctrl shift PAGE_UP",
 
1183
                                                TreeActions.SCROLL_UP_EXTEND_SELECTION);
 
1184
                result.put("ctrl PAGE_UP", TreeActions.SCROLL_UP_CHANGE_LEAD);
 
1185
                result.put("PAGE_DOWN", TreeActions.SCROLL_DOWN_CHANGE_SELECTION);
 
1186
                result.put("shift PAGE_DOWN", TreeActions.SCROLL_DOWN_EXTEND_SELECTION);
 
1187
                result.put("ctrl shift PAGE_DOWN",
 
1188
                                TreeActions.SCROLL_DOWN_EXTEND_SELECTION);
 
1189
                result.put("ctrl PAGE_DOWN", TreeActions.SCROLL_DOWN_CHANGE_LEAD);
 
1190
 
 
1191
                result.put("HOME", TreeActions.SELECT_FIRST);
 
1192
                result.put("shift HOME", TreeActions.SELECT_FIRST_EXTEND_SELECTION);
 
1193
                result
 
1194
                                .put("ctrl shift HOME",
 
1195
                                                TreeActions.SELECT_FIRST_EXTEND_SELECTION);
 
1196
                result.put("ctrl HOME", TreeActions.SELECT_FIRST_CHANGE_LEAD);
 
1197
                result.put("END", TreeActions.SELECT_LAST);
 
1198
                result.put("shift END", TreeActions.SELECT_LAST_EXTEND_SELECTION);
 
1199
                result.put("ctrl shift END", TreeActions.SELECT_LAST_EXTEND_SELECTION);
 
1200
                result.put("ctrl END", TreeActions.SELECT_LAST_CHANGE_LEAD);
 
1201
 
 
1202
                result.put("F2", TreeActions.START_EDITING);
 
1203
                result.put("ctrl A", TreeActions.SELECT_ALL);
 
1204
                result.put("ctrl SLASH", TreeActions.SELECT_ALL);
 
1205
                result.put("ctrl BACK_SLASH", TreeActions.CLEAR_SELECTION);
 
1206
 
 
1207
                result.put("ctrl LEFT", TreeActions.SCROLL_LEFT);
 
1208
                result.put("ctrl KP_LEFT", TreeActions.SCROLL_LEFT);
 
1209
                result.put("ctrl RIGHT", TreeActions.SCROLL_RIGHT);
 
1210
                result.put("ctrl KP_RIGHT", TreeActions.SCROLL_RIGHT);
 
1211
 
 
1212
                result.put("SPACE", TreeActions.ADD_TO_SELECTION);
 
1213
                result.put("ctrl SPACE", TreeActions.TOGGLE_AND_ANCHOR);
 
1214
                result.put("shift SPACE", TreeActions.EXTEND_TO);
 
1215
                result.put("ctrl shift SPACE", TreeActions.MOVE_SELECTION_TO);
 
1216
 
 
1217
                return result;
 
1218
        };
 
1219
}
 
 
b'\\ No newline at end of file'