001 /* 002 * Created on Apr 28, 2009 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 005 * the License. You may obtain a copy of the License at 006 * 007 * http://www.apache.org/licenses/LICENSE-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 010 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 011 * specific language governing permissions and limitations under the License. 012 * 013 * Copyright @2009-2010 the original author or authors. 014 */ 015 package org.fest.swing.keystroke; 016 017 import static java.awt.event.InputEvent.ALT_GRAPH_MASK; 018 import static java.awt.event.InputEvent.SHIFT_MASK; 019 import static java.awt.event.KeyEvent.*; 020 import static org.fest.swing.keystroke.KeyStrokeMapping.mapping; 021 import static org.fest.swing.keystroke.KeyStrokeMappings.defaultMappings; 022 023 import java.util.*; 024 025 import javax.swing.KeyStroke; 026 027 /** 028 * Understands mapping characters to <code>{@link KeyStroke}</code>s for locale 029 * <code>{@link java.util.Locale#GERMAN GERMAN}</code>. 030 * 031 * @author Uli Schrempp 032 * @author Alex Ruiz 033 */ 034 public class KeyStrokeMappingProvider_de implements KeyStrokeMappingProvider { 035 036 /** 037 * Returns the mapping between characters and <code>{@link KeyStroke}</code>s for locale 038 * <code>{@link java.util.Locale#GERMAN GERMAN}</code>. 039 * @return the mapping between characters and <code>KeyStroke</code>s for locale <code>GERMAN</code>. 040 */ 041 public Collection<KeyStrokeMapping> keyStrokeMappings() { 042 List<KeyStrokeMapping> mappings = new ArrayList<KeyStrokeMapping>(120); 043 mappings.addAll(defaultMappings()); 044 mappings.add(mapping('0', VK_0, NO_MASK)); 045 mappings.add(mapping('=', VK_0, SHIFT_MASK)); 046 mappings.add(mapping('}', VK_0, ALT_GRAPH_MASK)); 047 mappings.add(mapping('1', VK_1, NO_MASK)); 048 mappings.add(mapping('!', VK_1, SHIFT_MASK)); 049 mappings.add(mapping('2', VK_2, NO_MASK)); 050 mappings.add(mapping('"', VK_2, SHIFT_MASK)); 051 mappings.add(mapping('?', VK_2, ALT_GRAPH_MASK)); 052 mappings.add(mapping('3', VK_3, NO_MASK)); 053 mappings.add(mapping('?', VK_3, SHIFT_MASK)); 054 mappings.add(mapping('?', VK_0, ALT_GRAPH_MASK)); 055 mappings.add(mapping('4', VK_4, NO_MASK)); 056 mappings.add(mapping('$', VK_4, SHIFT_MASK)); 057 mappings.add(mapping('5', VK_5, NO_MASK)); 058 mappings.add(mapping('%', VK_5, SHIFT_MASK)); 059 mappings.add(mapping('6', VK_6, NO_MASK)); 060 mappings.add(mapping('&', VK_6, SHIFT_MASK)); 061 mappings.add(mapping('7', VK_7, NO_MASK)); 062 mappings.add(mapping('/', VK_7, SHIFT_MASK)); 063 mappings.add(mapping('{', VK_7, ALT_GRAPH_MASK)); 064 mappings.add(mapping('8', VK_8, NO_MASK)); 065 mappings.add(mapping('(', VK_8, SHIFT_MASK)); 066 mappings.add(mapping('[', VK_8, ALT_GRAPH_MASK)); 067 mappings.add(mapping('9', VK_9, NO_MASK)); 068 mappings.add(mapping(')', VK_9, SHIFT_MASK)); 069 mappings.add(mapping(']', VK_9, ALT_GRAPH_MASK)); 070 mappings.add(mapping('a', VK_A, NO_MASK)); 071 mappings.add(mapping('A', VK_A, SHIFT_MASK)); 072 mappings.add(mapping('b', VK_B, NO_MASK)); 073 mappings.add(mapping('B', VK_B, SHIFT_MASK)); 074 mappings.add(mapping('^', VK_BACK_QUOTE, NO_MASK)); 075 mappings.add(mapping('?', VK_BACK_QUOTE, SHIFT_MASK)); 076 mappings.add(mapping('<', VK_BACK_SLASH, NO_MASK)); 077 mappings.add(mapping('>', VK_BACK_SLASH, SHIFT_MASK)); 078 mappings.add(mapping('|', VK_BACK_SLASH, ALT_GRAPH_MASK)); 079 mappings.add(mapping('c', VK_C, NO_MASK)); 080 mappings.add(mapping('C', VK_C, SHIFT_MASK)); 081 mappings.add(mapping('+', VK_CLOSE_BRACKET, NO_MASK)); 082 mappings.add(mapping('*', VK_CLOSE_BRACKET, SHIFT_MASK)); 083 mappings.add(mapping('~', VK_CLOSE_BRACKET, ALT_GRAPH_MASK)); 084 mappings.add(mapping(',', VK_COMMA, NO_MASK)); 085 mappings.add(mapping(';', VK_COMMA, SHIFT_MASK)); 086 mappings.add(mapping('d', VK_D, NO_MASK)); 087 mappings.add(mapping('D', VK_D, SHIFT_MASK)); 088 mappings.add(mapping('', VK_DELETE, NO_MASK)); 089 mappings.add(mapping('e', VK_E, NO_MASK)); 090 mappings.add(mapping('E', VK_E, SHIFT_MASK)); 091 mappings.add(mapping('?', VK_E, ALT_GRAPH_MASK)); 092 mappings.add(mapping('?', VK_EQUALS, NO_MASK)); 093 mappings.add(mapping('`', VK_EQUALS, SHIFT_MASK)); 094 mappings.add(mapping('f', VK_F, NO_MASK)); 095 mappings.add(mapping('F', VK_F, SHIFT_MASK)); 096 mappings.add(mapping('g', VK_G, NO_MASK)); 097 mappings.add(mapping('G', VK_G, SHIFT_MASK)); 098 mappings.add(mapping('h', VK_H, NO_MASK)); 099 mappings.add(mapping('H', VK_H, SHIFT_MASK)); 100 mappings.add(mapping('i', VK_I, NO_MASK)); 101 mappings.add(mapping('I', VK_I, SHIFT_MASK)); 102 mappings.add(mapping('j', VK_J, NO_MASK)); 103 mappings.add(mapping('J', VK_J, SHIFT_MASK)); 104 mappings.add(mapping('k', VK_K, NO_MASK)); 105 mappings.add(mapping('K', VK_K, SHIFT_MASK)); 106 mappings.add(mapping('l', VK_L, NO_MASK)); 107 mappings.add(mapping('L', VK_L, SHIFT_MASK)); 108 mappings.add(mapping('m', VK_M, NO_MASK)); 109 mappings.add(mapping('M', VK_M, SHIFT_MASK)); 110 mappings.add(mapping('?', VK_M, ALT_GRAPH_MASK)); 111 mappings.add(mapping('?', VK_SLASH, SHIFT_MASK)); 112 mappings.add(mapping('\\', VK_SLASH, ALT_GRAPH_MASK)); 113 mappings.add(mapping('n', VK_N, NO_MASK)); 114 mappings.add(mapping('N', VK_N, SHIFT_MASK)); 115 mappings.add(mapping('o', VK_O, NO_MASK)); 116 mappings.add(mapping('O', VK_O, SHIFT_MASK)); 117 mappings.add(mapping('p', VK_P, NO_MASK)); 118 mappings.add(mapping('P', VK_P, SHIFT_MASK)); 119 mappings.add(mapping('.', VK_PERIOD, NO_MASK)); 120 mappings.add(mapping(':', VK_PERIOD, SHIFT_MASK)); 121 mappings.add(mapping('q', VK_Q, NO_MASK)); 122 mappings.add(mapping('Q', VK_Q, SHIFT_MASK)); 123 mappings.add(mapping('@', VK_Q, ALT_GRAPH_MASK)); 124 mappings.add(mapping('r', VK_R, NO_MASK)); 125 mappings.add(mapping('R', VK_R, SHIFT_MASK)); 126 mappings.add(mapping('s', VK_S, NO_MASK)); 127 mappings.add(mapping('S', VK_S, SHIFT_MASK)); 128 mappings.add(mapping('-', VK_MINUS, NO_MASK)); 129 mappings.add(mapping('_', VK_MINUS, SHIFT_MASK)); 130 mappings.add(mapping(' ', VK_SPACE, NO_MASK)); 131 mappings.add(mapping('t', VK_T, NO_MASK)); 132 mappings.add(mapping('T', VK_T, SHIFT_MASK)); 133 mappings.add(mapping('u', VK_U, NO_MASK)); 134 mappings.add(mapping('U', VK_U, SHIFT_MASK)); 135 mappings.add(mapping('v', VK_V, NO_MASK)); 136 mappings.add(mapping('V', VK_V, SHIFT_MASK)); 137 mappings.add(mapping('w', VK_W, NO_MASK)); 138 mappings.add(mapping('W', VK_W, SHIFT_MASK)); 139 mappings.add(mapping('x', VK_X, NO_MASK)); 140 mappings.add(mapping('X', VK_X, SHIFT_MASK)); 141 mappings.add(mapping('y', VK_Y, NO_MASK)); 142 mappings.add(mapping('Y', VK_Y, SHIFT_MASK)); 143 mappings.add(mapping('z', VK_Z, NO_MASK)); 144 mappings.add(mapping('Z', VK_Z, SHIFT_MASK)); 145 return mappings; 146 } 147 148 }