/*
* $Id$
*
* Copyright (C) 2003-2014 JNode.org
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; If not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jnode.driver.input.l10n;
import java.awt.event.KeyEvent;
import org.jnode.driver.input.DeadKeyException;
import org.jnode.driver.input.Key;
import org.jnode.driver.input.AbstractKeyboardInterpreter;
import org.jnode.driver.input.Keys;
import org.jnode.driver.input.UnsupportedKeyException;
/**
* @author Levente S\u00e1ntha
* @since 0.1.9
*/
public class KeyboardInterpreter_HU extends AbstractKeyboardInterpreter {
protected void initKeys(Keys keys) {
Key key;
keys.setKey(1, new Key(KeyEvent.VK_ESCAPE));
keys.setKey(2, new Key('1', KeyEvent.VK_1, '\'', KeyEvent.VK_QUOTE));
keys.setKey(3, new Key('2', KeyEvent.VK_2, '"', KeyEvent.VK_QUOTEDBL));
keys.setKey(4, new Key('3', KeyEvent.VK_3, '+', KeyEvent.VK_PLUS));
keys.setKey(5, new Key('4', KeyEvent.VK_4, '!', KeyEvent.VK_EXCLAMATION_MARK));
keys.setKey(6, new Key('5', KeyEvent.VK_5, '%', KeyEvent.VK_UNDEFINED));
keys.setKey(7, new Key('6', KeyEvent.VK_6, '/', KeyEvent.VK_SLASH));
keys.setKey(8, new Key('7', KeyEvent.VK_7, '=', KeyEvent.VK_EQUALS));
keys.setKey(9, new Key('8', KeyEvent.VK_8, '(', KeyEvent.VK_LEFT_PARENTHESIS));
keys.setKey(10, new Key('9', KeyEvent.VK_9, ')', KeyEvent.VK_RIGHT_PARENTHESIS));
keys.setKey(11, new Key('\u00f6', '\u00d6', KeyEvent.VK_UNDEFINED));
keys.setKey(12, new Key('\u00fc', '\u00dc', KeyEvent.VK_UNDEFINED));
keys.setKey(13, new Key('\u00f3', '\u00d3', KeyEvent.VK_UNDEFINED));
keys.setKey(14, new Key(KeyEvent.VK_BACK_SPACE));
keys.setKey(15, new Key('\t', KeyEvent.VK_TAB));
keys.setKey(16, new Key('q', 'Q', KeyEvent.VK_Q));
keys.setKey(17, new Key('w', 'W', KeyEvent.VK_W));
keys.setKey(18, new Key('e', 'E', KeyEvent.VK_E));
keys.setKey(19, new Key('r', 'R', KeyEvent.VK_R));
keys.setKey(20, new Key('t', 'T', KeyEvent.VK_T));
keys.setKey(21, new Key('z', 'Z', KeyEvent.VK_Z));
keys.setKey(22, new Key('u', 'U', KeyEvent.VK_U));
keys.setKey(23, new Key('i', 'I', KeyEvent.VK_I));
keys.setKey(24, new Key('o', 'O', KeyEvent.VK_O));
keys.setKey(25, new Key('p', 'P', KeyEvent.VK_P));
keys.setKey(26, new Key('?', '?', KeyEvent.VK_UNDEFINED));
keys.setKey(27, new Key('\u00fa', '\u00da', KeyEvent.VK_UNDEFINED));
keys.setKey(28, new Key('\n', KeyEvent.VK_ENTER));
keys.setKey(29, new Key(KeyEvent.VK_CONTROL));
keys.setKey(31, new Key('a', 'A', KeyEvent.VK_A));
keys.setKey(31, new Key('s', 'S', KeyEvent.VK_S));
keys.setKey(32, new Key('d', 'D', KeyEvent.VK_D));
keys.setKey(33, new Key('f', 'F', KeyEvent.VK_F));
keys.setKey(34, new Key('g', 'G', KeyEvent.VK_G));
keys.setKey(35, new Key('h', 'H', KeyEvent.VK_H));
keys.setKey(36, new Key('j', 'J', KeyEvent.VK_J));
keys.setKey(37, new Key('k', 'K', KeyEvent.VK_K));
keys.setKey(38, new Key('l', 'L', KeyEvent.VK_L));
keys.setKey(39, new Key('\u00e9', '\u00c9', KeyEvent.VK_UNDEFINED));
keys.setKey(40, new Key('\u00e1', '\u00c1', KeyEvent.VK_UNDEFINED));
keys.setKey(41, new Key('0', KeyEvent.VK_0));
keys.setKey(42, new Key(KeyEvent.VK_SHIFT));
keys.setKey(43, new Key('?', '?', KeyEvent.VK_UNDEFINED));
keys.setKey(44, new Key('y', 'Y', '>', KeyEvent.VK_Y));
keys.setKey(45, new Key('x', 'X', KeyEvent.VK_X));
keys.setKey(46, new Key('c', 'C', '&', KeyEvent.VK_C));
keys.setKey(47, new Key('v', 'V', '@', KeyEvent.VK_V));
keys.setKey(48, new Key('b', 'B', '{', KeyEvent.VK_B));
keys.setKey(49, new Key('n', 'N', '}', KeyEvent.VK_N));
keys.setKey(50, new Key('m', 'M', KeyEvent.VK_M));
keys.setKey(51, new Key(',', '?', ';', KeyEvent.VK_COMMA));
keys.setKey(52, new Key('.', ':', KeyEvent.VK_PERIOD));
keys.setKey(53, new Key('-', '_', '*', KeyEvent.VK_MINUS));
keys.setKey(54, new Key(KeyEvent.VK_SHIFT));
keys.setKey(56, new Key(KeyEvent.VK_ALT));
keys.setKey(57, new Key(' ', KeyEvent.VK_SPACE));
keys.setKey(58, new Key(KeyEvent.VK_CAPS_LOCK));
keys.setKey(69, new Key(KeyEvent.VK_NUM_LOCK));
keys.setKey(70, new Key(KeyEvent.VK_SCROLL_LOCK));
keys.setKey(86, new Key('\u00ed', '\u00cd', KeyEvent.VK_UNDEFINED));
keys.setKey(87, new Key(KeyEvent.VK_F11));
keys.setKey(88, new Key(KeyEvent.VK_F12));
keys.setKey(96, new Key(KeyEvent.VK_INSERT));
keys.setKey(97, new Key(KeyEvent.VK_HOME));
keys.setKey(98, new Key(KeyEvent.VK_PAGE_UP));
keys.setKey(99, new Key(KeyEvent.VK_DIVIDE));
keys.setKey(100, new Key(KeyEvent.VK_PRINTSCREEN));
keys.setKey(101, new Key(KeyEvent.VK_DELETE));
keys.setKey(102, new Key(KeyEvent.VK_END));
keys.setKey(103, new Key(KeyEvent.VK_PAGE_DOWN));
keys.setKey(104, new Key(KeyEvent.VK_UP));
keys.setKey(105, new Key(KeyEvent.VK_SEPARATOR));
keys.setKey(110, new Key(KeyEvent.VK_ESCAPE));
keys.setKey(111, new Key(KeyEvent.VK_FINAL));
keys.setKey(112, new Key(KeyEvent.VK_CONTROL));
keys.setKey(113, new Key(KeyEvent.VK_LEFT));
keys.setKey(114, new Key(KeyEvent.VK_DOWN));
keys.setKey(115, new Key(KeyEvent.VK_RIGHT));
keys.setKey(116, new Key(KeyEvent.VK_PAUSE));
}
protected void initKeys2(Keys keys) {
Key key;
key = new Key();
key.setAltGrChar("|".charAt(0));
key.setAltGrVirtuelKey(KeyEvent.VK_UNDEFINED);
key.setLowerVirtuelKey(KeyEvent.VK_DEAD_ACUTE);
key.setUpperVirtuelKey(KeyEvent.VK_DEAD_GRAVE);
keys.setKey(13, key);
keys.setKey(18, new Key('e', KeyEvent.VK_E, 'E', KeyEvent.VK_E, '\u20ac', KeyEvent.VK_EURO_SIGN));
key = keys.getKey(18);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00e9', '\u00c9'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'\u00e8', '\u00c8'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00eb', '\u00cb'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'\u00ea', '\u00ca'});
keys.setKey(22, new Key('u', 'U', KeyEvent.VK_U));
key = keys.getKey(22);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00fa', '\u00da'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'\u00f9', '\u00d9'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00fc', '\u00dc'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'\u00fb', '\u00db'});
keys.setKey(23, new Key('i', 'I', KeyEvent.VK_I));
key = keys.getKey(23);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00ed', '\u00cd'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'\u00ec', '\u00cc'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00ef', '\u00cf'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'\u00ee', '\u00ce'});
keys.setKey(24, new Key('o', 'O', KeyEvent.VK_O));
key = keys.getKey(24);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00f3', '\u00d3'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'\u00f2', '\u00d2'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00f6', '\u00d6'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'\u00f4', '\u00d4'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_TILDE, new char[]{'\u00f5', '\u00d5'});
keys.setKey(26, new Key('\u00e5', '\u00c5', KeyEvent.VK_UNDEFINED));
key = new Key();
key.setLowerVirtuelKey(KeyEvent.VK_DEAD_DIAERESIS);
key.setUpperVirtuelKey(KeyEvent.VK_DEAD_CIRCUMFLEX);
key.setAltGrVirtuelKey(KeyEvent.VK_DEAD_TILDE);
keys.setKey(27, key);
keys.setKey(28, new Key('\n', KeyEvent.VK_ENTER));
keys.setKey(30, new Key('a', 'A', KeyEvent.VK_A));
key = keys.getKey(30);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00e1', '\u00c1'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'\u00e0', '\u00c0'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00e4', '\u00c4'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'\u00e2', '\u00c2'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_TILDE, new char[]{'\u00e3', '\u00c3'});
keys.setKey(43, new Key("'".charAt(0), KeyEvent.VK_QUOTE, '*', KeyEvent.VK_MULTIPLY));
keys.setKey(51, new Key(',', KeyEvent.VK_COMMA, ';', KeyEvent.VK_SEMICOLON));
keys.setKey(52, new Key('.', KeyEvent.VK_PERIOD, ':', KeyEvent.VK_COLON));
keys.setKey(53, new Key('-', KeyEvent.VK_MINUS, '_', KeyEvent.VK_UNDERSCORE));
keys.setKey(55, new Key('*', KeyEvent.VK_MULTIPLY));
keys.setKey(57, new Key(' ', KeyEvent.VK_SPACE));
key = keys.getKey(57);
key.addDeadKeyChar(KeyEvent.VK_DEAD_ACUTE, new char[]{'\u00b4'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_GRAVE, new char[]{'`'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_DIAERESIS, new char[]{'\u00a8'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_CIRCUMFLEX, new char[]{'^'});
key.addDeadKeyChar(KeyEvent.VK_DEAD_TILDE, new char[]{'~'});
keys.setKey(71, new Key('7', KeyEvent.VK_NUMPAD7));
// have to check this out
// keys.setKey(72, new Key('8',KeyEvent.VK_NUMPAD8));
keys.setKey(72, new Key(KeyEvent.VK_UP));
keys.setKey(73, new Key('9', KeyEvent.VK_NUMPAD9));
keys.setKey(74, new Key('-', KeyEvent.VK_SUBTRACT));
// have to check this out
// keys.setKey(75, new Key('4',KeyEvent.VK_NUMPAD4));
keys.setKey(75, new Key(KeyEvent.VK_LEFT));
keys.setKey(76, new Key('5', KeyEvent.VK_NUMPAD5));
// have to check this out
// keys.setKey(77, new Key('6',KeyEvent.VK_NUMPAD6));
keys.setKey(77, new Key(KeyEvent.VK_RIGHT));
keys.setKey(78, new Key('+', KeyEvent.VK_ADD));
keys.setKey(79, new Key('1', KeyEvent.VK_NUMPAD1));
// have to check this out
// keys.setKey(80, new Key('2',KeyEvent.VK_NUMPAD2));
keys.setKey(80, new Key(KeyEvent.VK_DOWN));
keys.setKey(81, new Key('3', KeyEvent.VK_NUMPAD3));
keys.setKey(82, new Key('0', KeyEvent.VK_NUMPAD0));
keys.setKey(83, new Key('.', KeyEvent.VK_DECIMAL));
keys.setKey(86, new Key('<', KeyEvent.VK_LESS, '>', KeyEvent.VK_GREATER, '\\', KeyEvent.VK_BACK_SLASH));
}
/**
* Initialize the mapping between scancode and virtual key code.
*
* @param vkMap
*/
protected void initVkMap(int[] vkMap, char[] lcharMap, char[] ucharMap, char[] altGrCharMap) {
vkMap[0] = KeyEvent.VK_UNDEFINED;
vkMap[1] = KeyEvent.VK_ESCAPE;
vkMap[2] = KeyEvent.VK_1;
vkMap[3] = KeyEvent.VK_2;
vkMap[4] = KeyEvent.VK_3;
vkMap[5] = KeyEvent.VK_4;
vkMap[6] = KeyEvent.VK_5;
vkMap[7] = KeyEvent.VK_6;
vkMap[8] = KeyEvent.VK_7;
vkMap[9] = KeyEvent.VK_8;
vkMap[10] = KeyEvent.VK_9;
vkMap[11] = KeyEvent.VK_0;
vkMap[12] = KeyEvent.VK_SUBTRACT;
vkMap[13] = KeyEvent.VK_EQUALS;
vkMap[14] = KeyEvent.VK_BACK_SPACE;
vkMap[15] = KeyEvent.VK_TAB;
vkMap[16] = KeyEvent.VK_A;
vkMap[17] = KeyEvent.VK_Z;
vkMap[18] = KeyEvent.VK_E;
vkMap[19] = KeyEvent.VK_R;
vkMap[20] = KeyEvent.VK_T;
vkMap[21] = KeyEvent.VK_Y;
vkMap[22] = KeyEvent.VK_U;
vkMap[23] = KeyEvent.VK_I;
vkMap[24] = KeyEvent.VK_O;
vkMap[25] = KeyEvent.VK_P;
vkMap[26] = KeyEvent.VK_DEAD_CIRCUMFLEX;
vkMap[27] = KeyEvent.VK_DOLLAR;
vkMap[28] = KeyEvent.VK_ENTER;
vkMap[29] = KeyEvent.VK_CONTROL;
vkMap[30] = KeyEvent.VK_A;
vkMap[31] = KeyEvent.VK_S;
vkMap[32] = KeyEvent.VK_D;
vkMap[33] = KeyEvent.VK_F;
vkMap[34] = KeyEvent.VK_G;
vkMap[35] = KeyEvent.VK_H;
vkMap[36] = KeyEvent.VK_J;
vkMap[37] = KeyEvent.VK_K;
vkMap[38] = KeyEvent.VK_L;
vkMap[39] = KeyEvent.VK_SEMICOLON;
vkMap[40] = KeyEvent.VK_QUOTE;
vkMap[41] = KeyEvent.VK_BACK_QUOTE;
vkMap[42] = KeyEvent.VK_SHIFT;
vkMap[43] = KeyEvent.VK_BACK_SLASH;
vkMap[44] = KeyEvent.VK_Z;
vkMap[45] = KeyEvent.VK_X;
vkMap[46] = KeyEvent.VK_C;
vkMap[47] = KeyEvent.VK_V;
vkMap[48] = KeyEvent.VK_B;
vkMap[49] = KeyEvent.VK_N;
vkMap[50] = KeyEvent.VK_M;
vkMap[51] = KeyEvent.VK_COMMA;
vkMap[52] = KeyEvent.VK_PERIOD;
vkMap[53] = KeyEvent.VK_SLASH;
vkMap[54] = KeyEvent.VK_SHIFT;
vkMap[55] = KeyEvent.VK_MULTIPLY;
vkMap[56] = KeyEvent.VK_ALT;
vkMap[57] = KeyEvent.VK_SPACE;
vkMap[58] = KeyEvent.VK_CAPS_LOCK;
vkMap[59] = KeyEvent.VK_F1;
vkMap[60] = KeyEvent.VK_F2;
vkMap[61] = KeyEvent.VK_F3;
vkMap[62] = KeyEvent.VK_F4;
vkMap[63] = KeyEvent.VK_F5;
vkMap[64] = KeyEvent.VK_F6;
vkMap[65] = KeyEvent.VK_F7;
vkMap[66] = KeyEvent.VK_F8;
vkMap[67] = KeyEvent.VK_F9;
vkMap[68] = KeyEvent.VK_F10;
vkMap[69] = KeyEvent.VK_NUM_LOCK;
vkMap[70] = KeyEvent.VK_SCROLL_LOCK;
vkMap[71] = KeyEvent.VK_NUMPAD7;
vkMap[72] = KeyEvent.VK_NUMPAD8;
vkMap[73] = KeyEvent.VK_NUMPAD9;
vkMap[74] = KeyEvent.VK_SUBTRACT;
vkMap[75] = KeyEvent.VK_NUMPAD4;
vkMap[76] = KeyEvent.VK_NUMPAD5;
vkMap[77] = KeyEvent.VK_NUMPAD6;
vkMap[78] = KeyEvent.VK_ADD;
vkMap[79] = KeyEvent.VK_NUMPAD1;
vkMap[80] = KeyEvent.VK_NUMPAD2;
vkMap[81] = KeyEvent.VK_NUMPAD3;
vkMap[82] = KeyEvent.VK_NUMPAD0;
vkMap[83] = KeyEvent.VK_DECIMAL;
vkMap[86] = KeyEvent.VK_LESS;
vkMap[87] = KeyEvent.VK_F11;
vkMap[88] = KeyEvent.VK_F12;
vkMap[96] = KeyEvent.VK_INSERT;
vkMap[97] = KeyEvent.VK_HOME;
vkMap[98] = KeyEvent.VK_PAGE_UP;
vkMap[99] = KeyEvent.VK_DIVIDE;
vkMap[100] = KeyEvent.VK_PRINTSCREEN;
vkMap[101] = KeyEvent.VK_DELETE;
vkMap[102] = KeyEvent.VK_END;
vkMap[103] = KeyEvent.VK_PAGE_DOWN;
vkMap[104] = KeyEvent.VK_UP;
vkMap[105] = KeyEvent.VK_SEPARATOR;
vkMap[111] = KeyEvent.VK_FINAL;
vkMap[112] = KeyEvent.VK_CONTROL;
vkMap[113] = KeyEvent.VK_LEFT;
vkMap[114] = KeyEvent.VK_DOWN;
vkMap[115] = KeyEvent.VK_RIGHT;
vkMap[116] = KeyEvent.VK_PAUSE;
lcharMap[1] = '\u00ed';
lcharMap[2] = '1';
lcharMap[3] = '2';
lcharMap[4] = '3';
lcharMap[5] = '4';
lcharMap[6] = '5';
lcharMap[7] = '6';
lcharMap[8] = '7';
lcharMap[9] = '8';
lcharMap[10] = '9';
lcharMap[11] = '\u00f6';
lcharMap[12] = '\u00fc';
lcharMap[13] = '\u00f3';
lcharMap[14] = '\b';
lcharMap[15] = '\t';
lcharMap[16] = 'q';
lcharMap[17] = 'w';
lcharMap[18] = 'e';
lcharMap[19] = 'r';
lcharMap[20] = 't';
lcharMap[21] = 'y';
lcharMap[22] = 'u';
lcharMap[23] = 'i';
lcharMap[24] = 'o';
lcharMap[25] = 'p';
lcharMap[26] = '\u00f5';
lcharMap[27] = '\u00fa';
lcharMap[28] = '\n';
lcharMap[30] = 'a';
lcharMap[31] = 's';
lcharMap[32] = 'd';
lcharMap[33] = 'f';
lcharMap[34] = 'g';
lcharMap[35] = 'h';
lcharMap[36] = 'j';
lcharMap[37] = 'k';
lcharMap[38] = 'l';
lcharMap[39] = '\u00e9';
lcharMap[40] = '\u00e1';
lcharMap[41] = '`';
lcharMap[43] = '?';
lcharMap[44] = 'z';
lcharMap[45] = 'x';
lcharMap[46] = 'c';
lcharMap[47] = 'v';
lcharMap[48] = 'b';
lcharMap[49] = 'n';
lcharMap[50] = 'm';
lcharMap[51] = ',';
lcharMap[52] = '.';
lcharMap[53] = '-';
lcharMap[57] = ' ';
lcharMap[71] = '7';
lcharMap[72] = '8';
lcharMap[73] = '9';
lcharMap[74] = '-';
lcharMap[75] = '4';
lcharMap[76] = '5';
lcharMap[77] = '6';
lcharMap[78] = '+';
lcharMap[79] = '1';
lcharMap[80] = '2';
lcharMap[81] = '3';
lcharMap[82] = '0';
lcharMap[83] = '.';
lcharMap[86] = '<';
ucharMap[1] = '\u00cd';
ucharMap[2] = '\'';
ucharMap[3] = '\"';
ucharMap[4] = '+';
ucharMap[5] = '!';
ucharMap[6] = '%';
ucharMap[7] = '/';
ucharMap[8] = '=';
ucharMap[9] = '(';
ucharMap[10] = ')';
ucharMap[11] = '\u00d6';
ucharMap[12] = '\u00dc';
ucharMap[13] = '\u00d3';
ucharMap[14] = '\b';
ucharMap[15] = '\t';
ucharMap[16] = 'Q';
ucharMap[17] = 'W';
ucharMap[18] = 'E';
ucharMap[19] = 'R';
ucharMap[20] = 'T';
ucharMap[21] = 'Y';
ucharMap[22] = 'U';
ucharMap[23] = 'I';
ucharMap[24] = 'O';
ucharMap[25] = 'P';
ucharMap[26] = '\u00d5';
ucharMap[27] = '\u00da';
ucharMap[28] = '\n';
ucharMap[30] = 'A';
ucharMap[31] = 'S';
ucharMap[32] = 'D';
ucharMap[33] = 'F';
ucharMap[34] = 'G';
ucharMap[35] = 'H';
ucharMap[36] = 'J';
ucharMap[37] = 'K';
ucharMap[38] = 'L';
ucharMap[39] = '\u00c9';
ucharMap[40] = '\u00c1';
ucharMap[41] = '~';
ucharMap[43] = '\u00db';
ucharMap[44] = 'Z';
ucharMap[45] = 'X';
ucharMap[46] = 'C';
ucharMap[47] = 'V';
ucharMap[48] = 'B';
ucharMap[49] = 'N';
ucharMap[50] = 'M';
ucharMap[51] = '?';
ucharMap[52] = ':';
ucharMap[53] = '_';
// ucharMap[55] = ' ';
ucharMap[57] = ' ';
ucharMap[71] = '7';
ucharMap[72] = '8';
ucharMap[73] = '9';
ucharMap[74] = '-';
ucharMap[75] = '4';
ucharMap[76] = '5';
ucharMap[77] = '6';
ucharMap[78] = '+';
ucharMap[79] = '1';
ucharMap[80] = '2';
ucharMap[81] = '3';
ucharMap[82] = '0';
ucharMap[83] = '.';
ucharMap[86] = '>';
altGrCharMap[41] = '\u00ac';
int i = 2;
altGrCharMap[i++] = '\u00b9';
altGrCharMap[i++] = '~';
altGrCharMap[i++] = '#';
altGrCharMap[i++] = '{';
altGrCharMap[i++] = '[';
altGrCharMap[i++] = '|';
altGrCharMap[i++] = '`';
altGrCharMap[i++] = '\\';
altGrCharMap[i++] = '^';
altGrCharMap[i++] = '@';
altGrCharMap[i++] = ']';
altGrCharMap[i++] = '}';
// altGrCharMap[i++] = ' ';// backspace do nothing
// altGrCharMap[i++] = ' ';// tab do nothing
i += 2;
altGrCharMap[i++] = '\u00e6';
altGrCharMap[i++] = '\u00ab';
altGrCharMap[i++] = '\u00a4';
altGrCharMap[i++] = '\u00b6';
altGrCharMap[i++] = '?';
// altGrCharMap[i++] = ' '; // y -> do nothing
// altGrCharMap[i++] = ' '; // u -> do nothing
// altGrCharMap[i++] = ' '; // i -> do nothing
i += 3;
altGrCharMap[i++] = '\u00f8';
altGrCharMap[i++] = '\u00fe';
// altGrCharMap[i++] = ' '; // dead ^ -> do nothing
i++;
altGrCharMap[i++] = '?';
// altGrCharMap[i++] = ' '; // enter -> do nothing
// altGrCharMap[i++] = ' '; // Ctrl -> do nothing
i += 2;
altGrCharMap[i++] = '@';
altGrCharMap[i++] = '\u00df';
altGrCharMap[i++] = '\u00f0';
altGrCharMap[i++] = '?';
altGrCharMap[i++] = '?';
altGrCharMap[i++] = '?';
altGrCharMap[i++] = 'j';
// altGrCharMap[i++] = ' '; // k -> do nothing
i++;
altGrCharMap[i++] = '?';
altGrCharMap[i++] = '\u00b5';
// altGrCharMap[i++] = ' '; // % -> do nothing
// altGrCharMap[i++] = ' '; // * -> do nothing
i += 2;
altGrCharMap[i++] = '?';
altGrCharMap[i++] = '\u00bb';
altGrCharMap[i++] = '\u00a2';
// altGrCharMap[i++] = ' '; // v -> do nothing
// altGrCharMap[i++] = ' '; // b -> do nothing
i += 2;
altGrCharMap[i++] = 'n';
// altGrCharMap[i++] = ' '; // , -> do nothing
// altGrCharMap[i++] = ' '; // ; -> do nothing
i += 2;
altGrCharMap[i++] = '\u00b7';
altGrCharMap[i++] = '?';
altGrCharMap[i++] = '?';
altGrCharMap[86] = '|';
}
protected void initVkMap() {
}
protected char interpretExtendedScanCode(int scancode, int vk, boolean released)
throws UnsupportedKeyException, DeadKeyException {
return 0;
}
}