package org.geogebra.common.main; import org.geogebra.common.util.debug.Log; @SuppressWarnings("javadoc") public enum KeyCodes { A(JavaKeyCodes.VK_A, GWTKeycodes.KEY_A), B(JavaKeyCodes.VK_B, GWTKeycodes.KEY_B), C(JavaKeyCodes.VK_C, GWTKeycodes.KEY_C), D(JavaKeyCodes.VK_D, GWTKeycodes.KEY_D), E(JavaKeyCodes.VK_E, GWTKeycodes.KEY_E), F(JavaKeyCodes.VK_F, GWTKeycodes.KEY_F), G(JavaKeyCodes.VK_G, GWTKeycodes.KEY_G), H(JavaKeyCodes.VK_H, GWTKeycodes.KEY_H), I(JavaKeyCodes.VK_I, GWTKeycodes.KEY_I), J(JavaKeyCodes.VK_J, GWTKeycodes.KEY_J), K(JavaKeyCodes.VK_K, GWTKeycodes.KEY_K), L(JavaKeyCodes.VK_L, GWTKeycodes.KEY_L), M(JavaKeyCodes.VK_M, GWTKeycodes.KEY_M), N(JavaKeyCodes.VK_N, GWTKeycodes.KEY_N), O(JavaKeyCodes.VK_O, GWTKeycodes.KEY_O), P(JavaKeyCodes.VK_P, GWTKeycodes.KEY_P), Q(JavaKeyCodes.VK_Q, GWTKeycodes.KEY_Q), R(JavaKeyCodes.VK_R, GWTKeycodes.KEY_R), S(JavaKeyCodes.VK_S, GWTKeycodes.KEY_S), T(JavaKeyCodes.VK_T, GWTKeycodes.KEY_T), U(JavaKeyCodes.VK_U, GWTKeycodes.KEY_U), V(JavaKeyCodes.VK_V, GWTKeycodes.KEY_V), W(JavaKeyCodes.VK_W, GWTKeycodes.KEY_W), X(JavaKeyCodes.VK_X, GWTKeycodes.KEY_X), Y(JavaKeyCodes.VK_Y, GWTKeycodes.KEY_Y), Z(JavaKeyCodes.VK_Z, GWTKeycodes.KEY_Z), F1(JavaKeyCodes.VK_F1, GWTKeycodes.KEY_F1), F2(JavaKeyCodes.VK_F2, GWTKeycodes.KEY_F2), F3(JavaKeyCodes.VK_F3, GWTKeycodes.KEY_F3), F4(JavaKeyCodes.VK_F4, GWTKeycodes.KEY_F4), F5(JavaKeyCodes.VK_F5, GWTKeycodes.KEY_F5), F6(JavaKeyCodes.VK_F6, GWTKeycodes.KEY_F6), F7(JavaKeyCodes.VK_F7, GWTKeycodes.KEY_F7), F8(JavaKeyCodes.VK_F8, GWTKeycodes.KEY_F8), F9(JavaKeyCodes.VK_F9, GWTKeycodes.KEY_F9), F10(JavaKeyCodes.VK_F10, GWTKeycodes.KEY_F10), F11(JavaKeyCodes.VK_F11, GWTKeycodes.KEY_F11), F12(JavaKeyCodes.VK_F12, GWTKeycodes.KEY_F11), K0(JavaKeyCodes.VK_0, GWTKeycodes.KEY_ZERO), K1(JavaKeyCodes.VK_1, GWTKeycodes.KEY_ONE), K2(JavaKeyCodes.VK_2, GWTKeycodes.KEY_TWO), K3(JavaKeyCodes.VK_3, GWTKeycodes.KEY_THREE), K4(JavaKeyCodes.VK_4, GWTKeycodes.KEY_FOUR), K5(JavaKeyCodes.VK_5, GWTKeycodes.KEY_FIVE), K6(JavaKeyCodes.VK_6, GWTKeycodes.KEY_SIX), K7(JavaKeyCodes.VK_7, GWTKeycodes.KEY_SEVEN), K8(JavaKeyCodes.VK_8, GWTKeycodes.KEY_EIGHT), K9(JavaKeyCodes.VK_9, GWTKeycodes.KEY_NINE), NUMPAD0(JavaKeyCodes.VK_NUMPAD0, GWTKeycodes.KEY_NUM_ZERO), NUMPAD1(JavaKeyCodes.VK_NUMPAD1, GWTKeycodes.KEY_NUM_ONE), NUMPAD2(JavaKeyCodes.VK_NUMPAD2, GWTKeycodes.KEY_NUM_TWO), NUMPAD3(JavaKeyCodes.VK_NUMPAD3, GWTKeycodes.KEY_NUM_THREE), NUMPAD4(JavaKeyCodes.VK_NUMPAD4, GWTKeycodes.KEY_NUM_FOUR), NUMPAD5(JavaKeyCodes.VK_NUMPAD5, GWTKeycodes.KEY_NUM_FIVE), NUMPAD6(JavaKeyCodes.VK_NUMPAD6, GWTKeycodes.KEY_NUM_SIX), NUMPAD7(JavaKeyCodes.VK_NUMPAD7, GWTKeycodes.KEY_NUM_SEVEN), NUMPAD8(JavaKeyCodes.VK_NUMPAD8, GWTKeycodes.KEY_NUM_EIGHT), NUMPAD9(JavaKeyCodes.VK_NUMPAD9, GWTKeycodes.KEY_NUM_NINE), MINUS(JavaKeyCodes.VK_MINUS, GWTKeycodes.KEY_MINUS), SUBTRACT(JavaKeyCodes.VK_SUBTRACT, GWTKeycodes.KEY_NUM_MINUS), PLUS(JavaKeyCodes.VK_PLUS, GWTKeycodes.KEY_NUM_PLUS), ADD(JavaKeyCodes.VK_ADD, GWTKeycodes.KEY_NUM_PLUS), EQUALS(JavaKeyCodes.VK_EQUALS, GWTKeycodes.KEY_EQUALS), BACK_QUOTE(JavaKeyCodes.VK_BACK_QUOTE, GWTKeycodes.KEY_BACK_QUOTE), LEFT_SQUARE_BRACKET(JavaKeyCodes.VK_OPEN_BRACKET, GWTKeycodes.KEY_LEFT_SQUARE_BRACKET), RIGHT_SQUARE_BRACKET(JavaKeyCodes.VK_CLOSE_BRACKET, GWTKeycodes.KEY_RIGHT_SQUARE_BRACKET), ALT(JavaKeyCodes.VK_ALT, GWTKeycodes.KEY_ALT), BACKSPACE(JavaKeyCodes.VK_BACK_SPACE, GWTKeycodes.KEY_BACKSPACE), CTRL(JavaKeyCodes.VK_CONTROL, GWTKeycodes.KEY_CTRL), DELETE(JavaKeyCodes.VK_DELETE, GWTKeycodes.KEY_DELETE), DOWN(JavaKeyCodes.VK_DOWN, GWTKeycodes.KEY_DOWN), END(JavaKeyCodes.VK_END, GWTKeycodes.KEY_END), ENTER(JavaKeyCodes.VK_ENTER, GWTKeycodes.KEY_ENTER), ESCAPE(JavaKeyCodes.VK_ESCAPE, GWTKeycodes.KEY_ESCAPE), HOME(JavaKeyCodes.VK_HOME, GWTKeycodes.KEY_HOME), LEFT(JavaKeyCodes.VK_LEFT, GWTKeycodes.KEY_LEFT), PAGEDOWN(JavaKeyCodes.VK_PAGE_DOWN, GWTKeycodes.KEY_PAGEDOWN), PAGEUP(JavaKeyCodes.VK_PAGE_UP, GWTKeycodes.KEY_PAGEUP), RIGHT(JavaKeyCodes.VK_RIGHT, GWTKeycodes.KEY_RIGHT), SHIFT(JavaKeyCodes.VK_SHIFT, GWTKeycodes.KEY_SHIFT), INSERT(JavaKeyCodes.VK_INSERT, GWTKeycodes.KEY_INSERT), TAB(JavaKeyCodes.VK_TAB, GWTKeycodes.KEY_TAB), UP(JavaKeyCodes.VK_UP, GWTKeycodes.KEY_UP), SPACE(JavaKeyCodes.VK_SPACE, GWTKeycodes.KEY_SPACE), CONTEXT_MENU(JavaKeyCodes.VK_CONTEXT_MENU, -1), WINDOWS(JavaKeyCodes.VK_WINDOWS, GWTKeycodes.KEY_WIN_KEY_LEFT_META), BACKSLASH(JavaKeyCodes.VK_BACK_SLASH, GWTKeycodes.KEY_BACKSLASH), SLASH(JavaKeyCodes.VK_SLASH, GWTKeycodes.KEY_SLASH), NUMPADSLASH(JavaKeyCodes.VK_DIVIDE, GWTKeycodes.KEY_NUM_DIVISION), COMMA(JavaKeyCodes.VK_COMMA, GWTKeycodes.KEY_COMMA), SEMICOLON(JavaKeyCodes.VK_SEMICOLON, GWTKeycodes.KEY_SEMICOLON), APOSTROPHE(JavaKeyCodes.VK_QUOTE, GWTKeycodes.KEY_APOSTROPHE), HASH(JavaKeyCodes.VK_NUMBER_SIGN, GWTKeycodes.KEY_HASH), NUMPADASTERISK(JavaKeyCodes.VK_MULTIPLY, GWTKeycodes.KEY_NUM_MULTIPLY), NUMLOCK(JavaKeyCodes.VK_NUM_LOCK, GWTKeycodes.KEY_NUMLOCK), /** * Mac Meta/Apple, same keycode as Windows key in GWT */ META(JavaKeyCodes.VK_META, GWTKeycodes.KEY_WIN_KEY_LEFT_META), /** * middle key of NumPad (with NumLock off) */ CLEAR(JavaKeyCodes.VK_CLEAR, GWTKeycodes.KEY_CLEAR), PERIOD(JavaKeyCodes.VK_PERIOD, GWTKeycodes.KEY_PERIOD), DECIMALPOINT(JavaKeyCodes.VK_DECIMAL, GWTKeycodes.KEY_NUM_PERIOD), DECIMALCOMMA(JavaKeyCodes.VK_SEPARATOR, GWTKeycodes.KEY_NUM_COMMA), UNKNOWN(JavaKeyCodes.VK_UNDEFINED, GWTKeycodes.KEY_UNDEFINED); private int javaKey; private int GWTKey; KeyCodes(int javaKey, int GWTKey) { this.javaKey = javaKey; this.GWTKey = GWTKey; } public static KeyCodes translateGWTcode(int gwtKeyCode) { for (KeyCodes l : KeyCodes.values()) { if (l.GWTKey == gwtKeyCode) { return l; } // Log.debug(gwtKeyCode); } Log.warn("GWT keycode not found:" + gwtKeyCode); return UNKNOWN; } public static KeyCodes translateJavacode(int javaKeyCode) { for (KeyCodes l : KeyCodes.values()) { if (l.javaKey == javaKeyCode) { return l; } } Log.warn("Java keycode not found:" + javaKeyCode); return UNKNOWN; } }