1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package com.gridsystems.config.modules.jvm;
25
26 import java.awt.GridBagConstraints;
27 import java.awt.GridBagLayout;
28
29 import javax.swing.JCheckBox;
30 import javax.swing.JComponent;
31 import javax.swing.JPanel;
32 import javax.swing.JTextField;
33
34 import com.gridsystems.config.Configurator;
35 import com.gridsystems.config.ConfiguratorModel;
36 import com.gridsystems.config.app.UI;
37 import com.gridsystems.config.tools.ErrorSupport;
38 import com.gridsystems.config.tools.PortVerifier;
39 import com.gridsystems.config.tools.swing.BasePanel;
40 import com.gridsystems.config.tools.swing.SwingTools;
41
42
43
44
45
46
47
48 public class JVMSwingView extends BasePanel {
49
50
51
52 private static final int LARGE_FIELD_LENGTH = 12;
53
54
55
56
57 private static final int NORMAL_FIELD_LENGTH = 6;
58
59
60
61
62 JCheckBox cbxProxyEnabled = new JCheckBox();
63
64
65
66
67 JTextField edProxyHost = new JTextField(LARGE_FIELD_LENGTH);
68
69
70
71
72 JTextField edProxyPort = new JTextField(NORMAL_FIELD_LENGTH);
73
74
75
76
77 JTextField edMinHeap = new JTextField(NORMAL_FIELD_LENGTH);
78
79
80
81
82 JTextField edMaxHeap = new JTextField(NORMAL_FIELD_LENGTH);
83
84
85
86
87 JTextField edStackSize = new JTextField(NORMAL_FIELD_LENGTH);
88
89
90
91
92 JCheckBox cbxDebugEnabled = new JCheckBox();
93
94
95
96
97 JTextField edDebugPort = new JTextField(NORMAL_FIELD_LENGTH);
98
99
100
101
102 JCheckBox cbxSuspend = new JCheckBox();
103
104
105
106
107 boolean initialized = false;
108
109
110
111
112
113
114 public JVMSwingView(Configurator config) {
115 super(config);
116 setBundle(JVMConfigurator.BUNDLE);
117
118 setIcon(SwingTools.loadIcon(JVMConfigurator.class, "icon.gif"));
119 setSmallIcon(SwingTools.loadIcon(JVMConfigurator.class, "small.gif"));
120
121 init();
122 }
123
124
125
126
127 private void init() {
128 if (initialized) {
129 return;
130 }
131 initialized = true;
132
133 ErrorSupport support = new ErrorSupport(this.getConfigurator());
134
135 this.setLayout(new GridBagLayout());
136 JPanel pnlMemory = createMemoryPanel(support);
137
138 GridBagConstraints gc = new GridBagConstraints();
139 gc.fill = UI.isExpertMode() ? GridBagConstraints.BOTH : GridBagConstraints.HORIZONTAL;
140 gc.gridx = GridBagConstraints.REMAINDER;
141 gc.anchor = GridBagConstraints.NORTH;
142 gc.weightx = 1.0;
143 gc.weighty = 1.0;
144
145 this.add(pnlMemory, gc);
146
147 if (UI.isExpertMode()) {
148 JPanel pnlProxy = createProxyPanel(support);
149 JPanel pnlDebug = createDebugPanel(support);
150 this.add(pnlProxy, gc);
151 this.add(pnlDebug, gc);
152 }
153 }
154
155
156
157
158
159
160 public void getValues(ConfiguratorModel model) {
161 JVMConfigModel data = (JVMConfigModel)model;
162 edMinHeap.setText(data.getMinHeap());
163 edMaxHeap.setText(data.getMaxHeap());
164 edStackSize.setText(data.getStackSize());
165
166 if (UI.isExpertMode()) {
167 boolean flag = data.getUseProxy().equals("true");
168 cbxProxyEnabled.setSelected(flag);
169 edProxyHost.setText(data.getProxyHost());
170 edProxyPort.setText(data.getProxyPort());
171 edProxyHost.setEnabled(flag);
172 edProxyPort.setEnabled(flag);
173
174 flag = data.getDebugEnabled().equals("true");
175 cbxDebugEnabled.setSelected(flag);
176 edDebugPort.setText(data.getDebugPort());
177 edDebugPort.setEnabled(flag);
178 cbxSuspend.setEnabled(flag);
179
180 flag = data.getDebugSuspend().equals("true");
181 cbxSuspend.setSelected(flag);
182 }
183
184 setModified(this, false);
185 }
186
187
188
189
190
191
192 public void setValues(ConfiguratorModel model) {
193 JVMConfigModel data = (JVMConfigModel)model;
194 data.setValue("heap.min", edMinHeap.getText());
195 data.setValue("heap.max", edMaxHeap.getText());
196 data.setValue("stack.size", edStackSize.getText());
197
198 if (UI.isExpertMode()) {
199 data.setValue("proxy.use", cbxProxyEnabled.isSelected() ? "true" : "false");
200 data.setValue("proxy.host", edProxyHost.getText());
201 data.setValue("proxy.port", edProxyPort.getText());
202
203 data.setValue("debug.enable", cbxDebugEnabled.isSelected() ? "true" : "false");
204 data.setValue("debug.port", edDebugPort.getText());
205 data.setValue("debug.suspend", cbxSuspend.isSelected() ? "true" : "false");
206 }
207
208 setModified(this, false);
209 }
210
211
212
213
214
215
216
217 private JPanel createMemoryPanel(ErrorSupport support) {
218 String s = getString("pnlMemory.title");
219 JPanel panel = SwingTools.getGroupPanel(s);
220
221 SwingTools.addField(panel, getString("pnlMemory.lblMinHeap"), edMinHeap, 0);
222 SwingTools.addField(panel, getString("pnlMemory.lblStackSize"), edStackSize, 0);
223 SwingTools.addField(panel, getString("pnlMemory.lblMaxHeap"), edMaxHeap, 1);
224
225 support.addError("badMemSize1", "MinHeap: " + getString("errors.badMemSize"));
226 support.addError("badMemSize2", "MaxHeap: " + getString("errors.badMemSize"));
227 support.addError("badMemSize3", "StackSize: " + getString("errors.badMemSize"));
228
229 edMinHeap.setInputVerifier(new MemSizeVerifier(support, "badMemSize1"));
230 edMaxHeap.setInputVerifier(new MemSizeVerifier(support, "badMemSize2"));
231 edStackSize.setInputVerifier(new MemSizeVerifier(support, "badMemSize3", true));
232
233 watch(edMinHeap);
234 watch(edMaxHeap);
235 watch(edStackSize);
236
237 return panel;
238 }
239
240
241
242
243
244
245
246 private JPanel createProxyPanel(ErrorSupport support) {
247 String title = getString("pnlProxy.title");
248 JPanel panel = SwingTools.getGroupPanel(title, new GridBagLayout());
249
250 cbxProxyEnabled.setText(getString("pnlProxy.cbxProxyEnabled"));
251
252 GridBagConstraints gc = new GridBagConstraints();
253 gc.gridwidth = 2;
254 gc.weightx = 1.0;
255 gc.anchor = GridBagConstraints.LINE_START;
256 gc.fill = GridBagConstraints.BOTH;
257 panel.add(cbxProxyEnabled, gc);
258
259 SwingTools.addField(panel, getString("pnlProxy.lblProxyHost"), edProxyHost, 1);
260 SwingTools.addField(panel, getString("pnlProxy.lblProxyPort"), edProxyPort, 2);
261
262 this.watch(edProxyHost);
263 this.watch(edProxyPort);
264
265 support.addError("badProxyPort", getString("errors.badProxyPort"));
266 edProxyPort.setInputVerifier(new PortVerifier(support, "badProxyPort"));
267
268 JComponent[] guarded = { edProxyHost, edProxyPort };
269 setGuarded(cbxProxyEnabled, guarded);
270 return panel;
271 }
272
273
274
275
276
277
278
279 private JPanel createDebugPanel(ErrorSupport support) {
280 String title = getString("pnlDebug.title");
281 JPanel panel = SwingTools.getGroupPanel(title);
282
283 cbxDebugEnabled.setText(getString("pnlDebug.cbxDebugEnabled"));
284 GridBagConstraints gc = new GridBagConstraints();
285 gc.gridwidth = 2;
286 gc.weightx = 1.0;
287 gc.anchor = GridBagConstraints.LINE_START;
288 gc.fill = GridBagConstraints.BOTH;
289 panel.add(cbxDebugEnabled, gc);
290
291 SwingTools.addField(panel, getString("pnlDebug.lblDebugPort"), edDebugPort, 1);
292 SwingTools.addField(panel, getString("pnlDebug.cbxSuspend"), cbxSuspend, 2);
293
294 JComponent[] guarded = { edDebugPort, cbxSuspend };
295
296 setGuarded(cbxDebugEnabled, guarded);
297 setGuarded(cbxSuspend, null);
298 watch(edDebugPort);
299
300 support.addError("badDebugPort", getString("errors.badDebugPort"));
301 edDebugPort.setInputVerifier(new PortVerifier(support, "badDebugPort"));
302
303 return panel;
304 }
305
306 }