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 GujaratiInputMethodDescriptor extends IndicIMDescriptor {
013: private static final Locale GUJARATI = new Locale("gu", "IN");
014:
015: public GujaratiInputMethodDescriptor() {
016: super (GUJARATI, "Gujarati");
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 */'\u0A8D', // '!'
059: /* 22 */'\u0AA0', // '"'
060: /* 23 */'\uFF00', // '#'
061: /* 24 */'\uFF01', // '$'
062: /* 25 */'\uFF02', // '%'
063: /* 26 */'\uFF04', // '&'
064: /* 27 */'\u0A9F', // '''
065: /* 28 */'\u0028', // '('
066: /* 29 */'\u0029', // ')'
067: /* 2A */'\uFF05', // '*'
068: /* 2B */'\u0A8B', // '+'
069: /* 2C */'\u002C', // ','
070: /* 2D */'\u002D', // '-'
071: /* 2E */'\u002E', // '.'
072: /* 2F */'\u0AAF', // '/'
073: /* 30 */'\u0AE6', // '0'
074: /* 31 */'\u0AE7', // '1'
075: /* 32 */'\u0AE8', // '2'
076: /* 33 */'\u0AE9', // '3'
077: /* 34 */'\u0AEA', // '4'
078: /* 35 */'\u0AEB', // '5'
079: /* 36 */'\u0AEC', // '6'
080: /* 37 */'\u0AED', // '7'
081: /* 38 */'\u0AEE', // '8'
082: /* 39 */'\u0AEF', // '9'
083: /* 3A */'\u0A9B', // ':'
084: /* 3B */'\u0A9A', // ';'
085: /* 3C */'\u0AB7', // '<'
086: /* 3D */'\u0AC3', // '='
087: /* 3E */'\u0964', // '>' (Devanagari danda)
088: /* 3F */'\uFFFF', // '?'
089: /* 40 */'\u0AC5', // '@'
090: /* 41 */'\u0A93', // 'A'
091: /* 42 */'\uFFFF', // 'B'
092: /* 43 */'\u0AA3', // 'C'
093: /* 44 */'\u0A85', // 'D'
094: /* 45 */'\u0A86', // 'E'
095: /* 46 */'\u0A87', // 'F'
096: /* 47 */'\u0A89', // 'G'
097: /* 48 */'\u0AAB', // 'H'
098: /* 49 */'\u0A98', // 'I'
099: /* 4A */'\uFFFF', // 'J'
100: /* 4B */'\u0A96', // 'K'
101: /* 4C */'\u0AA5', // 'L'
102: /* 4D */'\u0AB6', // 'M'
103: /* 4E */'\u0AB3', // 'N'
104: /* 4F */'\u0AA7', // 'O'
105: /* 50 */'\u0A9D', // 'P'
106: /* 51 */'\u0A94', // 'Q'
107: /* 52 */'\u0A88', // 'R'
108: /* 53 */'\u0A8F', // 'S'
109: /* 54 */'\u0A8A', // 'T'
110: /* 55 */'\u0A99', // 'U'
111: /* 56 */'\uFFFF', // 'V'
112: /* 57 */'\u0A90', // 'W'
113: /* 58 */'\u0A81', // 'X'
114: /* 59 */'\u0AAD', // 'Y'
115: /* 5A */'\uFFFF', // 'Z'
116: /* 5B */'\u0AA1', // '['
117: /* 5C */'\u0AC9', // '\'
118: /* 5D */'\u0ABC', // ']'
119: /* 5E */'\uFF03', // '^'
120: /* 5F */'\u0A83', // '_'
121: /* 60 */'\uFFFF', // '`'
122: /* 61 */'\u0ACB', // 'a'
123: /* 62 */'\u0AB5', // 'b'
124: /* 63 */'\u0AAE', // 'c'
125: /* 64 */'\u0ACD', // 'd'
126: /* 65 */'\u0ABE', // 'e'
127: /* 66 */'\u0ABF', // 'f'
128: /* 67 */'\u0AC1', // 'g'
129: /* 68 */'\u0AAA', // 'h'
130: /* 69 */'\u0A97', // 'i'
131: /* 6A */'\u0AB0', // 'j'
132: /* 6B */'\u0A95', // 'k'
133: /* 6C */'\u0AA4', // 'l'
134: /* 6D */'\u0AB8', // 'm'
135: /* 6E */'\u0AB2', // 'n'
136: /* 6F */'\u0AA6', // 'o'
137: /* 70 */'\u0A9C', // 'p'
138: /* 71 */'\u0ACC', // 'q'
139: /* 72 */'\u0AC0', // 'r'
140: /* 73 */'\u0AC7', // 's'
141: /* 74 */'\u0AC2', // 't'
142: /* 75 */'\u0AB9', // 'u'
143: /* 76 */'\u0AA8', // 'v'
144: /* 77 */'\u0AC8', // 'w'
145: /* 78 */'\u0A82', // 'x'
146: /* 79 */'\u0AAC', // 'y'
147: /* 7A */'\uFFFF', // 'z'
148: /* 7B */'\u0AA2', // '{'
149: /* 7C */'\u0A91', // '|'
150: /* 7D */'\u0A9E', // '}'
151: /* 7E */'\uFFFF', // '~'
152: /* 7F */'\u007F' // ''
153: };
154:
155: char[] RA_SUB = { '\u0ACD', '\u0AB0' };
156: char[] RA_SUP = { '\u0AB0', '\u0ACD' };
157: char[] CONJ_JA_NYA = { '\u0A9C', '\u0ACD', '\u0A9E' };
158: char[] CONJ_TA_RA = { '\u0AA4', '\u0ACD', '\u0AB0' };
159: char[] CONJ_KA_SSA = { '\u0A95', '\u0ACD', '\u0AB7' };
160: char[] CONJ_SHA_RA = { '\u0AB6', '\u0ACD', '\u0AB0' };
161:
162: substitutionTable = new char[][] { RA_SUB, RA_SUP,
163: CONJ_JA_NYA, CONJ_TA_RA, CONJ_KA_SSA, CONJ_SHA_RA };
164: }
165:
166: return new IndicInputMethodImpl(keyboardMap, null, null,
167: substitutionTable);
168: }
169: }
|