KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > planetamessenger > mos > forms > preferences > JProxySettingsPanel


1 /*
2     =========================================================================
3     Package preferences - Preferences management panels.
4
5     This module is developed and maintained by PlanetaMessenger.org.
6     Specs, New and updated versions can be found in
7     http://www.planetamessenger.org
8     If you want contact the Team please send a email to Project Manager
9     Leidson Campos Alves Ferreira at leidson@planetamessenger.org
10
11     Copyright (C) since 2001 by PlanetaMessenger.org
12
13     This program is free software; you can redistribute it and/or modify
14     it under the terms of the GNU General Public License as published by
15     the Free Software Foundation; either version 2 of the License, or
16     (at your option) any later version.
17
18     This program is distributed in the hope that it will be useful,
19     but WITHOUT ANY WARRANTY; without even the implied warranty of
20     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21     GNU General Public License for more details.
22
23     You should have received a copy of the GNU General Public License
24     along with this program; if not, write to the Free Software
25     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26
27     =========================================================================
28 */

29 /**
30  *
31  * $Id: JProxySettingsPanel.java,v 1.13 2007/02/04 03:15:56 popolony2k Exp $
32  * $Author: popolony2k $
33  * $Name: $
34  * $Revision: 1.13 $
35  * $State: Exp $
36  *
37  */

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 JavaDoc;
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   //private DefaultFormBuilder builder = null;
82

83   
84   /**
85    * Constructor. Initialize all class data
86    */

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     //builder = new DefaultFormBuilder( layout, new FormDebugPanel() );
96

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   /**
160    * Init all window components with data
161    * stored in PM database.
162    */

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   /**
183    * Update all control state after user selection.
184    * @param bPermitChangeApplyStatus Permit or not the method change
185    * the status of Apply Button;
186    */

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   /**
218    * Initialize the component's panel to show on
219    * preferences window.
220    */

221   public void onShow() {
222
223     if( getComponentCount() == 0 )
224       add( builder.getPanel() );
225     
226     initControls();
227   }
228
229   /**
230    * Called when Apply/Ok button is triggered.
231    * Store the new configuration to PM database.
232    */

233   public boolean onApply() {
234
235     try {
236       boolean bUseProxy = ( useProxyCheck.isSelected() ? true : false );
237       boolean bReqAuth = ( userPwdCheck.isSelected() ? true : false );
238       String JavaDoc strSocksPortNumber = portText.getText();
239       String JavaDoc 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 JavaDoc( passwdText.getPassword() ) );
249     } catch( Exception JavaDoc 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   /**
259    * Called when cancel button is triggered.
260    */

261   public void onCancel() {
262
263   }
264   
265   /**
266    * Called by plugin manager when LAF is changed
267    * by user;
268    */

269   public void onLookAndFeelChanged() {
270
271     javax.swing.SwingUtilities.updateComponentTreeUI( this );
272   }
273   
274   /**
275    * Called by plugin manager when LAF is changed
276    * by user;
277    */

278   public void onLanguageChanged( String JavaDoc 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 // JProxySettingsPanel class
292
Popular Tags