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

Last change on this file since 447 was 447, checked in by pharms, 12 years ago

Initial import

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