home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 1999 March / maximum-cd-1999-03.iso / Feature / Lotus / ORGANIZE / COMPNENT / LTOUIN21.ZIP / sun / activator / panel / ProxyPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-12  |  6.0 KB  |  262 lines

  1. package sun.activator.panel;
  2.  
  3. import com.sun.java.swing.BorderFactory;
  4. import com.sun.java.swing.Box;
  5. import com.sun.java.swing.BoxLayout;
  6. import com.sun.java.swing.JCheckBox;
  7. import com.sun.java.swing.JComponent;
  8. import com.sun.java.swing.JLabel;
  9. import com.sun.java.swing.JPanel;
  10. import com.sun.java.swing.JTextField;
  11. import com.sun.java.swing.text.JTextComponent;
  12. import java.awt.Component;
  13. import java.awt.Container;
  14. import java.awt.Dimension;
  15. import java.awt.GridLayout;
  16. import java.awt.event.ActionEvent;
  17. import java.awt.event.ActionListener;
  18. import java.awt.event.KeyEvent;
  19. import java.awt.event.KeyListener;
  20. import java.util.EventObject;
  21.  
  22. public class ProxyPanel extends ActivatorSubPanel implements ActionListener, KeyListener {
  23.    private JLabel httpLabel;
  24.    private JLabel ftpLabel;
  25.    private JLabel gopherLabel;
  26.    private JTextField http;
  27.    private JTextField ftp;
  28.    private JTextField gopher;
  29.    private JTextField httpPort;
  30.    private JTextField ftpPort;
  31.    private JTextField gopherPort;
  32.    private JCheckBox useDefault;
  33.    private JCheckBox sameProxies;
  34.  
  35.    public ProxyPanel(ResourceLoader var1, ConfigurationInfo var2) {
  36.       super(var1, var2);
  37.       ((Container)this).setLayout(new BoxLayout(this, 1));
  38.       ((Container)this).add(Box.createRigidArea(new Dimension(1, 5)));
  39.       JPanel var3 = new JPanel();
  40.       ((Container)var3).setLayout(new BoxLayout(var3, 0));
  41.       this.useDefault = new JCheckBox("Use browser settings");
  42.       this.useDefault.addActionListener(this);
  43.       ((Container)var3).add(this.useDefault);
  44.       ((Container)this).add(var3);
  45.       ((Container)this).add(Box.createRigidArea(new Dimension(1, 5)));
  46.       JPanel var4 = new JPanel();
  47.       ((JComponent)var4).setMaximumSize(new Dimension(32767, 160));
  48.       JPanel var5 = new JPanel();
  49.       ((Container)var4).setLayout(new BoxLayout(var4, 1));
  50.       ((JComponent)var4).setBorder(BorderFactory.createTitledBorder("Proxy Settings"));
  51.       GridLayout var6 = new GridLayout(4, 3);
  52.       var6.setVgap(5);
  53.       var6.setHgap(10);
  54.       ((Container)var5).setLayout(var6);
  55.       this.addCenteredLabel(var5, "Type");
  56.       this.addCenteredLabel(var5, "Proxy Address");
  57.       this.addCenteredLabel(var5, "Port");
  58.       this.httpLabel = this.addCenteredLabel(var5, "HTTP");
  59.       this.http = this.addProxyTextField(var5);
  60.       this.httpPort = this.addProxyPortField(var5);
  61.       this.ftpLabel = this.addCenteredLabel(var5, "FTP");
  62.       this.ftp = this.addProxyTextField(var5);
  63.       this.ftpPort = this.addProxyPortField(var5);
  64.       this.gopherLabel = this.addCenteredLabel(var5, "Gopher:");
  65.       this.gopher = this.addProxyTextField(var5);
  66.       this.gopherPort = this.addProxyPortField(var5);
  67.       this.initProxySettings(var2.getProxySettingsString());
  68.       ((Container)var4).add(var5);
  69.       this.sameProxies = new JCheckBox("Same proxy server for all protocols");
  70.       this.sameProxies.addActionListener(this);
  71.       ((Container)var4).add(Box.createRigidArea(new Dimension(1, 5)));
  72.       ((Container)var4).add(this.sameProxies);
  73.       ((Container)var4).add(Box.createRigidArea(new Dimension(1, 5)));
  74.       this.reset();
  75.       ((Container)this).add(var4);
  76.    }
  77.  
  78.    public void actionPerformed(ActionEvent var1) {
  79.       if (((EventObject)var1).getSource() == this.useDefault) {
  80.          boolean var2 = this.useDefault.isSelected();
  81.          super.model.setDefaultProxySettings(var2);
  82.          this.reset();
  83.       }
  84.  
  85.       if (((EventObject)var1).getSource() == this.sameProxies) {
  86.          boolean var3 = this.sameProxies.isSelected();
  87.          super.model.setUseSameProxy(var3);
  88.          this.reset();
  89.       }
  90.  
  91.    }
  92.  
  93.    private JLabel addCenteredLabel(JPanel var1, String var2) {
  94.       JLabel var3 = new JLabel(var2);
  95.       var3.setHorizontalAlignment(0);
  96.       ((Container)var1).add(var3);
  97.       return var3;
  98.    }
  99.  
  100.    private JTextField addProxyPortField(JPanel var1) {
  101.       JTextField var2 = new JTextField();
  102.       ((Component)var2).addKeyListener(this);
  103.       ((Container)var1).add(var2);
  104.       return var2;
  105.    }
  106.  
  107.    private JTextField addProxyTextField(JPanel var1) {
  108.       JTextField var2 = new JTextField();
  109.       ((Component)var2).addKeyListener(this);
  110.       ((Container)var1).add(var2);
  111.       return var2;
  112.    }
  113.  
  114.    private String fillProtocolProxySetting(String var1, JTextField var2, JTextField var3) {
  115.       String var6 = var1.substring(var1.indexOf(61) + 1);
  116.       int var7 = var6.indexOf(58);
  117.       int var8 = var6.indexOf(59);
  118.       if (var8 == -1) {
  119.          var8 = var6.length();
  120.       }
  121.  
  122.       String var4;
  123.       String var5;
  124.       if (var7 != -1 && var7 < var8) {
  125.          var4 = var6.substring(0, var7);
  126.          var5 = var6.substring(var7 + 1, var8);
  127.       } else {
  128.          var4 = var6.substring(0, var8);
  129.          var5 = "";
  130.       }
  131.  
  132.       ((JTextComponent)var2).setText(var4);
  133.       ((JTextComponent)var3).setText(var5);
  134.       return var6.substring(var8);
  135.    }
  136.  
  137.    private void initProxySettings(String var1) {
  138.       if (var1 != null) {
  139.          if (var1.length() != 0) {
  140.             String var2 = var1;
  141.  
  142.             do {
  143.                String var3 = var2.substring(0, var2.indexOf(61));
  144.                if ("http".equals(var3)) {
  145.                   var2 = this.fillProtocolProxySetting(var2, this.http, this.httpPort);
  146.                }
  147.  
  148.                if (var3.endsWith("ftp")) {
  149.                   var2 = this.fillProtocolProxySetting(var2, this.ftp, this.ftpPort);
  150.                }
  151.  
  152.                if (var3.endsWith("gopher")) {
  153.                   var2 = this.fillProtocolProxySetting(var2, this.gopher, this.gopherPort);
  154.                }
  155.             } while(var2.length() != 0);
  156.  
  157.          }
  158.       }
  159.    }
  160.  
  161.    public void keyPressed(KeyEvent var1) {
  162.    }
  163.  
  164.    public void keyReleased(KeyEvent var1) {
  165.       this.setProxySettings();
  166.    }
  167.  
  168.    public void keyTyped(KeyEvent var1) {
  169.       this.setProxySettings();
  170.    }
  171.  
  172.    public void reset() {
  173.       this.initProxySettings(super.model.getProxySettingsString());
  174.       boolean var1 = super.model.useDefaultProxy();
  175.       this.useDefault.setSelected(var1);
  176.       boolean var2 = super.model.useSameProxy();
  177.       this.sameProxies.setSelected(var2);
  178.       boolean var3 = var1 ^ true;
  179.       this.setEnabled(this.sameProxies, var3);
  180.       this.setEnabled(this.httpLabel, var3);
  181.       this.setEnabled(this.http, var3);
  182.       this.setEnabled(this.httpPort, var3);
  183.       var3 = !var1 && !var2;
  184.       this.setEnabled(this.ftpLabel, var3);
  185.       this.setEnabled(this.ftp, var3);
  186.       this.setEnabled(this.ftpPort, var3);
  187.       this.setEnabled(this.gopherLabel, var3);
  188.       this.setEnabled(this.gopher, var3);
  189.       this.setEnabled(this.gopherPort, var3);
  190.    }
  191.  
  192.    private void setEnabled(JComponent var1, boolean var2) {
  193.       ((Component)var1).setEnabled(var2);
  194.       ((Component)var1).repaint();
  195.    }
  196.  
  197.    private void setProxySettings() {
  198.       StringBuffer var1 = new StringBuffer();
  199.       boolean var2 = false;
  200.       if (this.http.getText().length() != 0) {
  201.          var2 = true;
  202.          var1.append(this.http.getText());
  203.          if (this.httpPort.getText().length() != 0) {
  204.             var1.append(":");
  205.             var1.append(this.httpPort.getText());
  206.          }
  207.       }
  208.  
  209.       String var3 = var1.toString();
  210.       var1 = new StringBuffer();
  211.       if (this.sameProxies.isSelected() && var3.length() != 0) {
  212.          var1.append("http=");
  213.          var1.append(var3);
  214.          var1.append(";ftp=");
  215.          var1.append(var3);
  216.          var1.append(";gopher=");
  217.          var1.append(var3);
  218.       } else {
  219.          if (this.http.getText().length() != 0) {
  220.             var1.append("http=");
  221.             var1.append(var3);
  222.          }
  223.  
  224.          if (this.ftp.getText().length() != 0) {
  225.             if (var2) {
  226.                var1.append(";");
  227.             } else {
  228.                var2 = true;
  229.             }
  230.  
  231.             var1.append("ftp=");
  232.             var1.append(this.ftp.getText());
  233.             if (this.ftpPort.getText().length() != 0) {
  234.                var1.append(":");
  235.                var1.append(this.ftpPort.getText());
  236.             }
  237.          }
  238.  
  239.          if (this.gopher.getText().length() != 0) {
  240.             if (var2) {
  241.                var1.append(";");
  242.             }
  243.  
  244.             var1.append("gopher=");
  245.             var1.append(this.gopher.getText());
  246.             if (this.gopherPort.getText().length() != 0) {
  247.                var1.append(":");
  248.                var1.append(this.gopherPort.getText());
  249.             }
  250.          }
  251.       }
  252.  
  253.       var3 = var1.toString();
  254.       if (var3.length() != 0) {
  255.          super.model.setProxySettingsString(var3);
  256.       } else {
  257.          super.model.setProxySettingsString((String)null);
  258.       }
  259.  
  260.    }
  261. }
  262.