annotate src/myVncProxy/OptionsNoFrame.java @ 145:8bdbed4c4505

add template.txt
author e085711
date Mon, 05 Sep 2011 06:03:14 +0900
parents 7929f447692f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
67
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
1 package myVncProxy;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
2
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
3 import java.awt.*;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
4 import java.awt.event.*;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
5
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
6 class OptionsNoFrame{
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
7
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
8 static String[] names = {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
9 "Encoding",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
10 "Compression level",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
11 "JPEG image quality",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
12 "Cursor shape updates",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
13 "Use CopyRect",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
14 "Restricted colors",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
15 "Mouse buttons 2 and 3",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
16 "View only",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
17 "Scale remote cursor",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
18 "Share desktop",
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
19 };
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
20
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
21 static String[][] values = {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
22 { "Auto", "Raw", "RRE", "CoRRE", "Hextile", "Zlib", "Tight", "ZRLE" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
23 { "Default", "1", "2", "3", "4", "5", "6", "7", "8", "9" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
24 { "JPEG off", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
25 { "Enable", "Ignore", "Disable" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
26 { "Yes", "No" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
27 { "Yes", "No" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
28 { "Normal", "Reversed" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
29 { "Yes", "No" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
30 { "No", "50%", "75%", "125%", "150%" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
31 { "Yes", "No" },
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
32 };
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
33
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
34 final int
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
35 encodingIndex = 0,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
36 compressLevelIndex = 1,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
37 jpegQualityIndex = 2,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
38 cursorUpdatesIndex = 3,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
39 useCopyRectIndex = 4,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
40 eightBitColorsIndex = 5,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
41 mouseButtonIndex = 6,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
42 viewOnlyIndex = 7,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
43 scaleCursorIndex = 8,
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
44 shareDesktopIndex = 9;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
45
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
46 Label[] labels = new Label[names.length];
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
47 Choice[] choices = new Choice[names.length];
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
48 Button closeButton;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
49 VncProxyService viewer;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
50
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
51
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
52 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
53 // The actual data which other classes look at:
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
54 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
55
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
56 int preferredEncoding;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
57 int compressLevel;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
58 int jpegQuality;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
59 boolean useCopyRect;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
60 boolean requestCursorUpdates;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
61 boolean ignoreCursorUpdates;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
62
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
63 boolean eightBitColors;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
64
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
65 boolean reverseMouseButtons2And3;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
66 boolean shareDesktop;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
67 boolean viewOnly;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
68 int scaleCursor;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
69
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
70 boolean autoScale;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
71 int scalingFactor;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
72
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
73 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
74 // Constructor. Set up the labels and choices from the names and values
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
75 // arrays.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
76 //
135
7929f447692f modify OptionNoFrame.java
e085711
parents: 130
diff changeset
77
67
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
78 OptionsNoFrame(VncProxyService v) {
124
c2c21a67097c modify OptionNoFrame.java
e085711
parents: 67
diff changeset
79 viewer = v;
125
e3dddee7b934 modify OptionsNofFrame.java
e085711
parents: 124
diff changeset
80 preferredEncoding = -1;
124
c2c21a67097c modify OptionNoFrame.java
e085711
parents: 67
diff changeset
81 }
135
7929f447692f modify OptionNoFrame.java
e085711
parents: 130
diff changeset
82
7929f447692f modify OptionNoFrame.java
e085711
parents: 130
diff changeset
83 OptionsNoFrame(VncProxyService v, VncCanvas vc) {
7929f447692f modify OptionNoFrame.java
e085711
parents: 130
diff changeset
84 // OptionsNoFrame(VncProxyService v) {
125
e3dddee7b934 modify OptionsNofFrame.java
e085711
parents: 124
diff changeset
85 viewer = v;
e3dddee7b934 modify OptionsNofFrame.java
e085711
parents: 124
diff changeset
86
67
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
87 for (int i = 0; i < names.length; i++) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
88 labels[i] = new Label(names[i]);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
89
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
90 choices[i] = new Choice();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
91
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
92
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
93 for (int j = 0; j < values[i]. length; j++) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
94 choices[i].addItem(values[i][j]);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
95 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
96 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
97
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
98 // Set up defaults
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
99
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
100 choices[encodingIndex].select("Auto");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
101 choices[compressLevelIndex].select("Default");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
102 choices[jpegQualityIndex].select("6");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
103 choices[cursorUpdatesIndex].select("Enable");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
104 choices[useCopyRectIndex].select("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
105 choices[eightBitColorsIndex].select("No");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
106 choices[mouseButtonIndex].select("Normal");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
107 choices[viewOnlyIndex].select("No");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
108 choices[scaleCursorIndex].select("No");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
109 choices[shareDesktopIndex].select("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
110
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
111 // But let them be overridden by parameters
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
112
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
113 for (int i = 0; i < names.length; i++) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
114 String s = viewer.readParameter(names[i], false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
115 if (s != null) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
116 for (int j = 0; j < values[i].length; j++) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
117 if (s.equalsIgnoreCase(values[i][j])) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
118 choices[i].select(j);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
119 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
120 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
121 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
122 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
123
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
124 // FIXME: Provide some sort of GUI for "Scaling Factor".
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
125
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
126 autoScale = false;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
127 scalingFactor = 100;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
128 String s = viewer.readParameter("Scaling Factor", false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
129 if (s != null) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
130 if (s.equalsIgnoreCase("Auto")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
131 autoScale = true;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
132 } else {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
133 // Remove the '%' char at the end of string if present.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
134 if (s.charAt(s.length() - 1) == '%') {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
135 s = s.substring(0, s.length() - 1);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
136 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
137 // Convert to an integer.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
138 try {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
139 scalingFactor = Integer.parseInt(s);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
140 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
141 catch (NumberFormatException e) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
142 scalingFactor = 100;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
143 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
144 // Make sure scalingFactor is in the range of [1..1000].
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
145 if (scalingFactor < 1) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
146 scalingFactor = 1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
147 } else if (scalingFactor > 1000) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
148 scalingFactor = 1000;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
149 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
150 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
151 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
152
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
153 // Make the booleans and encodings array correspond to the state of the GUI
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
154
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
155 setEncodings();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
156 setColorFormat();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
157 setOtherOptions();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
158 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
159
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
160
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
161 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
162 // Disable the shareDesktop option
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
163 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
164
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
165 void disableShareDesktop() {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
166 labels[shareDesktopIndex].setEnabled(false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
167 choices[shareDesktopIndex].setEnabled(false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
168 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
169
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
170 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
171 // setEncodings looks at the encoding, compression level, JPEG
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
172 // quality level, cursor shape updates and copyRect choices and sets
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
173 // corresponding variables properly. Then it calls the VncViewer's
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
174 // setEncodings method to send a SetEncodings message to the RFB
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
175 // server.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
176 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
177
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
178 void setEncodings() {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
179 // useCopyRect = choices[useCopyRectIndex].getSelectedItem().equals("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
180
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
181 preferredEncoding = RfbProto.EncodingRaw;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
182 boolean enableCompressLevel = false;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
183
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
184 if (choices[encodingIndex].getSelectedItem().equals("RRE")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
185 preferredEncoding = RfbProto.EncodingRRE;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
186 } else if (choices[encodingIndex].getSelectedItem().equals("CoRRE")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
187 preferredEncoding = RfbProto.EncodingCoRRE;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
188 } else if (choices[encodingIndex].getSelectedItem().equals("Hextile")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
189 preferredEncoding = RfbProto.EncodingHextile;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
190 } else if (choices[encodingIndex].getSelectedItem().equals("ZRLE")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
191 preferredEncoding = RfbProto.EncodingZRLE;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
192 } else if (choices[encodingIndex].getSelectedItem().equals("Zlib")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
193 preferredEncoding = RfbProto.EncodingZlib;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
194 enableCompressLevel = true;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
195 } else if (choices[encodingIndex].getSelectedItem().equals("Tight")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
196 preferredEncoding = RfbProto.EncodingTight;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
197 enableCompressLevel = true;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
198 } else if (choices[encodingIndex].getSelectedItem().equals("Auto")) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
199 preferredEncoding = -1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
200 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
201
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
202 // Handle compression level setting.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
203
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
204 try {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
205 compressLevel =
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
206 Integer.parseInt(choices[compressLevelIndex].getSelectedItem());
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
207 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
208 catch (NumberFormatException e) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
209 compressLevel = -1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
210 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
211 if (compressLevel < 1 || compressLevel > 9) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
212 compressLevel = -1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
213 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
214 labels[compressLevelIndex].setEnabled(enableCompressLevel);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
215 choices[compressLevelIndex].setEnabled(enableCompressLevel);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
216
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
217 // Handle JPEG quality setting.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
218
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
219 try {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
220 jpegQuality =
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
221 Integer.parseInt(choices[jpegQualityIndex].getSelectedItem());
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
222 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
223 catch (NumberFormatException e) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
224 jpegQuality = -1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
225 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
226 if (jpegQuality < 0 || jpegQuality > 9) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
227 jpegQuality = -1;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
228 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
229
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
230 // Request cursor shape updates if necessary.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
231
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
232 requestCursorUpdates =
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
233 !choices[cursorUpdatesIndex].getSelectedItem().equals("Disable");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
234
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
235 if (requestCursorUpdates) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
236 ignoreCursorUpdates =
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
237 choices[cursorUpdatesIndex].getSelectedItem().equals("Ignore");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
238 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
239
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
240 viewer.setEncodings();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
241 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
242
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
243 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
244 // setColorFormat sets eightBitColors variable depending on the GUI
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
245 // setting, causing switches between 8-bit and 24-bit colors mode if
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
246 // necessary.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
247 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
248
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
249 void setColorFormat() {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
250
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
251 eightBitColors =
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
252 choices[eightBitColorsIndex].getSelectedItem().equals("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
253
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
254 boolean enableJPEG = !eightBitColors;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
255
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
256 labels[jpegQualityIndex].setEnabled(enableJPEG);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
257 choices[jpegQualityIndex].setEnabled(enableJPEG);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
258 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
259
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
260 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
261 // setOtherOptions looks at the "other" choices (ones that do not
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
262 // cause sending any protocol messages) and sets the boolean flags
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
263 // appropriately.
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
264 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
265
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
266 void setOtherOptions() {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
267
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
268 reverseMouseButtons2And3
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
269 = choices[mouseButtonIndex].getSelectedItem().equals("Reversed");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
270
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
271 viewOnly
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
272 = choices[viewOnlyIndex].getSelectedItem().equals("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
273 if (viewer.vc != null)
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
274 viewer.vc.enableInput(!viewOnly);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
275
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
276 shareDesktop
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
277 = choices[shareDesktopIndex].getSelectedItem().equals("Yes");
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
278
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
279 String scaleString = choices[scaleCursorIndex].getSelectedItem();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
280 if (scaleString.endsWith("%"))
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
281 scaleString = scaleString.substring(0, scaleString.length() - 1);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
282 try {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
283 scaleCursor = Integer.parseInt(scaleString);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
284 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
285 catch (NumberFormatException e) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
286 scaleCursor = 0;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
287 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
288 if (scaleCursor < 10 || scaleCursor > 500) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
289 scaleCursor = 0;
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
290 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
291 if (requestCursorUpdates && !ignoreCursorUpdates && !viewOnly) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
292 labels[scaleCursorIndex].setEnabled(true);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
293 choices[scaleCursorIndex].setEnabled(true);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
294 } else {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
295 labels[scaleCursorIndex].setEnabled(false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
296 choices[scaleCursorIndex].setEnabled(false);
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
297 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
298 if (viewer.vc != null)
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
299 viewer.vc.createSoftCursor(); // update cursor scaling
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
300 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
301
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
302
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
303 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
304 // Respond to actions on Choice controls
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
305 //
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
306
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
307 public void itemStateChanged(ItemEvent evt) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
308 Object source = evt.getSource();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
309
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
310 if (source == choices[encodingIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
311 source == choices[compressLevelIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
312 source == choices[jpegQualityIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
313 source == choices[cursorUpdatesIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
314 source == choices[useCopyRectIndex]) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
315
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
316 setEncodings();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
317
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
318 if (source == choices[cursorUpdatesIndex]) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
319 setOtherOptions(); // update scaleCursor state
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
320 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
321
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
322 } else if (source == choices[eightBitColorsIndex]) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
323
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
324 setColorFormat();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
325
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
326 } else if (source == choices[mouseButtonIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
327 source == choices[shareDesktopIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
328 source == choices[viewOnlyIndex] ||
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
329 source == choices[scaleCursorIndex]) {
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
330
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
331 setOtherOptions();
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
332
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
333 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
334 }
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
335
f695bc56eb4f add OptionNoFrame.java. add setEncodings.
e085711
parents:
diff changeset
336 }