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
8 import java.awt.event.*;
9 import java.io.PrintStream;
12 import javax.swing.event.ChangeEvent;
13 import javax.swing.event.ChangeListener;
15 // Referenced classes of package mcsClient:
16 // KeyButton, Help, Options, KeyData,
17 // KeyButtonListener, LiveVideoPanel, DatagramReader, McsKeyAdapter,
20 public final class McsToolBar extends JToolBar
21 implements KeyButtonListener {
23 public static final int BITRATES[] = {
24 0, 10240, 20480, 30720, 40960, 51200, 0x19000, 0x25800, 0x32000, 0x3e800,
25 0x4b000, 0x96000, 0xe1000, 0x12c000, 0x177000, 0x2ee000, 0x4e2000
27 private McsKeyAdapter keyAdapter;
28 private LiveVideoPanel videoPanel;
29 private DatagramReader datagramReader;
30 private JSlider slider;
31 private int lastBitrate;
32 private Help sliderHelp;
33 private JLabel configLink;
34 private Options options;
35 private KeyButton japan1Button;
36 private KeyButton japan1aButton;
37 private KeyButton japan131Button;
38 private KeyButton japan132Button;
39 private KeyButton japan132aButton;
40 private KeyButton japan132sButton;
41 private KeyButton japan133Button;
42 private KeyButton japan133aButton;
43 private KeyButton japan133sButton;
44 private KeyButton japan30Button;
45 private KeyButton japan30aButton;
46 private KeyButton tildeButton;
47 private KeyButton circumflexButton;
48 private KeyButton diaeresisButton;
49 private KeyButton graveButton;
50 private KeyButton acuteButton;
51 private KeyButton rightSquareBracketButton;
52 private KeyButton leftSquareBracketButton;
53 private KeyButton rightCurlyBracketButton;
54 private KeyButton leftCurlyBracketButton;
55 private KeyButton backslashButton;
56 private KeyButton atButton;
57 private static final String SLIDER_HELP_DATA[] = {
58 "The Video Speed selector is used to limit the bandwidth that is devoted to the\n", "Remote Console display on your computer. Reducing the Video Speed can\n", "improve the rate at which the Remote Console display is refreshed by limiting\n", "the video data that must be displayed. You can reduce, or even stop, video\n", "data to allow more bandwidth for Remote Disk, if desired. Move the slider\n", "left or right until you find the bandwidth that achieves the best results."
61 public McsToolBar(McsKeyAdapter mcskeyadapter, LiveVideoPanel livevideopanel) {
62 slider = new JSlider(0, 16);
64 configLink = new JLabel("<html><u>Preferences</u></html>");
65 keyAdapter = mcskeyadapter;
66 videoPanel = livevideopanel;
67 japan1Button = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan1.gif")));
68 japan1Button.setToolTipText("Send Hankaku/Zenkaku to the server");
69 japan1Button.addKeyButtonListener(this);
70 japan1aButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan1a.gif")));
71 japan1aButton.setToolTipText("Send Kanji to the server");
72 japan1aButton.addKeyButtonListener(this);
73 japan131Button = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan131.gif")));
74 japan131Button.setToolTipText("Send Muhehkan to the server");
75 japan131Button.addKeyButtonListener(this);
76 japan132Button = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan132.gif")));
77 japan132Button.setToolTipText("Send Henkan to the server");
78 japan132Button.addKeyButtonListener(this);
79 japan132aButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan132a.gif")));
80 japan132aButton.setToolTipText("Send Zenkouho to the server");
81 japan132aButton.addKeyButtonListener(this);
82 japan132sButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan132s.gif")));
83 japan132sButton.setToolTipText("Send Zenkouho to the server");
84 japan132sButton.addKeyButtonListener(this);
85 japan133Button = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan133.gif")));
86 japan133Button.setToolTipText("Send Hiragana to the server");
87 japan133Button.addKeyButtonListener(this);
88 japan133aButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan133a.gif")));
89 japan133aButton.setToolTipText("Send Romanji to the server");
90 japan133aButton.addKeyButtonListener(this);
91 japan133sButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan133s.gif")));
92 japan133sButton.setToolTipText("Send Katakana to the server");
93 japan133sButton.addKeyButtonListener(this);
94 japan30Button = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan30.gif")));
95 japan30Button.setToolTipText("Send Eisuu to the server");
96 japan30Button.addKeyButtonListener(this);
97 japan30aButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("japan30a.gif")));
98 japan30aButton.setToolTipText("Send Kanji Bangou to the server");
99 japan30aButton.addKeyButtonListener(this);
100 tildeButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("tilde.gif")));
101 tildeButton.setToolTipText("Send tilde modifier to the server");
102 tildeButton.addKeyButtonListener(this);
103 circumflexButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("circumflex.gif")));
104 circumflexButton.setToolTipText("Send circumflex modifier to the server");
105 circumflexButton.addKeyButtonListener(this);
106 diaeresisButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("diaeresis.gif")));
107 diaeresisButton.setToolTipText("Send diaeresis modifier to the server");
108 diaeresisButton.addKeyButtonListener(this);
109 acuteButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("acute.gif")));
110 acuteButton.setToolTipText("Send acute modifier to the server");
111 acuteButton.addKeyButtonListener(this);
112 graveButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("grave.gif")));
113 graveButton.setToolTipText("Send grave modifier to the server");
114 graveButton.addKeyButtonListener(this);
115 leftSquareBracketButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("leftsquarebracket.gif")));
116 leftSquareBracketButton.setToolTipText("Send left square bracket to the server");
117 leftSquareBracketButton.addKeyButtonListener(this);
118 rightSquareBracketButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("rightsquarebracket.gif")));
119 rightSquareBracketButton.setToolTipText("Send right square bracket to the server");
120 rightSquareBracketButton.addKeyButtonListener(this);
121 leftCurlyBracketButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("leftbracket.gif")));
122 leftCurlyBracketButton.setToolTipText("Send left curly bracket to the server");
123 leftCurlyBracketButton.addKeyButtonListener(this);
124 rightCurlyBracketButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("rightbracket.gif")));
125 rightCurlyBracketButton.setToolTipText("Send right curly bracket to the server");
126 rightCurlyBracketButton.addKeyButtonListener(this);
127 backslashButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("backslash.gif")));
128 backslashButton.setToolTipText("Send backslash to the server");
129 backslashButton.addKeyButtonListener(this);
130 atButton = new KeyButton(Toolkit.getDefaultToolkit().getImage(getClass().getResource("atsign.gif")));
131 atButton.setToolTipText("Send at symbol to the server");
132 atButton.addKeyButtonListener(this);
133 setPreferredSize(new Dimension(95, 350));
134 setLayout(new FlowLayout(0, 2, 2));
137 public McsToolBar(String s, McsKeyAdapter mcskeyadapter, LiveVideoPanel livevideopanel, DatagramReader datagramreader, McsToolBar mcstoolbar) {
138 slider = new JSlider(0, 16);
140 configLink = new JLabel("<html><u>Preferences</u></html>");
141 keyAdapter = mcskeyadapter;
142 videoPanel = livevideopanel;
143 datagramReader = datagramreader;
144 setLayout(new FlowLayout(0, 3, 3));
145 slider.setToolTipText("Video speed selector");
146 slider.setBackground(getBackground());
147 slider.setPreferredSize(new Dimension(260, 40));
148 slider.setPaintTicks(true);
149 slider.setMajorTickSpacing(2);
150 slider.setMinorTickSpacing(1);
151 slider.setSnapToTicks(true);
152 slider.setPaintLabels(true);
153 Hashtable hashtable = new Hashtable();
154 hashtable.put(new Integer(0), new JLabel("0"));
155 hashtable.put(new Integer(2), new JLabel("20k"));
156 hashtable.put(new Integer(4), new JLabel("40k"));
157 hashtable.put(new Integer(6), new JLabel("100k"));
158 hashtable.put(new Integer(8), new JLabel("200k"));
159 hashtable.put(new Integer(10), new JLabel("300k"));
160 hashtable.put(new Integer(12), new JLabel("900k"));
161 hashtable.put(new Integer(14), new JLabel("1.5M"));
162 hashtable.put(new Integer(16), new JLabel("5M"));
163 slider.setLabelTable(hashtable);
164 slider.addChangeListener(new ChangeListener() {
166 public void stateChanged(ChangeEvent changeevent) {
167 JSlider jslider = (JSlider)changeevent.getSource();
168 int j = McsToolBar.BITRATES[jslider.getValue()];
169 if (lastBitrate == 0 && j > 0)
170 videoPanel.resumeVideo();
172 if (lastBitrate > 0 && j == 0)
173 videoPanel.pauseVideo();
174 datagramReader.setInitialBitRate(j);
180 sliderHelp = new Help("Video Speed Help", Toolkit.getDefaultToolkit().getImage(getClass().getResource("help.gif")), SLIDER_HELP_DATA.length);
181 sliderHelp.setToolTipText("Video Speed Help");
182 for (int i = 0; i < SLIDER_HELP_DATA.length; i++)
183 sliderHelp.append(SLIDER_HELP_DATA[i]);
185 options = new Options(s, mcskeyadapter, datagramreader, this, mcstoolbar);
187 livevideopanel.addSliderListener(this);
188 datagramreader.addSliderListener(this);
191 public void keyPressed(MouseEvent mouseevent) {
192 if (mouseevent.getSource() == japan1Button)
193 keyAdapter.sendKeyEvent(10, 53, 1);
195 if (mouseevent.getSource() == japan1aButton) {
196 keyAdapter.sendKeyEvent(10, 226, 1);
197 keyAdapter.sendKeyEvent(10, 53, 1);
199 if (mouseevent.getSource() == japan30Button)
200 keyAdapter.sendKeyEvent(10, 57, 1);
202 if (mouseevent.getSource() == japan30aButton) {
203 keyAdapter.sendKeyEvent(10, 226, 1);
204 keyAdapter.sendKeyEvent(10, 57, 1);
206 if (mouseevent.getSource() == japan131Button)
207 keyAdapter.sendKeyEvent(10, 139, 1);
209 if (mouseevent.getSource() == japan132Button)
210 keyAdapter.sendKeyEvent(10, 138, 1);
212 if (mouseevent.getSource() == japan132aButton) {
213 keyAdapter.sendKeyEvent(10, 226, 1);
214 keyAdapter.sendKeyEvent(10, 138, 1);
216 if (mouseevent.getSource() == japan132sButton) {
217 keyAdapter.sendKeyEvent(10, 225, 1);
218 keyAdapter.sendKeyEvent(10, 138, 1);
220 if (mouseevent.getSource() == japan133Button)
221 keyAdapter.sendKeyEvent(10, 136, 1);
223 if (mouseevent.getSource() == japan133aButton) {
224 keyAdapter.sendKeyEvent(10, 226, 1);
225 keyAdapter.sendKeyEvent(10, 136, 1);
227 if (mouseevent.getSource() == japan133sButton) {
228 keyAdapter.sendKeyEvent(10, 225, 1);
229 keyAdapter.sendKeyEvent(10, 136, 1);
231 if (mouseevent.getSource() == tildeButton) {
232 int i = keyAdapter.getButtonModifierCode(1);
234 keyAdapter.sendKeyEvent(10, i, 1);
235 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(1), 1);
237 if (mouseevent.getSource() == circumflexButton) {
238 int j = keyAdapter.getButtonModifierCode(2);
240 keyAdapter.sendKeyEvent(10, j, 1);
241 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(2), 1);
243 if (mouseevent.getSource() == diaeresisButton) {
244 int k = keyAdapter.getButtonModifierCode(3);
246 keyAdapter.sendKeyEvent(10, k, 1);
247 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(3), 1);
249 if (mouseevent.getSource() == graveButton) {
250 int l = keyAdapter.getButtonModifierCode(4);
252 keyAdapter.sendKeyEvent(10, l, 1);
253 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(4), 1);
255 if (mouseevent.getSource() == acuteButton) {
256 int i1 = keyAdapter.getButtonModifierCode(5);
258 keyAdapter.sendKeyEvent(10, i1, 1);
259 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(5), 1);
261 if (mouseevent.getSource() == leftSquareBracketButton) {
262 int j1 = keyAdapter.getButtonModifierCode(6);
264 keyAdapter.sendKeyEvent(10, j1, 1);
265 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(6), 1);
267 if (mouseevent.getSource() == rightSquareBracketButton) {
268 int k1 = keyAdapter.getButtonModifierCode(7);
270 keyAdapter.sendKeyEvent(10, k1, 1);
271 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(7), 1);
273 if (mouseevent.getSource() == leftCurlyBracketButton) {
274 int l1 = keyAdapter.getButtonModifierCode(8);
276 keyAdapter.sendKeyEvent(10, l1, 1);
277 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(8), 1);
279 if (mouseevent.getSource() == rightCurlyBracketButton) {
280 int i2 = keyAdapter.getButtonModifierCode(9);
282 keyAdapter.sendKeyEvent(10, i2, 1);
283 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(9), 1);
285 if (mouseevent.getSource() == backslashButton) {
286 int j2 = keyAdapter.getButtonModifierCode(10);
288 keyAdapter.sendKeyEvent(10, j2, 1);
289 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(10), 1);
291 if (mouseevent.getSource() == atButton) {
292 int k2 = keyAdapter.getButtonModifierCode(11);
294 keyAdapter.sendKeyEvent(10, k2, 1);
295 keyAdapter.sendKeyEvent(10, keyAdapter.getButtonCode(11), 1);
299 public void keyReleased(MouseEvent mouseevent) {
300 if (mouseevent.getSource() == japan1Button)
301 keyAdapter.sendKeyEvent(11, 53, 1);
303 if (mouseevent.getSource() == japan1aButton) {
304 keyAdapter.sendKeyEvent(11, 53, 1);
305 keyAdapter.sendKeyEvent(11, 226, 1);
307 if (mouseevent.getSource() == japan30Button)
308 keyAdapter.sendKeyEvent(11, 57, 1);
310 if (mouseevent.getSource() == japan30aButton) {
311 keyAdapter.sendKeyEvent(11, 57, 1);
312 keyAdapter.sendKeyEvent(11, 226, 1);
314 if (mouseevent.getSource() == japan131Button)
315 keyAdapter.sendKeyEvent(11, 139, 1);
317 if (mouseevent.getSource() == japan132Button)
318 keyAdapter.sendKeyEvent(11, 138, 1);
320 if (mouseevent.getSource() == japan132aButton) {
321 keyAdapter.sendKeyEvent(11, 138, 1);
322 keyAdapter.sendKeyEvent(11, 226, 1);
324 if (mouseevent.getSource() == japan132sButton) {
325 keyAdapter.sendKeyEvent(11, 138, 1);
326 keyAdapter.sendKeyEvent(11, 225, 1);
328 if (mouseevent.getSource() == japan133Button)
329 keyAdapter.sendKeyEvent(11, 136, 1);
331 if (mouseevent.getSource() == japan133aButton) {
332 keyAdapter.sendKeyEvent(11, 136, 1);
333 keyAdapter.sendKeyEvent(11, 226, 1);
335 if (mouseevent.getSource() == japan133sButton) {
336 keyAdapter.sendKeyEvent(11, 136, 1);
337 keyAdapter.sendKeyEvent(11, 225, 1);
339 if (mouseevent.getSource() == tildeButton) {
340 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(1), 1);
341 int i = keyAdapter.getButtonModifierCode(1);
343 keyAdapter.sendKeyEvent(11, i, 1);
345 if (mouseevent.getSource() == circumflexButton) {
346 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(2), 1);
347 int j = keyAdapter.getButtonModifierCode(2);
349 keyAdapter.sendKeyEvent(11, j, 1);
351 if (mouseevent.getSource() == diaeresisButton) {
352 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(3), 1);
353 int k = keyAdapter.getButtonModifierCode(3);
355 keyAdapter.sendKeyEvent(11, k, 1);
357 if (mouseevent.getSource() == graveButton) {
358 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(4), 1);
359 int l = keyAdapter.getButtonModifierCode(4);
361 keyAdapter.sendKeyEvent(11, l, 1);
363 if (mouseevent.getSource() == acuteButton) {
364 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(5), 1);
365 int i1 = keyAdapter.getButtonModifierCode(5);
367 keyAdapter.sendKeyEvent(11, i1, 1);
369 if (mouseevent.getSource() == leftSquareBracketButton) {
370 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(6), 1);
371 int j1 = keyAdapter.getButtonModifierCode(6);
373 keyAdapter.sendKeyEvent(11, j1, 1);
375 if (mouseevent.getSource() == rightSquareBracketButton) {
376 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(7), 1);
377 int k1 = keyAdapter.getButtonModifierCode(7);
379 keyAdapter.sendKeyEvent(11, k1, 1);
381 if (mouseevent.getSource() == leftCurlyBracketButton) {
382 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(8), 1);
383 int l1 = keyAdapter.getButtonModifierCode(8);
385 keyAdapter.sendKeyEvent(11, l1, 1);
387 if (mouseevent.getSource() == rightCurlyBracketButton) {
388 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(9), 1);
389 int i2 = keyAdapter.getButtonModifierCode(9);
391 keyAdapter.sendKeyEvent(11, i2, 1);
393 if (mouseevent.getSource() == backslashButton) {
394 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(10), 1);
395 int j2 = keyAdapter.getButtonModifierCode(10);
397 keyAdapter.sendKeyEvent(11, j2, 1);
399 if (mouseevent.getSource() == atButton) {
400 keyAdapter.sendKeyEvent(11, keyAdapter.getButtonCode(11), 1);
401 int k2 = keyAdapter.getButtonModifierCode(11);
403 keyAdapter.sendKeyEvent(11, k2, 1);
405 videoPanel.requestFocusInWindow();
406 videoPanel.requestFocus();
409 public void populateCountryKeyBar(int i) {
420 add(japan132sButton);
421 add(japan132aButton);
423 add(japan133sButton);
424 add(japan133aButton);
429 add(circumflexButton);
430 add(diaeresisButton);
434 add(leftSquareBracketButton);
435 add(rightSquareBracketButton);
436 add(leftCurlyBracketButton);
437 add(rightCurlyBracketButton);
438 add(backslashButton);
450 add(circumflexButton);
453 add(backslashButton);
458 add(circumflexButton);
459 add(diaeresisButton);
466 add(circumflexButton);
467 add(diaeresisButton);
477 public void buildCustomizedButtonBar(ComboKeyArray combokeyarray) {
479 add(new JLabel("Video Speed (bps)"));
482 add(new javax.swing.JToolBar.Separator());
483 for (int i = 0; i < 12; i++) {
484 final ArrayList keyData = combokeyarray.getKeysForButton(i);
485 if (keyData != null) {
486 StringBuffer stringbuffer = new StringBuffer();
487 for (Iterator iterator = keyData.iterator(); iterator.hasNext();) {
488 KeyData keydata = (KeyData)iterator.next();
489 String s = keydata.getKeyName();
491 s = s.substring(0, s.indexOf('(') - 1);
492 stringbuffer.append(s);
493 if (iterator.hasNext())
494 stringbuffer.append("+");
497 JButton jbutton = new JButton(stringbuffer.toString());
498 jbutton.addActionListener(new ActionListener() {
500 public void actionPerformed(ActionEvent actionevent) {
501 for (int j = 0; j < keyData.size(); j++) {
502 KeyData keydata1 = (KeyData)keyData.get(j);
503 if (keydata1 != null)
504 keyAdapter.sendKeyEvent(10, keydata1.getUsageCode(), 1);
507 for (int k = keyData.size() - 1; k >= 0; k--) {
508 KeyData keydata2 = (KeyData)keyData.get(k);
509 if (keydata2 != null)
510 keyAdapter.sendKeyEvent(11, keydata2.getUsageCode(), 1);
521 add(new javax.swing.JToolBar.Separator());
522 configLink.setForeground(Color.BLUE);
523 configLink.addMouseListener(new MouseListener() {
525 public void mouseClicked(MouseEvent mouseevent) {
529 public void mousePressed(MouseEvent mouseevent) {
530 configLink.setForeground(Color.LIGHT_GRAY);
533 public void mouseReleased(MouseEvent mouseevent) {
534 configLink.setForeground(Color.GRAY);
537 public void mouseEntered(MouseEvent mouseevent) {
538 configLink.setForeground(Color.GRAY);
541 public void mouseExited(MouseEvent mouseevent) {
542 configLink.setForeground(Color.BLUE);
551 public void setSliderInitialBitRate(long l) {
552 if (l <= (long)BITRATES[1]) {
554 datagramReader.setInitialBitRate(BITRATES[1]);
557 if (l >= (long)BITRATES[BITRATES.length - 1]) {
558 slider.setValue(BITRATES.length - 1);
559 datagramReader.setInitialBitRate(BITRATES[BITRATES.length - 1]);
562 for (int i = 0; i < BITRATES.length; i++)
563 if (l < (long)BITRATES[i]) {
564 int j = BITRATES[i - 1] + (BITRATES[i] - BITRATES[i - 1]) / 2;
566 slider.setValue(i - 1);
567 datagramReader.setInitialBitRate(BITRATES[i - 1]);
570 datagramReader.setInitialBitRate(BITRATES[i]);
575 System.out.println("Error: Failed to set bitrate: " + l);