1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski package complex.accelerators;
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import java.util.HashMap;
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski class KeyIdentifierInfo
29*b1cdbd2cSJim Jagielski {
30*b1cdbd2cSJim Jagielski     protected String sIdentifier;
31*b1cdbd2cSJim Jagielski     protected Short nCode;
32*b1cdbd2cSJim Jagielski 
KeyIdentifierInfo(String sID, Short nC)33*b1cdbd2cSJim Jagielski     KeyIdentifierInfo(String sID, Short nC)
34*b1cdbd2cSJim Jagielski     {
35*b1cdbd2cSJim Jagielski         sIdentifier = sID;
36*b1cdbd2cSJim Jagielski         nCode = nC;
37*b1cdbd2cSJim Jagielski     }
38*b1cdbd2cSJim Jagielski }
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski class IdentifierHashMap extends HashMap
41*b1cdbd2cSJim Jagielski {
put(String sIdentifier, Short nCode)42*b1cdbd2cSJim Jagielski     public void put(String sIdentifier, Short nCode)
43*b1cdbd2cSJim Jagielski     {
44*b1cdbd2cSJim Jagielski         super.put(sIdentifier, nCode);
45*b1cdbd2cSJim Jagielski     }
get(String sIdentifier)46*b1cdbd2cSJim Jagielski     public Short get(String sIdentifier)
47*b1cdbd2cSJim Jagielski     {
48*b1cdbd2cSJim Jagielski         return (Short)super.get(sIdentifier);
49*b1cdbd2cSJim Jagielski     }
50*b1cdbd2cSJim Jagielski }
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski class CodeHashMap extends HashMap
53*b1cdbd2cSJim Jagielski {
put(Short nCode, String sIdentifier)54*b1cdbd2cSJim Jagielski     public void put(Short nCode, String sIdentifier)
55*b1cdbd2cSJim Jagielski     {
56*b1cdbd2cSJim Jagielski         super.put(nCode, sIdentifier);
57*b1cdbd2cSJim Jagielski     }
get(Short nCode)58*b1cdbd2cSJim Jagielski     public String get(Short nCode)
59*b1cdbd2cSJim Jagielski     {
60*b1cdbd2cSJim Jagielski         return (String)super.get(nCode);
61*b1cdbd2cSJim Jagielski     }
62*b1cdbd2cSJim Jagielski }
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski public class KeyMapping
65*b1cdbd2cSJim Jagielski {
66*b1cdbd2cSJim Jagielski     private IdentifierHashMap aIdentifierHashMap;
67*b1cdbd2cSJim Jagielski     private CodeHashMap aCodeHashMap;
68*b1cdbd2cSJim Jagielski 
KeyMapping()69*b1cdbd2cSJim Jagielski     public KeyMapping()
70*b1cdbd2cSJim Jagielski     {
71*b1cdbd2cSJim Jagielski         KeyIdentifierInfo[] aInfoMap = {
72*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("0", new Short(com.sun.star.awt.Key.NUM0)),
73*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("1", new Short(com.sun.star.awt.Key.NUM1)),
74*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("2", new Short(com.sun.star.awt.Key.NUM2)),
75*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("3", new Short(com.sun.star.awt.Key.NUM3)),
76*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("4", new Short(com.sun.star.awt.Key.NUM4)),
77*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("5", new Short(com.sun.star.awt.Key.NUM5)),
78*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("6", new Short(com.sun.star.awt.Key.NUM6)),
79*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("7", new Short(com.sun.star.awt.Key.NUM7)),
80*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("8", new Short(com.sun.star.awt.Key.NUM8)),
81*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("9", new Short(com.sun.star.awt.Key.NUM9)),
82*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("A", new Short(com.sun.star.awt.Key.A)),
83*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("B", new Short(com.sun.star.awt.Key.B)),
84*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("C", new Short(com.sun.star.awt.Key.C)),
85*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("D", new Short(com.sun.star.awt.Key.D)),
86*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("E", new Short(com.sun.star.awt.Key.E)),
87*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F", new Short(com.sun.star.awt.Key.F)),
88*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("G", new Short(com.sun.star.awt.Key.G)),
89*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("H", new Short(com.sun.star.awt.Key.H)),
90*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("I", new Short(com.sun.star.awt.Key.I)),
91*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("J", new Short(com.sun.star.awt.Key.J)),
92*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("K", new Short(com.sun.star.awt.Key.K)),
93*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("L", new Short(com.sun.star.awt.Key.L)),
94*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("M", new Short(com.sun.star.awt.Key.M)),
95*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("N", new Short(com.sun.star.awt.Key.N)),
96*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("O", new Short(com.sun.star.awt.Key.O)),
97*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("P", new Short(com.sun.star.awt.Key.P)),
98*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("Q", new Short(com.sun.star.awt.Key.Q)),
99*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("R", new Short(com.sun.star.awt.Key.R)),
100*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("S", new Short(com.sun.star.awt.Key.S)),
101*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("T", new Short(com.sun.star.awt.Key.T)),
102*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("U", new Short(com.sun.star.awt.Key.U)),
103*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("V", new Short(com.sun.star.awt.Key.V)),
104*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("W", new Short(com.sun.star.awt.Key.W)),
105*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("X", new Short(com.sun.star.awt.Key.X)),
106*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("Y", new Short(com.sun.star.awt.Key.Y)),
107*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("Z", new Short(com.sun.star.awt.Key.Z)),
108*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F1", new Short(com.sun.star.awt.Key.F1)),
109*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F2", new Short(com.sun.star.awt.Key.F2)),
110*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F3", new Short(com.sun.star.awt.Key.F3)),
111*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F4", new Short(com.sun.star.awt.Key.F4)),
112*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F5", new Short(com.sun.star.awt.Key.F5)),
113*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F6", new Short(com.sun.star.awt.Key.F6)),
114*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F7", new Short(com.sun.star.awt.Key.F7)),
115*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F8", new Short(com.sun.star.awt.Key.F8)),
116*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F9", new Short(com.sun.star.awt.Key.F9)),
117*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F10", new Short(com.sun.star.awt.Key.F10)),
118*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F11", new Short(com.sun.star.awt.Key.F11)),
119*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("F12", new Short(com.sun.star.awt.Key.F12)),
120*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("DOWN", new Short(com.sun.star.awt.Key.DOWN)),
121*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("UP", new Short(com.sun.star.awt.Key.UP)),
122*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("LEFT", new Short(com.sun.star.awt.Key.LEFT)),
123*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("RIGHT", new Short(com.sun.star.awt.Key.RIGHT)),
124*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("HOME", new Short(com.sun.star.awt.Key.HOME)),
125*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("END", new Short(com.sun.star.awt.Key.END)),
126*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("PAGEUP", new Short(com.sun.star.awt.Key.PAGEUP)),
127*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("PAGEDOWN", new Short(com.sun.star.awt.Key.PAGEDOWN)),
128*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("RETURN", new Short(com.sun.star.awt.Key.RETURN)),
129*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("ESCAPE", new Short(com.sun.star.awt.Key.ESCAPE)),
130*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("TAB", new Short(com.sun.star.awt.Key.TAB)),
131*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("BACKSPACE", new Short(com.sun.star.awt.Key.BACKSPACE)),
132*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("SPACE", new Short(com.sun.star.awt.Key.SPACE)),
133*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("INSERT", new Short(com.sun.star.awt.Key.INSERT)),
134*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("DELETE", new Short(com.sun.star.awt.Key.DELETE)),
135*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("ADD", new Short(com.sun.star.awt.Key.ADD)),
136*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("SUBTRACT", new Short(com.sun.star.awt.Key.SUBTRACT)),
137*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("MULTIPLY", new Short(com.sun.star.awt.Key.MULTIPLY)),
138*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("DIVIDE", new Short(com.sun.star.awt.Key.DIVIDE)),
139*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("CUT", new Short(com.sun.star.awt.Key.CUT)),
140*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("COPY", new Short(com.sun.star.awt.Key.COPY)),
141*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("PASTE", new Short(com.sun.star.awt.Key.PASTE)),
142*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("UNDO", new Short(com.sun.star.awt.Key.UNDO)),
143*b1cdbd2cSJim Jagielski             new KeyIdentifierInfo("REPEAT", new Short(com.sun.star.awt.Key.REPEAT))
144*b1cdbd2cSJim Jagielski         };
145*b1cdbd2cSJim Jagielski 
146*b1cdbd2cSJim Jagielski         aIdentifierHashMap = new IdentifierHashMap();
147*b1cdbd2cSJim Jagielski         aCodeHashMap = new CodeHashMap();
148*b1cdbd2cSJim Jagielski         for (int i = 0; i<aInfoMap.length; i++)
149*b1cdbd2cSJim Jagielski         {
150*b1cdbd2cSJim Jagielski             aIdentifierHashMap.put(aInfoMap[i].sIdentifier, aInfoMap[i].nCode);
151*b1cdbd2cSJim Jagielski             aCodeHashMap.put(aInfoMap[i].nCode, aInfoMap[i].sIdentifier);
152*b1cdbd2cSJim Jagielski         }
153*b1cdbd2cSJim Jagielski     }
154*b1cdbd2cSJim Jagielski 
mapIdentifier2Code(String sIdentifier)155*b1cdbd2cSJim Jagielski     public short mapIdentifier2Code(String sIdentifier)
156*b1cdbd2cSJim Jagielski     {
157*b1cdbd2cSJim Jagielski         return (aIdentifierHashMap.get(sIdentifier)).shortValue();
158*b1cdbd2cSJim Jagielski     }
159*b1cdbd2cSJim Jagielski 
mapCode2Identifier(short nCode)160*b1cdbd2cSJim Jagielski     public String mapCode2Identifier(short nCode)
161*b1cdbd2cSJim Jagielski     {
162*b1cdbd2cSJim Jagielski         return (String)aCodeHashMap.get(new Short(nCode));
163*b1cdbd2cSJim Jagielski     }
164*b1cdbd2cSJim Jagielski }
165