View Javadoc

1   /*
2    *  XNap - A P2P framework and client.
3    *
4    *  See the file AUTHORS for copyright information.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation.
9    *
10   *  This program is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   *  GNU General Public License for more details.
14   *
15   *  You should have received a copy of the GNU General Public License
16   *  along with this program; if not, write to the Free Software
17   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18   */
19  
20  
21  package org.xnap.gui.prefs;
22  
23  import java.awt.Component;
24  import java.awt.GridBagLayout;
25  
26  import javax.help.CSH;
27  import javax.swing.JCheckBox;
28  import javax.swing.JPanel;
29  import javax.swing.JTextField;
30  
31  import org.xnap.XNap;
32  import org.xnap.gui.AbstractSettingsPanel;
33  import org.xnap.gui.action.EnableAction;
34  import org.xnap.gui.component.ValidatedTextField;
35  import org.xnap.gui.component.XNapCheckBox;
36  import org.xnap.gui.util.GUIHelper;
37  import org.xnap.gui.util.GridBagHelper;
38  
39  public class ProxyPrefsPanel extends AbstractSettingsPanel {
40      
41      //--- Data field(s) ---
42  
43      private JCheckBox jcUseHttpProxy;
44      private JTextField jteHttpProxyHost;
45      private ValidatedTextField jteHttpProxyPort;
46      private JCheckBox jcUseSocksProxy;
47      private JTextField jteSocksProxyHost;
48      private ValidatedTextField jteSocksProxyPort;
49  
50      //--- Constructor(s) ---
51  
52      public ProxyPrefsPanel()
53      {
54  		setLayout(new GridBagLayout());
55  
56  		// help
57  		CSH.setHelpIDString(this, "network-proxies");
58  
59  		// http proxy
60  		JPanel jpHttpProxy = new JPanel(new GridBagLayout());
61  		jpHttpProxy.setBorder
62  			(GUIHelper.createDefaultBorder(XNap.tr("Http Proxy")));
63  		GridBagHelper.add(this, jpHttpProxy);
64  
65          jteHttpProxyHost = new JTextField(prefs.getHttpProxyHost(), 30);
66          jteHttpProxyPort = new ValidatedTextField
67  			(prefs.getHttpProxyPort() + "", 5, ValidatedTextField.NUMBERS_INT);
68  		EnableAction acHttpProxy = new EnableAction
69  			(XNap.tr("Use Proxy"), 
70  			 new Component[] { jteHttpProxyHost, jteHttpProxyPort },
71  			 prefs.getUseHttpProxy());
72  
73  		jcUseHttpProxy = new XNapCheckBox(acHttpProxy);
74          GridBagHelper.add(jpHttpProxy, jcUseHttpProxy);
75  
76          GridBagHelper.addLabel(jpHttpProxy, XNap.tr("Host"));
77  		GridBagHelper.add(jpHttpProxy, jteHttpProxyHost);
78  	
79          GridBagHelper.addLabel(jpHttpProxy, XNap.tr("Port"));
80          GridBagHelper.add(jpHttpProxy, jteHttpProxyPort, false);
81  
82  		// help
83  		CSH.setHelpIDString(jpHttpProxy, "network-proxies-httpproxy");
84  
85  		// socks proxy
86  		JPanel jpSocksProxy = new JPanel(new GridBagLayout());
87  		jpSocksProxy.setBorder
88  			(GUIHelper.createDefaultBorder(XNap.tr("Socks 4 Proxy")));
89  
90          jteSocksProxyHost = new JTextField(prefs.getSocksProxyHost(), 30);
91          jteSocksProxyPort = new ValidatedTextField
92  			(prefs.getSocksProxyPort() + "", 5, ValidatedTextField.NUMBERS_INT);
93  		EnableAction acSocksProxy = new EnableAction
94  			(XNap.tr("Use Proxy"),
95  			 new Component[] { jteSocksProxyHost, jteSocksProxyPort }, 
96  			 prefs.getUseSocksProxy());
97  
98  		jcUseSocksProxy = new XNapCheckBox(acSocksProxy);
99          GridBagHelper.add(jpSocksProxy, jcUseSocksProxy);
100 
101         GridBagHelper.addLabel(jpSocksProxy, XNap.tr("Host"));
102 		GridBagHelper.add(jpSocksProxy, jteSocksProxyHost);
103 	
104         GridBagHelper.addLabel(jpSocksProxy, XNap.tr("Port"));
105         GridBagHelper.add(jpSocksProxy, jteSocksProxyPort, false);
106 
107 		GridBagHelper.add(this, jpSocksProxy);
108 
109 		// help
110 		CSH.setHelpIDString(jpSocksProxy, "network-proxies-socks4proxy");
111 
112 		GridBagHelper.addVerticalSpacer(this);
113     }
114 
115     public void apply() 
116     {
117 		prefs.setUseHttpProxy(jcUseHttpProxy.isSelected());
118 		prefs.setHttpProxyHost(jteHttpProxyHost.getText().trim());
119 		prefs.setHttpProxyPort(jteHttpProxyPort.getIntValue());
120 
121 		prefs.setUseSocksProxy(jcUseSocksProxy.isSelected());
122 		prefs.setSocksProxyHost(jteSocksProxyHost.getText().trim());
123 		prefs.setSocksProxyPort(jteSocksProxyPort.getIntValue());
124     }
125 
126     public String getTitle()
127     {
128 		return XNap.tr("Proxies");
129     }
130 
131 }