1 29 38 39 package org.planetamessenger.mos.forms.preferences; 40 41 import java.awt.*; 42 import java.awt.event.*; 43 import javax.swing.*; 44 import javax.swing.tree.*; 45 import javax.swing.event.*; 46 import javax.swing.text.*; 47 import javax.swing.text.html.*; 48 import java.util.*; 49 import java.awt.Dimension ; 50 import javax.swing.event.*; 51 import javax.swing.border.*; 52 import com.jgoodies.forms.builder.*; 53 import com.jgoodies.forms.layout.*; 54 import com.jgoodies.forms.debug.*; 55 import org.planetamessenger.mos.engine.*; 56 import org.planetamessenger.mos.ui.*; 57 import org.planetamessenger.plugin.*; 58 import org.planetamessenger.ui.*; 59 60 61 public class JProxySettingsPanel extends JPluginPreferencesContainer { 62 63 private JCheckBox useProxyCheck = null; 64 private JCheckBox userPwdCheck = null; 65 private JLabel userNameLabel = null; 66 private JTextField userNameText = null; 67 private JLabel passwdLabel = null; 68 private JPasswordField passwdText = null; 69 private JLabel hostLabel = null; 70 private JTextField hostText = null; 71 private JLabel portLabel = null; 72 private JTextField portText = null; 73 private JLabel httpHostLabel = null; 74 private JTextField httpHostText = null; 75 private JLabel httpPortLabel = null; 76 private JTextField httpPortText = null; 77 private ItemListener itemListener = null; 78 79 private FormLayout layout = null; 80 private PanelBuilder builder = null; 81 83 84 87 public JProxySettingsPanel() { 88 89 super(); 90 91 CellConstraints cellConst = new CellConstraints(); 92 93 layout = new FormLayout( "fill:83dlu:grow, fill:10dlu:grow, fill:83dlu:grow, fill:84dlu:grow", "fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref, 5dlu, fill:pref" ); 94 builder = new PanelBuilder( layout ); 95 97 userPwdCheck = new JCheckBox(); 98 useProxyCheck = new JCheckBox(); 99 userNameLabel = new JLabel(); 100 userNameText = new JTextField(); 101 passwdLabel = new JLabel(); 102 passwdText = new JPasswordField(); 103 hostLabel = new JLabel(); 104 hostText = new JTextField(); 105 portLabel = new JLabel(); 106 portText = new JTextField(); 107 httpHostLabel = new JLabel(); 108 httpHostText = new JTextField(); 109 httpPortLabel = new JLabel(); 110 httpPortText = new JTextField(); 111 112 hostLabel.setFont( JSystemFonts.FONT ); 113 portLabel.setFont( JSystemFonts.FONT ); 114 httpHostLabel.setFont( JSystemFonts.FONT ); 115 httpPortLabel.setFont( JSystemFonts.FONT ); 116 userNameLabel.setFont( JSystemFonts.FONT ); 117 passwdLabel.setFont( JSystemFonts.FONT ); 118 119 useProxyCheck.setFont( JSystemFonts.FONT ); 120 userPwdCheck.setFont( JSystemFonts.FONT ); 121 122 itemListener = new ItemListener() { 123 public void itemStateChanged( ItemEvent itemEvent ) { 124 itemEventChanged( true ); 125 } 126 }; 127 128 userNameText.addKeyListener( new KeyAdapter() { 129 public void keyReleased( KeyEvent keyEvt ) { 130 JSharedObjects.getKernelManager().getPreferencesManager().EnableApplyPreferencesManager( true ); 131 } 132 } ); 133 134 passwdText.addKeyListener( userNameText.getKeyListeners()[0] ); 135 hostText.addKeyListener( userNameText.getKeyListeners()[0] ); 136 portText.addKeyListener( userNameText.getKeyListeners()[0] ); 137 httpHostText.addKeyListener( userNameText.getKeyListeners()[0] ); 138 httpPortText.addKeyListener( userNameText.getKeyListeners()[0] ); 139 140 builder.setDefaultDialogBorder(); 141 builder.add( useProxyCheck, cellConst.xyw( 1, 1, 2 ) ); 142 builder.add( hostLabel, cellConst.xyw( 1, 3, 2 ) ); 143 builder.add( hostText, cellConst.xyw( 1, 5, 2 ) ); 144 builder.add( portLabel, cellConst.xyw( 1, 7, 2 ) ); 145 builder.add( portText, cellConst.xy( 1, 9 ) ); 146 builder.add( httpHostLabel, cellConst.xyw( 1, 11, 2 ) ); 147 builder.add( httpHostText, cellConst.xyw( 1, 13, 2 ) ); 148 builder.add( httpPortLabel, cellConst.xyw( 1, 15, 2 ) ); 149 builder.add( httpPortText, cellConst.xy( 1, 17 ) ); 150 builder.add( httpPortLabel, cellConst.xyw( 1, 15, 2 ) ); 151 builder.add( httpPortText, cellConst.xy( 1, 17 ) ); 152 builder.add( userPwdCheck, cellConst.xyw( 1, 19, 2 ) ); 153 builder.add( userNameLabel, cellConst.xyw( 1, 21, 2 ) ); 154 builder.add( userNameText, cellConst.xy( 1, 23 ) ); 155 builder.add( passwdLabel, cellConst.xy( 3, 21 ) ); 156 builder.add( passwdText, cellConst.xy( 3, 23 ) ); 157 } 158 159 163 private void initControls() { 164 165 useProxyCheck.removeItemListener( itemListener ); 166 userPwdCheck.removeItemListener( itemListener ); 167 168 useProxyCheck.setSelected( JSharedObjects.getProxySettings().getUseProxy() ); 169 userPwdCheck.setSelected( JSharedObjects.getProxySettings().getRequestAuth() ); 170 hostText.setText( JSharedObjects.getProxySettings().getSocksProxyHost() ); 171 portText.setText( String.valueOf( JSharedObjects.getProxySettings().getSocksProxyPort() ) ); 172 httpHostText.setText( JSharedObjects.getProxySettings().getHTTPProxyHost() ); 173 httpPortText.setText( String.valueOf( JSharedObjects.getProxySettings().getHTTPProxyPort() ) ); 174 userNameText.setText( JSharedObjects.getProxySettings().getUserName() ); 175 passwdText.setText( JSharedObjects.getProxySettings().getUserPassword() ); 176 itemEventChanged( false ); 177 178 useProxyCheck.addItemListener( itemListener ); 179 userPwdCheck.addItemListener( itemListener ); 180 } 181 182 187 private void itemEventChanged( boolean bPermitChangeApplyStatus ) { 188 189 if( useProxyCheck.isSelected() ) { 190 hostText.setEnabled( true ); 191 portText.setEnabled( true ); 192 httpHostText.setEnabled( true ); 193 httpPortText.setEnabled( true ); 194 userPwdCheck.setEnabled( true ); 195 } 196 else { 197 hostText.setEnabled( false ); 198 portText.setEnabled( false ); 199 httpHostText.setEnabled( false ); 200 httpPortText.setEnabled( false ); 201 userPwdCheck.setEnabled( false ); 202 } 203 204 if( userPwdCheck.isSelected() && useProxyCheck.isSelected() ) { 205 userNameText.setEnabled( true ); 206 passwdText.setEnabled( true ); 207 } 208 else { 209 userNameText.setEnabled( false ); 210 passwdText.setEnabled( false ); 211 } 212 213 if( bPermitChangeApplyStatus ) 214 JSharedObjects.getKernelManager().getPreferencesManager().EnableApplyPreferencesManager( true ); 215 } 216 217 221 public void onShow() { 222 223 if( getComponentCount() == 0 ) 224 add( builder.getPanel() ); 225 226 initControls(); 227 } 228 229 233 public boolean onApply() { 234 235 try { 236 boolean bUseProxy = ( useProxyCheck.isSelected() ? true : false ); 237 boolean bReqAuth = ( userPwdCheck.isSelected() ? true : false ); 238 String strSocksPortNumber = portText.getText(); 239 String strHttpPortNumber = httpPortText.getText(); 240 241 JSharedObjects.getProxySettings().update( bUseProxy, 242 hostText.getText(), 243 Integer.parseInt( ( strSocksPortNumber.trim().equals( "" ) ? "0" : strSocksPortNumber ) ), 244 httpHostText.getText(), 245 Integer.parseInt( ( strHttpPortNumber.trim().equals( "" ) ? "0" : strHttpPortNumber ) ), 246 bReqAuth, 247 userNameText.getText(), 248 new String ( passwdText.getPassword() ) ); 249 } catch( Exception e ) { 250 System.err.println( "JMOSProxySettingsPanel.onApply() - " + e ); 251 javax.swing.JOptionPane.showMessageDialog( this, JSharedObjects.getLanguageManager().getStringEx( "INVALID_PORT_NUMBER_ERROR_WARNING" ), JSharedObjects.getLanguageManager().getStringEx( "ERROR" ), javax.swing.JOptionPane.ERROR_MESSAGE ); 252 return false; 253 } 254 255 return true; 256 } 257 258 261 public void onCancel() { 262 263 } 264 265 269 public void onLookAndFeelChanged() { 270 271 javax.swing.SwingUtilities.updateComponentTreeUI( this ); 272 } 273 274 278 public void onLanguageChanged( String strCountryCode ) { 279 280 userPwdCheck.setText( JSharedObjects.getLanguageManager().getStringEx( "USER_AUTH" ) ); 281 useProxyCheck.setText( JSharedObjects.getLanguageManager().getStringEx( "USE_PROXY" ) ); 282 userNameLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "USER" ) ); 283 passwdLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "PASSWORD" ) ); 284 hostLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "PROXY_HOST" ) ); 285 portLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "PROXY_PORT" ) ); 286 httpHostLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "HTTP_PROXY_HOST" ) ); 287 httpPortLabel.setText( JSharedObjects.getLanguageManager().getStringEx( "HTTP_PROXY_PORT" ) ); 288 } 289 } 290 291 | Popular Tags |