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
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;
16 // Referenced classes of package mcsClient:
17 // KeyMap, Options, LockingKeyStateManager, McsTcpConnection,
20 public class McsKeyAdapter extends KeyAdapter {
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();
39 public McsKeyAdapter(McsTcpConnection mcstcpconnection, LockingKeyStateManager lockingkeystatemanager) {
44 rightCtrlDown = false;
45 keyboardHasAltGr = false;
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();
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())))
61 if (!lockingKeyStateManager.filterKeyPress(keyevent)) {
62 if ((leftAltDown || rightAltDown) && keyevent.getKeyCode() == 115) {
63 sendKeyEvent(11, 226, 2);
64 sendKeyEvent(11, 230, 3);
67 if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 2) {
72 if (keyevent.getKeyCode() == 17 && keyevent.getKeyLocation() == 3) {
77 if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 2) {
82 if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 3) {
87 if (keyevent.getKeyCode() == 18 && keyboardHasAltGr && keyevent.getKeyLocation() == 3)
88 sendKeyEvent(11, 224, 2);
89 sendKeyEvent(10, keyMap.getKey(keyevent), keyevent.getKeyLocation());
94 public void keyReleased(KeyEvent keyevent) {
95 logger.info(keyevent.toString());
96 if (mouseSyncKey.equals(keyevent.getKeyText(keyevent.getKeyCode())))
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)
105 if (keyevent.getKeyCode() == 18 && keyevent.getKeyLocation() == 3)
106 rightAltDown = false;
107 sendKeyEvent(11, keyMap.getKey(keyevent), keyevent.getKeyLocation());
112 public void sendKeyEvent(int i, int j, int k) {
113 int ai[] = new int[5];
114 ai[0] = ai.length * 4;
119 boolean flag = j == 226 || j == 230 || j == 224 || j == 228 || j == 225 || j == 229;
120 keyboardEvents.add(ai);
122 for (Iterator iterator = keyboardEvents.iterator(); iterator.hasNext(); logger.info("Sent keyMessage, type: " + ai1[2] + ", key code: " + Integer.toHexString(ai1[3] & 0xffff)))
124 ai1 = (int[])iterator.next();
125 mcsTcpConnection.sendMessage(ai1);
127 catch (IOException ioexception) {
128 System.err.println("Could not send send key event McsKeyAdapter.");
132 keyboardEvents.clear();
135 public void setKeyboardType(int i) {
136 keyboardHasAltGr = i != 0 && i != 5;
137 keyMap.setKeyboardType(i);
140 public int getButtonCode(int i) {
141 return keyMap.getButtonCode(i);
144 public int getButtonModifierCode(int i) {
145 return keyMap.getButtonModifierCode(i);
148 public void setMouseSyncKey(String s) {
152 public int getMouseSyncKeyState() {
153 if (mouseSyncKey.equals(Options.RIGHT_MOUSE))
156 return mouseSyncState;