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;
}
}