001: /*
002: *******************************************************************************
003: * Copyright (C) 2000-2004, International Business Machines Corporation and *
004: * others. All Rights Reserved. *
005: *******************************************************************************
006: */
007:
008: package com.ibm.icu.dev.tool.ime.indic;
009:
010: import java.util.Locale;
011:
012: public class KannadaInputMethodDescriptor extends IndicIMDescriptor {
013: private static final Locale KANNADA = new Locale("kn", "IN");
014:
015: public KannadaInputMethodDescriptor() {
016: super (KANNADA, "Kannada");
017: }
018:
019: private static char[] keyboardMap;
020: private static char[][] substitutionTable;
021:
022: protected IndicInputMethodImpl getImpl() {
023: if (keyboardMap == null) {
024: keyboardMap = new char[] {
025: /* 00 */'\u0000',
026: /* 01 */'\u0001',
027: /* 02 */'\u0002',
028: /* 03 */'\u0003',
029: /* 04 */'\u0004',
030: /* 05 */'\u0005',
031: /* 06 */'\u0006',
032: /* 07 */'\u0007',
033: /* 08 */'\u0008',
034: /* 09 */'\u0009',
035: /* 0A */'\012',
036: /* 0B */'\u000B',
037: /* 0C */'\u000C',
038: /* 0D */'\015',
039: /* 0E */'\u000E',
040: /* 0F */'\u000F',
041: /* 10 */'\u0010',
042: /* 11 */'\u0011',
043: /* 12 */'\u0012',
044: /* 13 */'\u0013',
045: /* 14 */'\u0014',
046: /* 15 */'\u0015',
047: /* 16 */'\u0016',
048: /* 17 */'\u0017',
049: /* 18 */'\u0018',
050: /* 19 */'\u0019',
051: /* 1A */'\u001A',
052: /* 1B */'\u001B',
053: /* 1C */'\u001C',
054: /* 1D */'\u001D',
055: /* 1E */'\u001E',
056: /* 1F */'\u001F',
057: /* 20 */'\u0020',
058: /* 21 */'\uFFFF', // '!'
059: /* 22 */'\u0CA0', // '"'
060: /* 23 */'\uFF00', // '#'
061: /* 24 */'\uFFFF', // '$'
062: /* 25 */'\uFF01', // '%'
063: /* 26 */'\uFF03', // '&'
064: /* 27 */'\u0C9F', // '''
065: /* 28 */'\u0028', // '('
066: /* 29 */'\u0029', // ')'
067: /* 2A */'\uFF04', // '*'
068: /* 2B */'\u0C8B', // '+'
069: /* 2C */'\u002C', // ','
070: /* 2D */'\u002D', // '-'
071: /* 2E */'\u002E', // '.'
072: /* 2F */'\u0CAF', // '/'
073: /* 30 */'\u0CE6', // '0'
074: /* 31 */'\u0CE7', // '1'
075: /* 32 */'\u0CE8', // '2'
076: /* 33 */'\u0CE9', // '3'
077: /* 34 */'\u0CEA', // '4'
078: /* 35 */'\u0CEB', // '5'
079: /* 36 */'\u0CEC', // '6'
080: /* 37 */'\u0CED', // '7'
081: /* 38 */'\u0CEE', // '8'
082: /* 39 */'\u0CEF', // '9'
083: /* 3A */'\u0C9B', // ':'
084: /* 3B */'\u0C9A', // ';'
085: /* 3C */'\u0CB7', // '<'
086: /* 3D */'\u0CC3', // '='
087: /* 3E */'\uFFFF', // '>'
088: /* 3F */'\uFFFF', // '?'
089: /* 40 */'\uFFFF', // '@'
090: /* 41 */'\u0C93', // 'A'
091: /* 42 */'\uFFFF', // 'B'
092: /* 43 */'\u0CA3', // 'C'
093: /* 44 */'\u0C85', // 'D'
094: /* 45 */'\u0C86', // 'E'
095: /* 46 */'\u0C87', // 'F'
096: /* 47 */'\u0C89', // 'G'
097: /* 48 */'\u0CAB', // 'H'
098: /* 49 */'\u0C98', // 'I'
099: /* 4A */'\u0CB1', // 'J'
100: /* 4B */'\u0C96', // 'K'
101: /* 4C */'\u0CA5', // 'L'
102: /* 4D */'\u0CB6', // 'M'
103: /* 4E */'\u0CB3', // 'N'
104: /* 4F */'\u0CA7', // 'O'
105: /* 50 */'\u0C9D', // 'P'
106: /* 51 */'\u0C94', // 'Q'
107: /* 52 */'\u0C88', // 'R'
108: /* 53 */'\u0C8F', // 'S'
109: /* 54 */'\u0C8A', // 'T'
110: /* 55 */'\u0C99', // 'U'
111: /* 56 */'\uFFFF', // 'V'
112: /* 57 */'\u0C90', // 'W'
113: /* 58 */'\uFFFF', // 'X'
114: /* 59 */'\u0CAD', // 'Y'
115: /* 5A */'\u0C8E', // 'Z'
116: /* 5B */'\u0CA1', // '['
117: /* 5C */'\uFFFF', // '\'
118: /* 5D */'\uFFFF', // ']' (danda - not shown on INSCRIPT chart)
119: /* 5E */'\uFF02', // '^'
120: /* 5F */'\u0C83', // '_'
121: /* 60 */'\u0CCA', // '`'
122: /* 61 */'\u0CCB', // 'a'
123: /* 62 */'\u0CB5', // 'b'
124: /* 63 */'\u0CAE', // 'c'
125: /* 64 */'\u0CCD', // 'd'
126: /* 65 */'\u0CBE', // 'e'
127: /* 66 */'\u0CBF', // 'f'
128: /* 67 */'\u0CC1', // 'g'
129: /* 68 */'\u0CAA', // 'h'
130: /* 69 */'\u0C97', // 'i'
131: /* 6A */'\u0CB0', // 'j'
132: /* 6B */'\u0C95', // 'k'
133: /* 6C */'\u0CA4', // 'l'
134: /* 6D */'\u0CB8', // 'm'
135: /* 6E */'\u0CB2', // 'n'
136: /* 6F */'\u0CA6', // 'o'
137: /* 70 */'\u0C9C', // 'p'
138: /* 71 */'\u0CCC', // 'q'
139: /* 72 */'\u0CC0', // 'r'
140: /* 73 */'\u0CC7', // 's'
141: /* 74 */'\u0CC2', // 't'
142: /* 75 */'\u0CB9', // 'u'
143: /* 76 */'\u0CA8', // 'v'
144: /* 77 */'\u0CC8', // 'w'
145: /* 78 */'\u0C82', // 'x'
146: /* 79 */'\u0CAC', // 'y'
147: /* 7A */'\u0CC6', // 'z'
148: /* 7B */'\u0CA2', // '{'
149: /* 7C */'\uFFFF', // '|'
150: /* 7D */'\u0C9E', // '}'
151: /* 7E */'\u0C92', // '~'
152: /* 7F */'\u007F' // ''
153: };
154:
155: char[] RA_SUB = { '\u0CCD', '\u0CB0' };
156: char[] CONJ_JA_NYA = { '\u0C9C', '\u0CCD', '\u0C9E' };
157: char[] CONJ_TA_RA = { '\u0CA4', '\u0CCD', '\u0CB0' };
158: char[] CONJ_KA_SSA = { '\u0C95', '\u0CCD', '\u0CB7' };
159: char[] CONJ_SHA_RA = { '\u0CB6', '\u0CCD', '\u0CB0' };
160:
161: substitutionTable = new char[][] { RA_SUB, CONJ_JA_NYA,
162: CONJ_TA_RA, CONJ_KA_SSA, CONJ_SHA_RA };
163: }
164:
165: return new IndicInputMethodImpl(keyboardMap, null, null,
166: substitutionTable);
167: }
168: }
|