Lines 41-57
Link Here
|
41 |
|
41 |
|
42 |
package org.netbeans.core.ui.options.general; |
42 |
package org.netbeans.core.ui.options.general; |
43 |
|
43 |
|
|
|
44 |
import java.awt.Color; |
44 |
import java.awt.Component; |
45 |
import java.awt.Component; |
45 |
import java.awt.Cursor; |
46 |
import java.awt.Cursor; |
46 |
import java.awt.event.ActionEvent; |
47 |
import java.awt.event.ActionEvent; |
47 |
import java.awt.event.ActionListener; |
48 |
import java.awt.event.ActionListener; |
|
|
49 |
import java.beans.PropertyChangeEvent; |
50 |
import java.beans.PropertyChangeSupport; |
48 |
import java.net.MalformedURLException; |
51 |
import java.net.MalformedURLException; |
49 |
import java.net.URL; |
52 |
import java.net.URL; |
50 |
import javax.swing.AbstractButton; |
53 |
import javax.swing.AbstractButton; |
51 |
import javax.swing.ButtonGroup; |
54 |
import javax.swing.ButtonGroup; |
52 |
import javax.swing.JLabel; |
55 |
import javax.swing.JLabel; |
53 |
import javax.swing.JPanel; |
56 |
import javax.swing.JPanel; |
|
|
57 |
import javax.swing.event.DocumentEvent; |
58 |
import javax.swing.event.DocumentListener; |
54 |
import org.netbeans.beaninfo.editors.HtmlBrowser; |
59 |
import org.netbeans.beaninfo.editors.HtmlBrowser; |
|
|
60 |
import org.netbeans.spi.options.OptionsPanelController; |
55 |
import org.openide.DialogDescriptor; |
61 |
import org.openide.DialogDescriptor; |
56 |
import org.openide.DialogDisplayer; |
62 |
import org.openide.DialogDisplayer; |
57 |
import org.openide.awt.Mnemonics; |
63 |
import org.openide.awt.Mnemonics; |
Lines 69-74
Link Here
|
69 |
private GeneralOptionsModel model; |
75 |
private GeneralOptionsModel model; |
70 |
private HtmlBrowser.FactoryEditor editor; |
76 |
private HtmlBrowser.FactoryEditor editor; |
71 |
private AdvancedProxyPanel advancedPanel; |
77 |
private AdvancedProxyPanel advancedPanel; |
|
|
78 |
private PropertyChangeSupport support = new PropertyChangeSupport(this); |
79 |
private boolean valid = true; |
72 |
|
80 |
|
73 |
|
81 |
|
74 |
/** |
82 |
/** |
Lines 76-81
Link Here
|
76 |
*/ |
84 |
*/ |
77 |
public GeneralOptionsPanel () { |
85 |
public GeneralOptionsPanel () { |
78 |
initComponents (); |
86 |
initComponents (); |
|
|
87 |
|
88 |
errorLabel.setForeground(new Color(153,0,0)); |
89 |
errorLabel.setVisible(false); |
79 |
|
90 |
|
80 |
loc (lWebBrowser, "Web_Browser"); |
91 |
loc (lWebBrowser, "Web_Browser"); |
81 |
loc (lWebProxy, "Web_Proxy"); |
92 |
loc (lWebProxy, "Web_Proxy"); |
Lines 95-100
Link Here
|
95 |
cbWebBrowser.addActionListener (this); |
106 |
cbWebBrowser.addActionListener (this); |
96 |
tfProxyHost.addActionListener (this); |
107 |
tfProxyHost.addActionListener (this); |
97 |
tfProxyPort.addActionListener (this); |
108 |
tfProxyPort.addActionListener (this); |
|
|
109 |
|
110 |
tfProxyPort.getDocument().addDocumentListener(new DocumentListener(){ |
111 |
|
112 |
public void insertUpdate(DocumentEvent e) { |
113 |
validatePortValue(); |
114 |
} |
115 |
|
116 |
public void removeUpdate(DocumentEvent e) { |
117 |
validatePortValue(); |
118 |
} |
119 |
|
120 |
public void changedUpdate(DocumentEvent e) { |
121 |
validatePortValue(); |
122 |
} |
123 |
}); |
98 |
|
124 |
|
99 |
ButtonGroup bgProxy = new ButtonGroup (); |
125 |
ButtonGroup bgProxy = new ButtonGroup (); |
100 |
bgProxy.add (rbNoProxy); |
126 |
bgProxy.add (rbNoProxy); |
Lines 138-143
Link Here
|
138 |
//if (System.getProperty("netbeans.system_http_proxy") == null) // NOI18N |
164 |
//if (System.getProperty("netbeans.system_http_proxy") == null) // NOI18N |
139 |
//rbUseSystemProxy.setEnabled(false); |
165 |
//rbUseSystemProxy.setEnabled(false); |
140 |
} |
166 |
} |
|
|
167 |
|
168 |
private void validatePortValue () { |
169 |
clearError(); |
170 |
|
171 |
boolean oldValid = valid; |
172 |
valid = isPortValid(); |
173 |
if( !valid ) { |
174 |
showError(loc ("LBL_GeneralOptionsPanel_PortError")); // NOI18N |
175 |
} |
176 |
|
177 |
if( oldValid != valid ) { |
178 |
support.firePropertyChange( |
179 |
new PropertyChangeEvent(this, |
180 |
OptionsPanelController.PROP_VALID, oldValid, valid)); |
181 |
} |
182 |
} |
183 |
|
184 |
private boolean isPortValid() { |
185 |
String port = tfProxyPort.getText (); |
186 |
boolean portStatus = true; |
187 |
if( port != null && port.length() > 0 ) { |
188 |
try { |
189 |
Integer.parseInt(port); |
190 |
} catch( NumberFormatException nfex) { |
191 |
portStatus = false; |
192 |
} |
193 |
} |
194 |
|
195 |
return portStatus; |
196 |
} |
197 |
|
198 |
private void showError(String message) { |
199 |
errorLabel.setVisible(true); |
200 |
errorLabel.setText(message); |
201 |
} |
202 |
|
203 |
private void clearError() { |
204 |
errorLabel.setText(""); |
205 |
errorLabel.setVisible(false); |
206 |
} |
141 |
|
207 |
|
142 |
/** This method is called from within the constructor to |
208 |
/** This method is called from within the constructor to |
143 |
* initialize the form. |
209 |
* initialize the form. |
Lines 165-170
Link Here
|
165 |
jUsageCheck = new javax.swing.JCheckBox(); |
231 |
jUsageCheck = new javax.swing.JCheckBox(); |
166 |
lblUsageInfo = new javax.swing.JLabel(); |
232 |
lblUsageInfo = new javax.swing.JLabel(); |
167 |
lblLearnMore = new javax.swing.JLabel(); |
233 |
lblLearnMore = new javax.swing.JLabel(); |
|
|
234 |
errorLabel = new javax.swing.JLabel(); |
168 |
|
235 |
|
169 |
lWebBrowser.setLabelFor(cbWebBrowser); |
236 |
lWebBrowser.setLabelFor(cbWebBrowser); |
170 |
org.openide.awt.Mnemonics.setLocalizedText(lWebBrowser, org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "GeneralOptionsPanel.lWebBrowser.text")); // NOI18N |
237 |
org.openide.awt.Mnemonics.setLocalizedText(lWebBrowser, org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "GeneralOptionsPanel.lWebBrowser.text")); // NOI18N |
Lines 236-241
Link Here
|
236 |
} |
303 |
} |
237 |
}); |
304 |
}); |
238 |
|
305 |
|
|
|
306 |
org.openide.awt.Mnemonics.setLocalizedText(errorLabel, org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "GeneralOptionsPanel.errorLabel.text")); // NOI18N |
307 |
|
239 |
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); |
308 |
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); |
240 |
this.setLayout(layout); |
309 |
this.setLayout(layout); |
241 |
layout.setHorizontalGroup( |
310 |
layout.setHorizontalGroup( |
Lines 246-252
Link Here
|
246 |
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() |
315 |
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() |
247 |
.add(lWebBrowser) |
316 |
.add(lWebBrowser) |
248 |
.add(18, 18, 18) |
317 |
.add(18, 18, 18) |
249 |
.add(cbWebBrowser, 0, 1131, Short.MAX_VALUE) |
318 |
.add(cbWebBrowser, 0, 1132, Short.MAX_VALUE) |
250 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
319 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
251 |
.add(editBrowserButton)) |
320 |
.add(editBrowserButton)) |
252 |
.add(jSeparator2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1291, Short.MAX_VALUE) |
321 |
.add(jSeparator2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1291, Short.MAX_VALUE) |
Lines 260-270
Link Here
|
260 |
.add(layout.createSequentialGroup() |
329 |
.add(layout.createSequentialGroup() |
261 |
.add(17, 17, 17) |
330 |
.add(17, 17, 17) |
262 |
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) |
331 |
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) |
263 |
.add(bMoreProxy) |
332 |
.add(layout.createSequentialGroup() |
|
|
333 |
.add(bMoreProxy) |
334 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
335 |
.add(errorLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1105, Short.MAX_VALUE)) |
264 |
.add(layout.createSequentialGroup() |
336 |
.add(layout.createSequentialGroup() |
265 |
.add(lProxyHost) |
337 |
.add(lProxyHost) |
266 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
338 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
267 |
.add(tfProxyHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 957, Short.MAX_VALUE) |
339 |
.add(tfProxyHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1016, Short.MAX_VALUE) |
268 |
.add(12, 12, 12) |
340 |
.add(12, 12, 12) |
269 |
.add(lProxyPort) |
341 |
.add(lProxyPort) |
270 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
342 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
Lines 274-283
Link Here
|
274 |
.add(lUsage) |
346 |
.add(lUsage) |
275 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
347 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
276 |
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) |
348 |
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) |
277 |
.add(lblUsageInfo, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1171, Short.MAX_VALUE) |
349 |
.add(lblUsageInfo, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1205, Short.MAX_VALUE) |
278 |
.add(layout.createSequentialGroup() |
350 |
.add(layout.createSequentialGroup() |
279 |
.add(jUsageCheck) |
351 |
.add(jUsageCheck) |
280 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 690, Short.MAX_VALUE)) |
352 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 838, Short.MAX_VALUE)) |
281 |
.add(lblLearnMore)))) |
353 |
.add(lblLearnMore)))) |
282 |
.add(0, 0, 0)) |
354 |
.add(0, 0, 0)) |
283 |
); |
355 |
); |
Lines 307-313
Link Here
|
307 |
.add(tfProxyHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) |
379 |
.add(tfProxyHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) |
308 |
.add(lProxyPort)) |
380 |
.add(lProxyPort)) |
309 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
381 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) |
310 |
.add(bMoreProxy) |
382 |
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) |
|
|
383 |
.add(bMoreProxy) |
384 |
.add(errorLabel)) |
311 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
385 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
312 |
.add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) |
386 |
.add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) |
313 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
387 |
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) |
Lines 358-363
Link Here
|
358 |
advancedPanel = new AdvancedProxyPanel (model); |
432 |
advancedPanel = new AdvancedProxyPanel (model); |
359 |
} |
433 |
} |
360 |
DialogDescriptor dd = new DialogDescriptor (advancedPanel, loc ("LBL_AdvancedProxyPanel_Title")); |
434 |
DialogDescriptor dd = new DialogDescriptor (advancedPanel, loc ("LBL_AdvancedProxyPanel_Title")); |
|
|
435 |
advancedPanel.setDialogDescriptor(dd); |
436 |
dd.createNotificationLineSupport(); |
361 |
advancedPanel.update (tfProxyHost.getText (), tfProxyPort.getText ()); |
437 |
advancedPanel.update (tfProxyHost.getText (), tfProxyPort.getText ()); |
362 |
DialogDisplayer.getDefault ().createDialog (dd).setVisible (true); |
438 |
DialogDisplayer.getDefault ().createDialog (dd).setVisible (true); |
363 |
if (DialogDescriptor.OK_OPTION.equals (dd.getValue ())) { |
439 |
if (DialogDescriptor.OK_OPTION.equals (dd.getValue ())) { |
Lines 407-412
Link Here
|
407 |
private javax.swing.JButton bMoreProxy; |
483 |
private javax.swing.JButton bMoreProxy; |
408 |
private javax.swing.JComboBox cbWebBrowser; |
484 |
private javax.swing.JComboBox cbWebBrowser; |
409 |
private javax.swing.JButton editBrowserButton; |
485 |
private javax.swing.JButton editBrowserButton; |
|
|
486 |
private javax.swing.JLabel errorLabel; |
410 |
private javax.swing.JSeparator jSeparator2; |
487 |
private javax.swing.JSeparator jSeparator2; |
411 |
private javax.swing.JSeparator jSeparator3; |
488 |
private javax.swing.JSeparator jSeparator3; |
412 |
private javax.swing.JCheckBox jUsageCheck; |
489 |
private javax.swing.JCheckBox jUsageCheck; |
Lines 560-566
Link Here
|
560 |
} |
637 |
} |
561 |
|
638 |
|
562 |
boolean dataValid () { |
639 |
boolean dataValid () { |
563 |
return true; |
640 |
return isPortValid(); |
564 |
} |
641 |
} |
565 |
|
642 |
|
566 |
boolean isChanged () { |
643 |
boolean isChanged () { |
Lines 569-574
Link Here
|
569 |
if (!tfProxyPort.getText ().equals (model.getHttpProxyPort ())) return true; |
646 |
if (!tfProxyPort.getText ().equals (model.getHttpProxyPort ())) return true; |
570 |
return changed; |
647 |
return changed; |
571 |
} |
648 |
} |
|
|
649 |
|
650 |
public void addPropertyChangeListener(java.beans.PropertyChangeListener l) { |
651 |
support.addPropertyChangeListener(l); |
652 |
} |
653 |
|
654 |
public void removePropertyChangeListener(java.beans.PropertyChangeListener l) { |
655 |
support.removePropertyChangeListener(l); |
656 |
} |
572 |
|
657 |
|
573 |
public void actionPerformed (ActionEvent e) { |
658 |
public void actionPerformed (ActionEvent e) { |
574 |
changed = true; |
659 |
changed = true; |