? core/options/src/org/netbeans/api Index: editor/options/src/org/netbeans/modules/options/general/Bundle.properties =================================================================== RCS file: /shared/data/ccvs/repository/editor/options/src/org/netbeans/modules/options/general/Bundle.properties,v retrieving revision 1.13 diff -u -r1.13 Bundle.properties --- editor/options/src/org/netbeans/modules/options/general/Bundle.properties 11 Aug 2006 12:23:03 -0000 1.13 +++ editor/options/src/org/netbeans/modules/options/general/Bundle.properties 14 Nov 2006 14:19:44 -0000 @@ -64,7 +64,7 @@ Confirm_Delete=&Confirm Delete: CTL_Web_Proxy=Web Proxy: CTL_Proxy_Settings=Proxy -CTL_Proxy_Port=Po&rt\: +CTL_Proxy_Port=P&ort\: CTL_Proxy_Host=HTTP Pro&xy\: Code_Folding=Code Folding: Show=Show: @@ -79,6 +79,7 @@ Fold_JavaDoc=Fold &Javadoc Comments Fold_Licence=F&old Initial Comment Auto_Popup=Auto Popup: +CTL_ProxyDetailsName=Proxy Details Auto_Popup_Completion=Completion Window Auto_Popup_JavaDoc=Javadoc Window CTL_Update_every_startup=Every Startup @@ -103,3 +104,19 @@ CTL_Non_Proxy=No Prox&y For\: Non_Proxy_Hint=(e.g. localhost, *.netbeans.org, *.mydomain.com) + +CTL_SocksHost=SO&CKS Host +CTL_SocksPort=Po&rt\: + +CTL_UseAuthentication=&Use authentication + +CTL_AuthUser=User&name\: +CTL_AuthPwd=&Password\: + +ProxyDetailsDialog.tfAuthUser.text= + +ProxyDetailsDialog.pfAuthPwd.text= + +CTL_ProxyDetails=De&tails... +AN_ProxyDetails=N/A +AD_ProxyDetails=N/A Index: editor/options/src/org/netbeans/modules/options/general/GeneralOptionsModel.java =================================================================== RCS file: /shared/data/ccvs/repository/editor/options/src/org/netbeans/modules/options/general/GeneralOptionsModel.java,v retrieving revision 1.6 diff -u -r1.6 GeneralOptionsModel.java --- editor/options/src/org/netbeans/modules/options/general/GeneralOptionsModel.java 30 Oct 2006 14:13:49 -0000 1.6 +++ editor/options/src/org/netbeans/modules/options/general/GeneralOptionsModel.java 14 Nov 2006 14:19:44 -0000 @@ -25,81 +25,103 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.prefs.Preferences; import javax.swing.text.EditorKit; import org.netbeans.core.IDESettings; +import org.netbeans.core.ProxySettings; import org.netbeans.editor.BaseKit; import org.netbeans.modules.autoupdate.Settings; import org.netbeans.modules.editor.options.AllOptionsFolder; import org.netbeans.modules.editor.options.BaseOptions; import org.openide.util.Lookup; +import org.openide.util.NbPreferences; class GeneralOptionsModel { + private static Preferences getPreferences() { + return NbPreferences.root ().node ("org/netbeans/core"); + } + int getProxyType () { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - if (ideSettings.getProxyType () == IDESettings.DIRECT_CONNECTION) - return 0; - if (ideSettings.getProxyType () == IDESettings.AUTO_DETECT_PROXY) - return 1; - return 2; + return getPreferences ().getInt (ProxySettings.PROXY_TYPE, ProxySettings.AUTO_DETECT_PROXY); } void setProxyType (int proxyType) { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - switch (proxyType) { - case 0: - ideSettings.setProxyType (IDESettings.DIRECT_CONNECTION); - break; - case 1: - ideSettings.setProxyType (IDESettings.AUTO_DETECT_PROXY); - break; - default: - ideSettings.setProxyType (IDESettings.MANUAL_SET_PROXY); - } + getPreferences ().putInt (ProxySettings.PROXY_TYPE, proxyType); } String getProxyHost () { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - return ideSettings.getUserProxyHost (); + return ProxySettings.getHttpHost (); } void setProxyHost (String proxyHost) { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - ideSettings.setUserProxyHost (proxyHost); + getPreferences ().put (ProxySettings.CUSTOM_HTTP_HOST, proxyHost); } int getProxyPort () { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); try { - return Integer.parseInt (ideSettings.getUserProxyPort ()); + return Integer.parseInt (ProxySettings.getHttpPort ()); } catch (NumberFormatException ex) { return -1; } } void setProxyPort (int proxyPort) { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - ideSettings.setUserProxyPort ("" + proxyPort); + getPreferences ().put (ProxySettings.CUSTOM_HTTP_PORT, "" + proxyPort); + } + + String getSocksHost () { + return ProxySettings.getSocksHost (); + } + + void setSocksHost (String socksHost) { + getPreferences ().put (ProxySettings.CUSTOM_SOCKS_HOST, socksHost); + } + + int getSocksPort () { + try { + return Integer.parseInt (ProxySettings.getSocksPort ()); + } catch (NumberFormatException ex) { + return -1; + } + } + + void setSocksPort (int socksPort) { + getPreferences ().put (ProxySettings.CUSTOM_SOCKS_PORT, "" + socksPort); } String getUserNonProxy () { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - return code2view (ideSettings.getUserNonProxyHosts ()); + return code2view (ProxySettings.getNonProxyHosts ()); } void setUserNonProxy (String nonProxy) { - IDESettings ideSettings = (IDESettings) IDESettings.findObject - (IDESettings.class, true); - ideSettings.setUserNonProxyHosts (view2code (nonProxy)); + getPreferences ().put (ProxySettings.NOT_PROXY_HOSTS, view2code (nonProxy)); + } + + boolean useProxyAuthentication () { + return ProxySettings.useAuthentication (); + } + + void setUseProxyAuthentication (boolean use) { + getPreferences ().putBoolean (ProxySettings.USE_PROXY_AUTHENTICATION, use); + } + + String getProxyAuthenticationUsername () { + return ProxySettings.getAuthenticationUsername (); + } + + void setAuthenticationUsername (String username) { + getPreferences ().put (ProxySettings.PROXY_AUTHENTICATION_USERNAME, username); + } + + char [] getProxyAuthenticationPassword () { + return ProxySettings.getAuthenticationPassword (); + } + + void setAuthenticationPassword (char [] password) { + getPreferences ().put (ProxySettings.PROXY_AUTHENTICATION_PASSWORD, new String (password)); } boolean getAutoUpdateAskBeforeCheck () { Index: editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.form =================================================================== RCS file: /shared/data/ccvs/repository/editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.form,v retrieving revision 1.5 diff -u -r1.5 GeneralOptionsPanel.form --- editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.form 28 May 2006 14:38:06 -0000 1.5 +++ editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.form 14 Nov 2006 14:19:44 -0000 @@ -13,48 +13,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -65,11 +23,6 @@ - - - - - @@ -80,6 +33,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -116,32 +149,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -154,7 +194,7 @@ - + @@ -225,7 +265,9 @@ - + + + @@ -238,7 +280,9 @@ - + + + @@ -373,6 +417,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.java =================================================================== RCS file: /shared/data/ccvs/repository/editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.java,v retrieving revision 1.26 diff -u -r1.26 GeneralOptionsPanel.java --- editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.java 30 Jun 2006 19:18:13 -0000 1.26 +++ editor/options/src/org/netbeans/modules/options/general/GeneralOptionsPanel.java 14 Nov 2006 14:19:44 -0000 @@ -19,6 +19,7 @@ */ import java.awt.Component; +import java.awt.Dialog; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.lang.reflect.Method; @@ -31,8 +32,12 @@ import javax.swing.JPanel; import org.netbeans.beaninfo.editors.HtmlBrowser; import org.netbeans.core.IDESettings; +import org.openide.DialogDescriptor; +import org.openide.DialogDisplayer; +import org.openide.NotifyDescriptor; import org.openide.awt.Mnemonics; import org.openide.options.SystemOption; +import org.openide.util.HelpCtx; import org.openide.util.Lookup; import org.openide.util.NbBundle; @@ -69,11 +74,13 @@ loc (lWebProxy, "Web_Proxy"); loc (lProxyHost, "Proxy_Host"); loc (lProxyPort, "Proxy_Port"); + loc (lSocksHost, "SocksHost"); + loc (lSocksPort, "SocksPort"); loc (lNonProxyHosts, "Non_Proxy"); loc (lAutoUpdate, "Auto_Update"); loc (lCheckPeriod, "Check_Period"); loc (lAskBeforeCheck, "Ask_Before_Check"); - + loc (detailsButton, "ProxyDetails"); cbWebBrowser.getAccessibleContext ().setAccessibleName (loc ("AN_Web_Browser")); @@ -94,6 +101,8 @@ cbWebBrowser.addActionListener (this); tfProxyHost.addActionListener (this); tfProxyPort.addActionListener (this); + tfSocksHost.addActionListener (this); + tfSocksPort.addActionListener (this); cbCheckPeriod.addActionListener (this); cbAskBeforeCheck.addActionListener (this); @@ -123,6 +132,7 @@ */ // //GEN-BEGIN:initComponents private void initComponents() { + lGeneral = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); lViewJavaPackagesAs = new javax.swing.JLabel(); @@ -149,6 +159,11 @@ tfNonProxyHosts = new javax.swing.JTextField(); lNonProxyHostsHint = new javax.swing.JLabel(); jSeparator2 = new javax.swing.JSeparator(); + lSocksHost = new javax.swing.JLabel(); + tfSocksHost = new javax.swing.JTextField(); + lSocksPort = new javax.swing.JLabel(); + tfSocksPort = new javax.swing.JTextField(); + detailsButton = new javax.swing.JButton(); lGeneral.setText("General"); @@ -169,11 +184,11 @@ lWebProxy.setText("Web Proxy:"); - rbNoProxy.setText("No Proxy"); + rbNoProxy.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_No_Proxy")); // NOI18N rbNoProxy.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); rbNoProxy.setMargin(new java.awt.Insets(0, 0, 0, 0)); - rbUseSystemProxy.setText("Use System Proxy Settings"); + rbUseSystemProxy.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_Use_System_Proxy_Settings")); // NOI18N rbUseSystemProxy.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); rbUseSystemProxy.setMargin(new java.awt.Insets(0, 0, 0, 0)); @@ -219,8 +234,6 @@ lNonProxyHosts.setLabelFor(tfNonProxyHosts); lNonProxyHosts.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_Non_Proxy", new Object[] {})); // NOI18N - lNonProxyHosts.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "AN_NonProxy", new Object[] {})); // NOI18N - lNonProxyHosts.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "AD_NonProxy", new Object[] {})); // NOI18N tfNonProxyHosts.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { @@ -233,45 +246,22 @@ lNonProxyHostsHint.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "Non_Proxy_Hint", new Object[] {})); // NOI18N + lSocksHost.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_SocksHost")); // NOI18N + + lSocksPort.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_SocksPort")); // NOI18N + + detailsButton.setText(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_ProxyDetails")); // NOI18N + detailsButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + detailsButtonActionPerformed(evt); + } + }); + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() - .addContainerGap() - .add(lWebProxy) - .add(87, 87, 87) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(rbList) - .add(rbTree, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 420, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(cbWebBrowser, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 444, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(rbUseSystemProxy) - .add(rbNoProxy) - .add(rbHTTPProxy) - .add(cbCheckPeriod, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 444, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(cbAskBeforeCheck, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(layout.createSequentialGroup() - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(lProxyHost) - .add(lNonProxyHosts)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(tfProxyHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(lProxyPort) - .add(2, 2, 2) - .add(tfProxyPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 62, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(tfNonProxyHosts, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 341, Short.MAX_VALUE) - .add(lNonProxyHostsHint)))) - .add(19, 19, 19)) - .add(layout.createSequentialGroup() - .add(12, 12, 12) - .add(lAskBeforeCheck)) - .add(layout.createSequentialGroup() - .add(12, 12, 12) - .add(lCheckPeriod)) - .add(layout.createSequentialGroup() .add(12, 12, 12) .add(lViewJavaPackagesAs)) .add(layout.createSequentialGroup() @@ -279,10 +269,6 @@ .add(lWebBrowser)) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() - .add(lAutoUpdate) - .add(18, 18, 18) - .add(jSeparator3)) - .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(lProxy) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jSeparator2)) @@ -290,6 +276,67 @@ .add(lGeneral) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 570, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() + .add(166, 166, 166) + .add(lNonProxyHosts) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(tfNonProxyHosts, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 372, Short.MAX_VALUE) + .add(lNonProxyHostsHint)) + .addContainerGap()) + .add(layout.createSequentialGroup() + .addContainerGap() + .add(lWebProxy) + .add(87, 87, 87) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(lSocksHost) + .addContainerGap()) + .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(rbList) + .add(rbTree, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 420, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(cbWebBrowser, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 444, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(rbUseSystemProxy) + .add(rbNoProxy) + .add(rbHTTPProxy) + .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() + .add(lProxyHost) + .add(21, 21, 21) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) + .add(org.jdesktop.layout.GroupLayout.LEADING, tfSocksHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 229, Short.MAX_VALUE) + .add(org.jdesktop.layout.GroupLayout.LEADING, tfProxyHost, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 229, Short.MAX_VALUE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(lProxyPort) + .add(lSocksPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 36, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(2, 2, 2) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) + .add(tfProxyPort) + .add(tfSocksPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE))) + .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(detailsButton))) + .add(19, 19, 19)))) + .add(layout.createSequentialGroup() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .add(166, 166, 166) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(cbCheckPeriod, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 444, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(cbAskBeforeCheck, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(19, 19, 19)) + .add(layout.createSequentialGroup() + .add(12, 12, 12) + .add(lAskBeforeCheck)) + .add(layout.createSequentialGroup() + .add(12, 12, 12) + .add(lCheckPeriod)) + .add(layout.createSequentialGroup() + .add(lAutoUpdate) + .add(18, 18, 18) + .add(jSeparator3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 545, Short.MAX_VALUE))) + .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) @@ -319,27 +366,34 @@ .add(rbUseSystemProxy) .add(lWebProxy)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(rbNoProxy) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(rbHTTPProxy) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(lProxyHost) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(tfProxyHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(lProxyPort) + .add(tfProxyPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(lSocksHost) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(tfSocksHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .add(lSocksPort) + .add(tfSocksPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(detailsButton) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 13, Short.MAX_VALUE) + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(lNonProxyHosts) + .add(tfNonProxyHosts, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(lNonProxyHostsHint, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(layout.createSequentialGroup() - .add(rbNoProxy) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(rbHTTPProxy) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(layout.createSequentialGroup() - .add(lProxyHost) - .add(10, 10, 10) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(lNonProxyHosts) - .add(tfNonProxyHosts, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(tfProxyHost, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(lProxyPort) - .add(tfProxyPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(lNonProxyHostsHint, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(18, 18, 18) - .add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) + .add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(lAutoUpdate)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) @@ -349,10 +403,38 @@ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, lAskBeforeCheck) .add(org.jdesktop.layout.GroupLayout.TRAILING, cbAskBeforeCheck)) - .addContainerGap(111, Short.MAX_VALUE)) + .add(55, 55, 55)) ); + + lNonProxyHosts.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "AN_NonProxy", new Object[] {})); // NOI18N + lNonProxyHosts.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(GeneralOptionsPanel.class, "AD_NonProxy", new Object[] {})); // NOI18N }// //GEN-END:initComponents + + private void detailsButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_detailsButtonActionPerformed + if (! detailsButton.isEnabled()) { + return ; + } + ProxyDetailsDialog details = new ProxyDetailsDialog (model.useProxyAuthentication(), + model.getProxyAuthenticationUsername (), + model.getProxyAuthenticationPassword ()); + DialogDescriptor dd = new DialogDescriptor (details, NbBundle.getMessage(GeneralOptionsPanel.class, "CTL_ProxyDetailsName")); + // #48931: set help Id (asked by web team) + dd.setHelpCtx (new HelpCtx (GeneralOptionsPanel.class.getName () + ".getPasswordAuthentication")); // NOI18N + Dialog dialog = DialogDisplayer.getDefault ().createDialog (dd); + dialog.setVisible (true); + + if (dd.getValue ().equals (NotifyDescriptor.OK_OPTION)) { + //return new java.net.PasswordAuthentication ( passwordPanel.getUsername(), passwordPanel.getPassword() ); + // XXX Put into preferences + model.setUseProxyAuthentication (details.useAuthentication ()); + model.setAuthenticationUsername (details.getAuthenticationUsername ()); + model.setAuthenticationPassword (details.getPasswordAuthentication ()); + } else { + // do nothing + } +//GEN-HEADEREND:event_detailsButtonActionPerformed + }//GEN-LAST:event_detailsButtonActionPerformed private void tfNonProxyHostsFocusLost (java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tfNonProxyHostsFocusLost tfNonProxyHosts.select (0, 0); }//GEN-LAST:event_tfNonProxyHostsFocusLost @@ -385,6 +467,7 @@ private javax.swing.JCheckBox cbAskBeforeCheck; private javax.swing.JComboBox cbCheckPeriod; private javax.swing.JComboBox cbWebBrowser; + private javax.swing.JButton detailsButton; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; @@ -397,6 +480,8 @@ private javax.swing.JLabel lProxy; private javax.swing.JLabel lProxyHost; private javax.swing.JLabel lProxyPort; + private javax.swing.JLabel lSocksHost; + private javax.swing.JLabel lSocksPort; private javax.swing.JLabel lViewJavaPackagesAs; private javax.swing.JLabel lWebBrowser; private javax.swing.JLabel lWebProxy; @@ -408,6 +493,8 @@ private javax.swing.JTextField tfNonProxyHosts; private javax.swing.JTextField tfProxyHost; private javax.swing.JTextField tfProxyPort; + private javax.swing.JTextField tfSocksHost; + private javax.swing.JTextField tfSocksPort; // End of variables declaration//GEN-END:variables @@ -444,27 +531,48 @@ rbNoProxy.setSelected (true); tfProxyHost.setEnabled (false); tfProxyPort.setEnabled (false); + tfSocksPort.setEnabled (false); + tfSocksHost.setEnabled (false); tfNonProxyHosts.setEnabled (false); + detailsButton.setEnabled (false); break; case 1: rbUseSystemProxy.setSelected (true); tfProxyHost.setEnabled (false); tfProxyPort.setEnabled (false); + tfSocksPort.setEnabled (false); + tfSocksHost.setEnabled (false); tfNonProxyHosts.setEnabled (false); + detailsButton.setEnabled (false); break; default: rbHTTPProxy.setSelected (true); tfProxyHost.setEnabled (true); tfProxyPort.setEnabled (true); tfNonProxyHosts.setEnabled (true); + tfSocksPort.setEnabled (true); + tfSocksHost.setEnabled (true); + detailsButton.setEnabled (true); break; } + + // http proxy settings tfProxyHost.setText (model.getProxyHost ()); int port = model.getProxyPort (); if (port > 0) tfProxyPort.setText (Integer.toString (port)); else tfProxyPort.setText (""); + + // socks proxy settings + tfSocksHost.setText (model.getSocksHost ()); + port = model.getSocksPort (); + if (port > 0) + tfSocksPort.setText (Integer.toString (port)); + else + tfSocksPort.setText (""); + + // non proxy host tfNonProxyHosts.setText (model.getUserNonProxy ()); // Autoupdate settings @@ -530,6 +638,7 @@ model.setProxyType (2); } + // write http proxy model.setProxyHost (tfProxyHost.getText ()); try { model.setProxyPort ( @@ -538,6 +647,18 @@ } catch (NumberFormatException ex) { model.setProxyPort (0); } + + // write socks proxy + model.setSocksHost (tfSocksHost.getText ()); + try { + model.setSocksPort ( + Math.max (Integer.parseInt (tfSocksPort.getText ()), 0) + ); + } catch (NumberFormatException ex) { + model.setSocksPort (0); + } + + // write non proxt hosts model.setUserNonProxy (tfNonProxyHosts.getText ()); // Autoupdate settings @@ -588,6 +709,11 @@ if (!tfProxyPort.getText ().equals (Integer.toString (model.getProxyPort ()))) return true; } else if (!tfProxyPort.getText ().equals ("")) return true; + if (!tfSocksHost.getText ().equals (model.getSocksHost ())) return true; + if (model.getSocksPort () > 0) { + if (!tfSocksPort.getText ().equals (Integer.toString (model.getSocksPort ()))) return true; + } else + if (!tfSocksPort.getText ().equals ("")) return true; if (!tfNonProxyHosts.getText ().equals (model.getUserNonProxy ())) { return true; } @@ -598,6 +724,9 @@ changed = true; tfProxyHost.setEnabled (rbHTTPProxy.isSelected ()); tfProxyPort.setEnabled (rbHTTPProxy.isSelected ()); + tfSocksPort.setEnabled (rbHTTPProxy.isSelected ()); + tfSocksHost.setEnabled (rbHTTPProxy.isSelected ()); + detailsButton.setEnabled (rbHTTPProxy.isSelected ()); tfNonProxyHosts.setEnabled (rbHTTPProxy.isSelected ()); } } Index: editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.form =================================================================== RCS file: editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.form diff -N editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.form --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.form 14 Nov 2006 14:19:44 -0000 @@ -0,0 +1,117 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index: editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.java =================================================================== RCS file: editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.java diff -N editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ editor/options/src/org/netbeans/modules/options/general/ProxyDetailsDialog.java 14 Nov 2006 14:19:44 -0000 @@ -0,0 +1,156 @@ +/* + * The contents of this file are subject to the terms of the Common Development + * and Distribution License (the License). You may not use this file except in + * compliance with the License. + * + * You can obtain a copy of the License at http://www.netbeans.org/cddl.html + * or http://www.netbeans.org/cddl.txt. + * + * When distributing Covered Code, include this CDDL Header Notice in each file + * and include the License file at http://www.netbeans.org/cddl.txt. + * If applicable, add the following below the CDDL Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * The Original Software is NetBeans. The Initial Developer of the Original + * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun + * Microsystems, Inc. All Rights Reserved. + */ + +package org.netbeans.modules.options.general; + +import org.openide.awt.Mnemonics; +import org.openide.util.NbBundle; + +/** + * + * @author Jiri Rechtacek + */ +public class ProxyDetailsDialog extends javax.swing.JPanel { + + /** Creates new form ProxyDetaildDialog */ + private ProxyDetailsDialog () { + } + + public ProxyDetailsDialog (boolean use, String user, char [] password) { + initComponents (); + Mnemonics.setLocalizedText (useAuthentication, NbBundle.getMessage (ProxyDetailsDialog.class, "CTL_UseAuthentication")); + Mnemonics.setLocalizedText (lAuthUser, NbBundle.getMessage (ProxyDetailsDialog.class, "CTL_AuthUser")); + Mnemonics.setLocalizedText (lAuthPwd, NbBundle.getMessage (ProxyDetailsDialog.class, "CTL_AuthPwd")); + useAuthentication.setSelected (use); + tfAuthUser.setText (user); + pfAuthPwd.setText (new String (password)); + applyChanges (); + } + + boolean useAuthentication () { + return useAuthentication.isSelected (); + } + + String getAuthenticationUsername () { + return tfAuthUser.getText (); + } + + char [] getPasswordAuthentication () { + return pfAuthPwd.getPassword (); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + + jTextField1 = new javax.swing.JTextField(); + useAuthentication = new javax.swing.JCheckBox(); + lAuthUser = new javax.swing.JLabel(); + lAuthPwd = new javax.swing.JLabel(); + tfAuthUser = new javax.swing.JTextField(); + pfAuthPwd = new javax.swing.JPasswordField(); + + jTextField1.setText("jTextField1"); + + useAuthentication.setText(org.openide.util.NbBundle.getMessage(ProxyDetailsDialog.class, "CTL_UseAuthentication")); // NOI18N + useAuthentication.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); + useAuthentication.setMargin(new java.awt.Insets(0, 0, 0, 0)); + useAuthentication.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + useAuthenticationActionPerformed(evt); + } + }); + + lAuthUser.setLabelFor(tfAuthUser); + lAuthUser.setText(org.openide.util.NbBundle.getMessage(ProxyDetailsDialog.class, "CTL_AuthUser")); // NOI18N + + lAuthPwd.setLabelFor(pfAuthPwd); + lAuthPwd.setText(org.openide.util.NbBundle.getMessage(ProxyDetailsDialog.class, "CTL_AuthPwd")); // NOI18N + + tfAuthUser.setText(org.openide.util.NbBundle.getMessage(ProxyDetailsDialog.class, "ProxyDetailsDialog.tfAuthUser.text")); // NOI18N + + pfAuthPwd.setText(org.openide.util.NbBundle.getMessage(ProxyDetailsDialog.class, "ProxyDetailsDialog.pfAuthPwd.text")); // NOI18N + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(useAuthentication) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lAuthUser) + .addComponent(lAuthPwd)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(pfAuthPwd, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE) + .addComponent(tfAuthUser, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(useAuthentication) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lAuthUser) + .addComponent(tfAuthUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lAuthPwd) + .addComponent(pfAuthPwd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(44, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + private void useAuthenticationActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useAuthenticationActionPerformed + applyChanges (); + }//GEN-LAST:event_useAuthenticationActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JTextField jTextField1; + private javax.swing.JLabel lAuthPwd; + private javax.swing.JLabel lAuthUser; + private javax.swing.JPasswordField pfAuthPwd; + private javax.swing.JTextField tfAuthUser; + private javax.swing.JCheckBox useAuthentication; + // End of variables declaration//GEN-END:variables + + private void applyChanges () { + if (useAuthentication.isSelected ()) { + tfAuthUser.setEnabled (true); + pfAuthPwd.setEnabled (true); + lAuthPwd.setEnabled (true); + lAuthUser.setEnabled (true); + } else { + tfAuthUser.setEnabled (false); + pfAuthPwd.setEnabled (false); + lAuthPwd.setEnabled (false); + lAuthUser.setEnabled (false); + } + } +} Index: core/options/apichanges.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/options/apichanges.xml,v retrieving revision 1.4 diff -u -r1.4 apichanges.xml --- core/options/apichanges.xml 1 Jul 2006 08:51:51 -0000 1.4 +++ core/options/apichanges.xml 14 Nov 2006 14:19:44 -0000 @@ -74,6 +74,20 @@ + + + Add an API for opening the Options dialog + + + + + +

+ OptionsCustomizer.show displays a Options dialog. +

+
+ +
Index: core/options/manifest.mf =================================================================== RCS file: /shared/data/ccvs/repository/core/options/manifest.mf,v retrieving revision 1.8 diff -u -r1.8 manifest.mf --- core/options/manifest.mf 13 Jun 2006 12:33:05 -0000 1.8 +++ core/options/manifest.mf 14 Nov 2006 14:19:44 -0000 @@ -2,4 +2,4 @@ OpenIDE-Module: org.netbeans.modules.options.api/1 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/options/Bundle.properties OpenIDE-Module-Layer: org/netbeans/modules/options/resources/mf-layer.xml -OpenIDE-Module-Specification-Version: 1.4 +OpenIDE-Module-Specification-Version: 1.5 Index: core/options/nbproject/project.xml =================================================================== RCS file: /shared/data/ccvs/repository/core/options/nbproject/project.xml,v retrieving revision 1.7 diff -u -r1.7 project.xml --- core/options/nbproject/project.xml 1 Jul 2006 08:51:51 -0000 1.7 +++ core/options/nbproject/project.xml 14 Nov 2006 14:19:44 -0000 @@ -101,8 +101,9 @@ - + + org.netbeans.api.options org.netbeans.spi.options Index: core/options/src/org/netbeans/modules/options/OptionsWindowAction.java =================================================================== RCS file: /shared/data/ccvs/repository/core/options/src/org/netbeans/modules/options/OptionsWindowAction.java,v retrieving revision 1.31 diff -u -r1.31 OptionsWindowAction.java --- core/options/src/org/netbeans/modules/options/OptionsWindowAction.java 1 Jul 2006 08:51:52 -0000 1.31 +++ core/options/src/org/netbeans/modules/options/OptionsWindowAction.java 14 Nov 2006 14:19:44 -0000 @@ -69,6 +69,10 @@ } public void actionPerformed (ActionEvent evt) { + openOptionsWindow (); + } + + public final void openOptionsWindow () { if (dialog != null) { // dialog already opened dialog.setVisible (true); /* * The contents of this file are subject to the terms of the Common Development * and Distribution License (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at http://www.netbeans.org/cddl.html * or http://www.netbeans.org/cddl.txt. * * When distributing Covered Code, include this CDDL Header Notice in each file * and include the License file at http://www.netbeans.org/cddl.txt. * If applicable, add the following below the CDDL Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * The Original Software is NetBeans. The Initial Developer of the Original * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.api.options; import org.netbeans.modules.options.OptionsWindowAction; /** The OptionsCustomizer class displays a dialog window from which the user can customize represented options. * * @author Jiri Rechtacek */ public class OptionsCustomizer { /** Shows Options dialog. */ public static final void show () { new OptionsWindowAction ().openOptionsWindow (); } }