source: trunk/quest-misc/src/main/java/de/ugoe/cs/tasktree/keyboardmaps/VirtualKey.java @ 655

Last change on this file since 655 was 655, checked in by pharms, 12 years ago
  • removed old copyright file header
File size: 10.2 KB
Line 
1package de.ugoe.cs.tasktree.keyboardmaps;
2
3import java.awt.event.KeyEvent;
4
5/**
6 * TODO comment
7 *
8 * @version $Revision: $ $Date: 01.04.2012$
9 * @author 2012, last modified by $Author: patrick$
10 */
11public enum VirtualKey {
12
13    ENTER(KeyEvent.VK_ENTER),
14    BACK_SPACE(KeyEvent.VK_BACK_SPACE),
15    TAB(KeyEvent.VK_TAB),
16    CANCEL(KeyEvent.VK_CANCEL),
17    CLEAR(KeyEvent.VK_CLEAR),
18    SHIFT(KeyEvent.VK_SHIFT),
19    CONTROL(KeyEvent.VK_CONTROL),
20    ALT(KeyEvent.VK_ALT),
21    PAUSE(KeyEvent.VK_PAUSE),
22    CAPS_LOCK(KeyEvent.VK_CAPS_LOCK),
23    ESCAPE(KeyEvent.VK_ESCAPE),
24    SPACE(KeyEvent.VK_SPACE),
25    PAGE_UP(KeyEvent.VK_PAGE_UP),
26    PAGE_DOWN(KeyEvent.VK_PAGE_DOWN),
27    END(KeyEvent.VK_END),
28    HOME(KeyEvent.VK_HOME),
29
30    LEFT(KeyEvent.VK_LEFT),
31    UP(KeyEvent.VK_UP),
32    RIGHT(KeyEvent.VK_RIGHT),
33    DOWN(KeyEvent.VK_DOWN),
34
35    COMMA(KeyEvent.VK_COMMA),
36    MINUS(KeyEvent.VK_MINUS),
37    PERIOD(KeyEvent.VK_PERIOD),
38    SLASH(KeyEvent.VK_SLASH),
39
40    DIGIT_0(KeyEvent.VK_0),
41    DIGIT_1(KeyEvent.VK_1),
42    DIGIT_2(KeyEvent.VK_2),
43    DIGIT_3(KeyEvent.VK_3),
44    DIGIT_4(KeyEvent.VK_4),
45    DIGIT_5(KeyEvent.VK_5),
46    DIGIT_6(KeyEvent.VK_6),
47    DIGIT_7(KeyEvent.VK_7),
48    DIGIT_8(KeyEvent.VK_8),
49    DIGIT_9(KeyEvent.VK_9),
50
51    SEMICOLON(KeyEvent.VK_SEMICOLON),
52    EQUALS(KeyEvent.VK_EQUALS),
53
54    LETTER_A(KeyEvent.VK_A),
55    LETTER_B(KeyEvent.VK_B),
56    LETTER_C(KeyEvent.VK_C),
57    LETTER_D(KeyEvent.VK_D),
58    LETTER_E(KeyEvent.VK_E),
59    LETTER_F(KeyEvent.VK_F),
60    LETTER_G(KeyEvent.VK_G),
61    LETTER_H(KeyEvent.VK_H),
62    LETTER_I(KeyEvent.VK_I),
63    LETTER_J(KeyEvent.VK_J),
64    LETTER_K(KeyEvent.VK_K),
65    LETTER_L(KeyEvent.VK_L),
66    LETTER_M(KeyEvent.VK_M),
67    LETTER_N(KeyEvent.VK_N),
68    LETTER_O(KeyEvent.VK_O),
69    LETTER_P(KeyEvent.VK_P),
70    LETTER_Q(KeyEvent.VK_Q),
71    LETTER_R(KeyEvent.VK_R),
72    LETTER_S(KeyEvent.VK_S),
73    LETTER_T(KeyEvent.VK_T),
74    LETTER_U(KeyEvent.VK_U),
75    LETTER_V(KeyEvent.VK_V),
76    LETTER_W(KeyEvent.VK_W),
77    LETTER_X(KeyEvent.VK_X),
78    LETTER_Y(KeyEvent.VK_Y),
79    LETTER_Z(KeyEvent.VK_Z),
80
81    OPEN_BRACKET(KeyEvent.VK_OPEN_BRACKET),
82    BACK_SLASH(KeyEvent.VK_BACK_SLASH),
83    CLOSE_BRACKET(KeyEvent.VK_CLOSE_BRACKET),
84
85    NUMPAD_0(KeyEvent.VK_NUMPAD0),
86    NUMPAD_1(KeyEvent.VK_NUMPAD1),
87    NUMPAD_2(KeyEvent.VK_NUMPAD2),
88    NUMPAD_3(KeyEvent.VK_NUMPAD3),
89    NUMPAD_4(KeyEvent.VK_NUMPAD4),
90    NUMPAD_5(KeyEvent.VK_NUMPAD5),
91    NUMPAD_6(KeyEvent.VK_NUMPAD6),
92    NUMPAD_7(KeyEvent.VK_NUMPAD7),
93    NUMPAD_8(KeyEvent.VK_NUMPAD8),
94    NUMPAD_9(KeyEvent.VK_NUMPAD9),
95    MULTIPLY(KeyEvent.VK_MULTIPLY),
96    ADD(KeyEvent.VK_ADD),
97
98    SEPARATOR(KeyEvent.VK_SEPARATOR),
99
100    SUBTRACT(KeyEvent.VK_SUBTRACT),
101    DECIMAL(KeyEvent.VK_DECIMAL),
102    DIVIDE(KeyEvent.VK_DIVIDE),
103    DELETE(KeyEvent.VK_DELETE),
104    NUM_LOCK(KeyEvent.VK_NUM_LOCK),
105    SCROLL_LOCK(KeyEvent.VK_SCROLL_LOCK),
106
107    F1(KeyEvent.VK_F1),
108    F2(KeyEvent.VK_F2),
109    F3(KeyEvent.VK_F3),
110    F4(KeyEvent.VK_F4),
111    F5(KeyEvent.VK_F5),
112    F6(KeyEvent.VK_F6),
113    F7(KeyEvent.VK_F7),
114    F8(KeyEvent.VK_F8),
115    F9(KeyEvent.VK_F9),
116    F10(KeyEvent.VK_F10),
117    F11(KeyEvent.VK_F11),
118    F12(KeyEvent.VK_F12),
119    F13(KeyEvent.VK_F13),
120    F14(KeyEvent.VK_F14),
121    F15(KeyEvent.VK_F15),
122    F16(KeyEvent.VK_F16),
123    F17(KeyEvent.VK_F17),
124    F18(KeyEvent.VK_F18),
125    F19(KeyEvent.VK_F19),
126    F20(KeyEvent.VK_F20),
127    F21(KeyEvent.VK_F21),
128    F22(KeyEvent.VK_F22),
129    F23(KeyEvent.VK_F23),
130    F24(KeyEvent.VK_F24),
131
132    PRINTSCREEN(KeyEvent.VK_PRINTSCREEN),
133    INSERT(KeyEvent.VK_INSERT),
134    HELP(KeyEvent.VK_HELP),
135    META(KeyEvent.VK_META),
136
137    BACK_QUOTE(KeyEvent.VK_BACK_QUOTE),
138    QUOTE(KeyEvent.VK_QUOTE),
139
140    KP_UP(KeyEvent.VK_KP_UP),
141    KP_DOWN(KeyEvent.VK_KP_DOWN),
142    KP_LEFT(KeyEvent.VK_KP_LEFT),
143    KP_RIGHT(KeyEvent.VK_KP_RIGHT),
144
145    DEAD_GRAVE(KeyEvent.VK_DEAD_GRAVE),
146    DEAD_ACUTE(KeyEvent.VK_DEAD_ACUTE),
147    DEAD_CIRCUMFLEX(KeyEvent.VK_DEAD_CIRCUMFLEX),
148    DEAD_TILDE(KeyEvent.VK_DEAD_TILDE),
149    DEAD_MACRON(KeyEvent.VK_DEAD_MACRON),
150    DEAD_BREVE(KeyEvent.VK_DEAD_BREVE),
151    DEAD_ABOVEDOT(KeyEvent.VK_DEAD_ABOVEDOT),
152    DEAD_DIAERESIS(KeyEvent.VK_DEAD_DIAERESIS),
153    DEAD_ABOVERING(KeyEvent.VK_DEAD_ABOVERING),
154    DEAD_DOUBLEACUTE(KeyEvent.VK_DEAD_DOUBLEACUTE),
155    DEAD_CARON(KeyEvent.VK_DEAD_CARON),
156    DEAD_CEDILLA(KeyEvent.VK_DEAD_CEDILLA),
157    DEAD_OGONEK(KeyEvent.VK_DEAD_OGONEK),
158    DEAD_IOTA(KeyEvent.VK_DEAD_IOTA),
159    DEAD_VOICED_SOUND(KeyEvent.VK_DEAD_VOICED_SOUND),
160    DEAD_SEMIVOICED_SOUND(KeyEvent.VK_DEAD_SEMIVOICED_SOUND),
161
162    AMPERSAND(KeyEvent.VK_AMPERSAND),
163    ASTERISK(KeyEvent.VK_ASTERISK),
164    QUOTEDBL(KeyEvent.VK_QUOTEDBL),
165    LESS(KeyEvent.VK_LESS),
166    GREATER(KeyEvent.VK_GREATER),
167    BRACELEFT(KeyEvent.VK_BRACELEFT),
168    BRACERIGHT(KeyEvent.VK_BRACERIGHT),
169
170    AT(KeyEvent.VK_AT),
171    COLON(KeyEvent.VK_COLON),
172    CIRCUMFLEX(KeyEvent.VK_CIRCUMFLEX),
173    DOLLAR(KeyEvent.VK_DOLLAR),
174    EURO_SIGN(KeyEvent.VK_EURO_SIGN),
175    EXCLAMATION_MARK(KeyEvent.VK_EXCLAMATION_MARK),
176    INVERTED_EXCLAMATION_MARK(KeyEvent.VK_INVERTED_EXCLAMATION_MARK),
177    LEFT_PARENTHESIS(KeyEvent.VK_LEFT_PARENTHESIS),
178    NUMBER_SIGN(KeyEvent.VK_NUMBER_SIGN),
179    PLUS(KeyEvent.VK_PLUS),
180    RIGHT_PARENTHESIS(KeyEvent.VK_RIGHT_PARENTHESIS),
181    UNDERSCORE(KeyEvent.VK_UNDERSCORE),
182
183    WINDOWS(KeyEvent.VK_WINDOWS),
184    CONTEXT_MENU(KeyEvent.VK_CONTEXT_MENU),
185
186    FINAL(KeyEvent.VK_FINAL),
187    CONVERT(KeyEvent.VK_CONVERT),
188    NONCONVERT(KeyEvent.VK_NONCONVERT),
189    ACCEPT(KeyEvent.VK_ACCEPT),
190    MODECHANGE(KeyEvent.VK_MODECHANGE),
191    KANA(KeyEvent.VK_KANA),
192    KANJI(KeyEvent.VK_KANJI),
193    ALPHANUMERIC(KeyEvent.VK_ALPHANUMERIC),
194    KATAKANA(KeyEvent.VK_KATAKANA),
195    HIRAGANA(KeyEvent.VK_HIRAGANA),
196    FULL_WIDTH(KeyEvent.VK_FULL_WIDTH),
197    HALF_WIDTH(KeyEvent.VK_HALF_WIDTH),
198    ROMAN_CHARACTERS(KeyEvent.VK_ROMAN_CHARACTERS),
199    ALL_CANDIDATES(KeyEvent.VK_ALL_CANDIDATES),
200    PREVIOUS_CANDIDATE(KeyEvent.VK_PREVIOUS_CANDIDATE),
201    CODE_INPUT(KeyEvent.VK_CODE_INPUT),
202    JAPANESE_KATAKANA(KeyEvent.VK_JAPANESE_KATAKANA),
203    JAPANESE_HIRAGANA(KeyEvent.VK_JAPANESE_HIRAGANA),
204    JAPANESE_ROMAN(KeyEvent.VK_JAPANESE_ROMAN),
205    KANA_LOCK(KeyEvent.VK_KANA_LOCK),
206    INPUT_METHOD_ON_OFF(KeyEvent.VK_INPUT_METHOD_ON_OFF),
207
208    CUT(KeyEvent.VK_CUT),
209    COPY(KeyEvent.VK_COPY),
210    PASTE(KeyEvent.VK_PASTE),
211    UNDO(KeyEvent.VK_UNDO),
212    AGAIN(KeyEvent.VK_AGAIN),
213    FIND(KeyEvent.VK_FIND),
214    PROPS(KeyEvent.VK_PROPS),
215    STOP(KeyEvent.VK_STOP),
216    COMPOSE(KeyEvent.VK_COMPOSE),
217    ALT_GRAPH(KeyEvent.VK_ALT_GRAPH),
218    BEGIN(KeyEvent.VK_BEGIN),
219
220    UNDEFINED(KeyEvent.VK_UNDEFINED);
221
222    /*
223     * BAR(KeyEvent.VK_UNDEFINED),
224     * APOSTROPHE(KeyEvent.VK_UNDEFINED),
225     * QUESTIONMARK(KeyEvent.VK_UNDEFINED),
226     * DEGREE(KeyEvent.VK_UNDEFINED),
227     * HENKAN_MODE(KeyEvent.VK_UNDEFINED),
228     * MUHENKAN(KeyEvent.VK_UNDEFINED),
229     * EISU_TOGGLE(KeyEvent.VK_UNDEFINED),
230     * HANGUL(KeyEvent.VK_UNDEFINED),
231     * HANGUL_HANJA(KeyEvent.VK_UNDEFINED),
232     * EXECUTE(KeyEvent.VK_UNDEFINED);
233     */
234
235    /** the virtual key code of the virtual key. */
236    private int virtualKeyCode = -1;
237
238    /** the description of the virtual key */
239    private String description;
240
241    /**
242   *
243   */
244    private VirtualKey(int virtualKeyCode) {
245        this.virtualKeyCode = virtualKeyCode;
246        this.description = KeyEvent.getKeyText(this.virtualKeyCode);
247    }
248
249    /**
250     * @return Returns the description.
251     */
252    String getDescription() {
253        return description;
254    }
255
256    /**
257   *
258   */
259    public boolean isCombinationKey() {
260        switch (this)
261        {
262            case SHIFT:
263            case CONTROL:
264            case ALT:
265            case ALT_GRAPH:
266            case WINDOWS:
267                return true;
268
269            default:
270                return false;
271        }
272    }
273
274    /**
275   *
276   */
277    public boolean isLockKey() {
278        switch (this)
279        {
280            case CAPS_LOCK:
281            case NUM_LOCK:
282            case SCROLL_LOCK:
283                return true;
284
285            default:
286                return false;
287        }
288    }
289
290    /**
291   *
292   */
293    public boolean isShiftKey() {
294        switch (this)
295        {
296            case SHIFT:
297                return true;
298
299            default:
300                return false;
301        }
302    }
303
304    /**
305   *
306   */
307    public boolean isAltKey() {
308        switch (this)
309        {
310            case ALT:
311            case ALT_GRAPH:
312                return true;
313
314            default:
315                return false;
316        }
317    }
318
319    /**
320   *
321   */
322    public boolean isControlKey() {
323        switch (this)
324        {
325            case CONTROL:
326                return true;
327
328            default:
329                return false;
330        }
331    }
332
333    /**
334   *
335   */
336    public boolean isWindowsKey() {
337        switch (this)
338        {
339            case WINDOWS:
340                return true;
341
342            default:
343                return false;
344        }
345    }
346
347    /**
348   *
349   */
350    public boolean isMetaKey() {
351        switch (this)
352        {
353            case META:
354                return true;
355
356            default:
357                return false;
358        }
359    }
360
361    /**
362   *
363   */
364    public boolean isLetter() {
365        if (virtualKeyCode > -1) {
366            return Character.isLetter((char) virtualKeyCode);
367        }
368        else {
369            return false;
370        }
371    }
372
373    /**
374   *
375   */
376    public boolean isDigit() {
377        if (virtualKeyCode > -1) {
378            return Character.isDigit(virtualKeyCode);
379        }
380        else {
381            return false;
382        }
383    }
384
385    /**
386     * TODO: comment
387     *
388     * @param parameter
389     * @return
390     */
391    public static VirtualKey parseVirtualKey(String string) {
392        int virtualKeyCode = Integer.parseInt(string);
393        for (VirtualKey key1 : VirtualKey.values()) {
394            if (key1.virtualKeyCode == virtualKeyCode) {
395                return key1;
396            }
397        }
398
399        throw new IllegalArgumentException("there is no virtual key with id " + string);
400    }
401
402    /**
403   *
404   */
405    public static VirtualKey valueOf(int number) {
406        for (VirtualKey virtualKey : VirtualKey.values()) {
407            if (virtualKey.virtualKeyCode == number) {
408                return virtualKey;
409            }
410        }
411
412        throw new IllegalArgumentException("there is no virtual key with number " + number);
413    }
414
415}
Note: See TracBrowser for help on using the repository browser.