add src files decompiled via jad
[rsa2client.git] / src / mcsClient / McsKeyAdapter.java
1 // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.kpdus.com/jad.html
3 // Decompiler options: packimports(3) fieldsfirst nonlb space 
4
5 package mcsClient;
6
7 import java.awt.event.KeyAdapter;
8 import java.awt.event.KeyEvent;
9 import java.io.IOException;
10 import java.io.PrintStream;
11 import java.util.ArrayList;
12 import java.util.Iterator;
13 import java.util.logging.Level;
14 import java.util.logging.Logger;
15
16 // Referenced classes of package mcsClient:
17 //            KeyMap, Options, LockingKeyStateManager, McsTcpConnection, 
18 //            McsToolBar
19
20 public class McsKeyAdapter extends KeyAdapter {
21
22     public static final int SYNC_KEY_RELEASED = 1;
23     public static final int SYNC_KEY_DEPRESSED = 2;
24     public static final int USE_RIGHT_MOUSE_BUTTON = 3;
25     private McsTcpConnection mcsTcpConnection;
26     private LockingKeyStateManager lockingKeyStateManager;
27     private McsToolBar toolBar;
28     private boolean leftAltDown;
29     private boolean rightAltDown;
30     private boolean leftCtrlDown;
31     private boolean rightCtrlDown;
32     private boolean keyboardHasAltGr;
33     private KeyMap keyMap;
34     private String mouseSyncKey;
35     private int mouseSyncState;
36     private ArrayList keyboardEvents;
37     private static Logger logger = Logger.getAnonymousLogger();
38
39     public McsKeyAdapter(McsTcpConnection mcstcpconnection, LockingKeyStateManager lockingkeystatemanager) {
40         toolBar = null;
41         leftAltDown = false;
42         rightAltDown = false;
43         leftCtrlDown = false;
44         rightCtrlDown = false;
45         keyboardHasAltGr = false;
46         mouseSyncState = 1;
47         keyboardEvents = new ArrayList();
48         mcsTcpConnection = mcstcpconnection;
49         lockingKeyStateManager = lockingkeystatemanager;
50         logger.setLevel(Level.WARNING);
51         String s = System.getProperty("mcs.debug");
52         if (s != null && s.equalsIgnoreCase("true"))
53             logger.setLevel(Level.ALL);
54         keyMap = new KeyMap();
55     }
56
57     public void keyPressed(KeyEvent keyevent) {
58         logger.info(keyevent.toString());
59         if (!mouseSyncKey.equals(Options.NO_KEY_SET) && mouseSyncKey.equals(keyevent.getKeyText(keyevent.getKeyCode())))
60             mouseSyncState = 2;
61         if (!lockingKeyStateManager.filterKeyPress(keyevent)) {
62             if ((leftAltDown || rightAltDown) && keyevent.getKeyCode() == 115) {
63                 sendKeyEvent(11, 226, 2);
64                 sendKeyEvent(11, 230, 3);
65                 return;
66             }
67             if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 2) {
68                 if (leftCtrlDown)
69                     return;
70                 leftCtrlDown = true;
71             }
72             if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 3) {
73                 if (rightCtrlDown)
74                     return;
75                 rightCtrlDown = true;
76             }
77             if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 2) {
78                 if (leftAltDown)
79                     return;
80                 leftAltDown = true;
81             }
82             if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 3) {
83                 if (rightAltDown)
84                     return;
85                 rightAltDown = true;
86             }
87             if (keyevent.getKeyCode() == 18 && keyboardHasAltGr && keyevent.getKeyLocation() == 3)
88                 sendKeyEvent(11, 224, 2);
89             sendKeyEvent(10, keyMap.getKey(keyevent), keyevent.getKeyLocation());
90             keyevent.consume();
91         }
92     }
93
94     public void keyReleased(KeyEvent keyevent) {
95         logger.info(keyevent.toString());
96         if (mouseSyncKey.equals(keyevent.getKeyText(keyevent.getKeyCode())))
97             mouseSyncState = 1;
98         if (!lockingKeyStateManager.filterKeyRelease(keyevent)) {
99             if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 2)
100                 leftCtrlDown = false;
101             if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 3)
102                 rightCtrlDown = false;
103             if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 2)
104                 leftAltDown = false;
105             if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 3)
106                 rightAltDown = false;
107             sendKeyEvent(11, keyMap.getKey(keyevent), keyevent.getKeyLocation());
108             keyevent.consume();
109         }
110     }
111
112     public void sendKeyEvent(int i, int j, int k) {
113         int ai[] = new int[5];
114         ai[0] = ai.length * 4;
115         ai[1] = 15;
116         ai[2] = i;
117         ai[3] = j;
118         ai[4] = k;
119         boolean flag = j == 226 || j == 230 || j == 224 || j == 228 || j == 225 || j == 229;
120         keyboardEvents.add(ai);
121         int ai1[];
122         for (Iterator iterator = keyboardEvents.iterator(); iterator.hasNext(); logger.info("Sent keyMessage, type: " + ai1[2] + ", key code: " + Integer.toHexString(ai1[3] & 0xffff)))
123             try {
124                 ai1 = (int[])iterator.next();
125                 mcsTcpConnection.sendMessage(ai1);
126             }
127             catch (IOException ioexception) {
128                 System.err.println("Could not send send key event McsKeyAdapter.");
129                 return;
130             }
131
132         keyboardEvents.clear();
133     }
134
135     public void setKeyboardType(int i) {
136         keyboardHasAltGr = i != 0 && i != 5;
137         keyMap.setKeyboardType(i);
138     }
139
140     public int getButtonCode(int i) {
141         return keyMap.getButtonCode(i);
142     }
143
144     public int getButtonModifierCode(int i) {
145         return keyMap.getButtonModifierCode(i);
146     }
147
148     public void setMouseSyncKey(String s) {
149         mouseSyncKey = s;
150     }
151
152     public int getMouseSyncKeyState() {
153         if (mouseSyncKey.equals(Options.RIGHT_MOUSE))
154             return 3;
155         else
156             return mouseSyncState;
157     }
158
159 }