home *** CD-ROM | disk | FTP | other *** search
- package sun.activator.panel;
-
- import com.sun.java.swing.BorderFactory;
- import com.sun.java.swing.Box;
- import com.sun.java.swing.BoxLayout;
- import com.sun.java.swing.JCheckBox;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JLabel;
- import com.sun.java.swing.JPanel;
- import com.sun.java.swing.JTextField;
- import com.sun.java.swing.text.JTextComponent;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.util.EventObject;
-
- public class ProxyPanel extends ActivatorSubPanel implements ActionListener, KeyListener {
- private JLabel httpLabel;
- private JLabel ftpLabel;
- private JLabel gopherLabel;
- private JTextField http;
- private JTextField ftp;
- private JTextField gopher;
- private JTextField httpPort;
- private JTextField ftpPort;
- private JTextField gopherPort;
- private JCheckBox useDefault;
- private JCheckBox sameProxies;
-
- public ProxyPanel(ResourceLoader var1, ConfigurationInfo var2) {
- super(var1, var2);
- ((Container)this).setLayout(new BoxLayout(this, 1));
- ((Container)this).add(Box.createRigidArea(new Dimension(1, 5)));
- JPanel var3 = new JPanel();
- ((Container)var3).setLayout(new BoxLayout(var3, 0));
- this.useDefault = new JCheckBox("Use browser settings");
- this.useDefault.addActionListener(this);
- ((Container)var3).add(this.useDefault);
- ((Container)this).add(var3);
- ((Container)this).add(Box.createRigidArea(new Dimension(1, 5)));
- JPanel var4 = new JPanel();
- ((JComponent)var4).setMaximumSize(new Dimension(32767, 160));
- JPanel var5 = new JPanel();
- ((Container)var4).setLayout(new BoxLayout(var4, 1));
- ((JComponent)var4).setBorder(BorderFactory.createTitledBorder("Proxy Settings"));
- GridLayout var6 = new GridLayout(4, 3);
- var6.setVgap(5);
- var6.setHgap(10);
- ((Container)var5).setLayout(var6);
- this.addCenteredLabel(var5, "Type");
- this.addCenteredLabel(var5, "Proxy Address");
- this.addCenteredLabel(var5, "Port");
- this.httpLabel = this.addCenteredLabel(var5, "HTTP");
- this.http = this.addProxyTextField(var5);
- this.httpPort = this.addProxyPortField(var5);
- this.ftpLabel = this.addCenteredLabel(var5, "FTP");
- this.ftp = this.addProxyTextField(var5);
- this.ftpPort = this.addProxyPortField(var5);
- this.gopherLabel = this.addCenteredLabel(var5, "Gopher:");
- this.gopher = this.addProxyTextField(var5);
- this.gopherPort = this.addProxyPortField(var5);
- this.initProxySettings(var2.getProxySettingsString());
- ((Container)var4).add(var5);
- this.sameProxies = new JCheckBox("Same proxy server for all protocols");
- this.sameProxies.addActionListener(this);
- ((Container)var4).add(Box.createRigidArea(new Dimension(1, 5)));
- ((Container)var4).add(this.sameProxies);
- ((Container)var4).add(Box.createRigidArea(new Dimension(1, 5)));
- this.reset();
- ((Container)this).add(var4);
- }
-
- public void actionPerformed(ActionEvent var1) {
- if (((EventObject)var1).getSource() == this.useDefault) {
- boolean var2 = this.useDefault.isSelected();
- super.model.setDefaultProxySettings(var2);
- this.reset();
- }
-
- if (((EventObject)var1).getSource() == this.sameProxies) {
- boolean var3 = this.sameProxies.isSelected();
- super.model.setUseSameProxy(var3);
- this.reset();
- }
-
- }
-
- private JLabel addCenteredLabel(JPanel var1, String var2) {
- JLabel var3 = new JLabel(var2);
- var3.setHorizontalAlignment(0);
- ((Container)var1).add(var3);
- return var3;
- }
-
- private JTextField addProxyPortField(JPanel var1) {
- JTextField var2 = new JTextField();
- ((Component)var2).addKeyListener(this);
- ((Container)var1).add(var2);
- return var2;
- }
-
- private JTextField addProxyTextField(JPanel var1) {
- JTextField var2 = new JTextField();
- ((Component)var2).addKeyListener(this);
- ((Container)var1).add(var2);
- return var2;
- }
-
- private String fillProtocolProxySetting(String var1, JTextField var2, JTextField var3) {
- String var6 = var1.substring(var1.indexOf(61) + 1);
- int var7 = var6.indexOf(58);
- int var8 = var6.indexOf(59);
- if (var8 == -1) {
- var8 = var6.length();
- }
-
- String var4;
- String var5;
- if (var7 != -1 && var7 < var8) {
- var4 = var6.substring(0, var7);
- var5 = var6.substring(var7 + 1, var8);
- } else {
- var4 = var6.substring(0, var8);
- var5 = "";
- }
-
- ((JTextComponent)var2).setText(var4);
- ((JTextComponent)var3).setText(var5);
- return var6.substring(var8);
- }
-
- private void initProxySettings(String var1) {
- if (var1 != null) {
- if (var1.length() != 0) {
- String var2 = var1;
-
- do {
- String var3 = var2.substring(0, var2.indexOf(61));
- if ("http".equals(var3)) {
- var2 = this.fillProtocolProxySetting(var2, this.http, this.httpPort);
- }
-
- if (var3.endsWith("ftp")) {
- var2 = this.fillProtocolProxySetting(var2, this.ftp, this.ftpPort);
- }
-
- if (var3.endsWith("gopher")) {
- var2 = this.fillProtocolProxySetting(var2, this.gopher, this.gopherPort);
- }
- } while(var2.length() != 0);
-
- }
- }
- }
-
- public void keyPressed(KeyEvent var1) {
- }
-
- public void keyReleased(KeyEvent var1) {
- this.setProxySettings();
- }
-
- public void keyTyped(KeyEvent var1) {
- this.setProxySettings();
- }
-
- public void reset() {
- this.initProxySettings(super.model.getProxySettingsString());
- boolean var1 = super.model.useDefaultProxy();
- this.useDefault.setSelected(var1);
- boolean var2 = super.model.useSameProxy();
- this.sameProxies.setSelected(var2);
- boolean var3 = var1 ^ true;
- this.setEnabled(this.sameProxies, var3);
- this.setEnabled(this.httpLabel, var3);
- this.setEnabled(this.http, var3);
- this.setEnabled(this.httpPort, var3);
- var3 = !var1 && !var2;
- this.setEnabled(this.ftpLabel, var3);
- this.setEnabled(this.ftp, var3);
- this.setEnabled(this.ftpPort, var3);
- this.setEnabled(this.gopherLabel, var3);
- this.setEnabled(this.gopher, var3);
- this.setEnabled(this.gopherPort, var3);
- }
-
- private void setEnabled(JComponent var1, boolean var2) {
- ((Component)var1).setEnabled(var2);
- ((Component)var1).repaint();
- }
-
- private void setProxySettings() {
- StringBuffer var1 = new StringBuffer();
- boolean var2 = false;
- if (this.http.getText().length() != 0) {
- var2 = true;
- var1.append(this.http.getText());
- if (this.httpPort.getText().length() != 0) {
- var1.append(":");
- var1.append(this.httpPort.getText());
- }
- }
-
- String var3 = var1.toString();
- var1 = new StringBuffer();
- if (this.sameProxies.isSelected() && var3.length() != 0) {
- var1.append("http=");
- var1.append(var3);
- var1.append(";ftp=");
- var1.append(var3);
- var1.append(";gopher=");
- var1.append(var3);
- } else {
- if (this.http.getText().length() != 0) {
- var1.append("http=");
- var1.append(var3);
- }
-
- if (this.ftp.getText().length() != 0) {
- if (var2) {
- var1.append(";");
- } else {
- var2 = true;
- }
-
- var1.append("ftp=");
- var1.append(this.ftp.getText());
- if (this.ftpPort.getText().length() != 0) {
- var1.append(":");
- var1.append(this.ftpPort.getText());
- }
- }
-
- if (this.gopher.getText().length() != 0) {
- if (var2) {
- var1.append(";");
- }
-
- var1.append("gopher=");
- var1.append(this.gopher.getText());
- if (this.gopherPort.getText().length() != 0) {
- var1.append(":");
- var1.append(this.gopherPort.getText());
- }
- }
- }
-
- var3 = var1.toString();
- if (var3.length() != 0) {
- super.model.setProxySettingsString(var3);
- } else {
- super.model.setProxySettingsString((String)null);
- }
-
- }
- }
-