daily pastebin goal
16%
SHARE
TWEET

Untitled

a guest Mar 16th, 2018 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package jd.gui.swing.dialog;
  2.  
  3. import java.awt.event.ActionEvent;
  4.  
  5. import javax.swing.JComboBox;
  6. import javax.swing.JComponent;
  7. import javax.swing.JLabel;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTextField;
  10. import javax.swing.event.CaretEvent;
  11. import javax.swing.event.CaretListener;
  12.  
  13. import jd.controlling.JDLogger;
  14. import net.miginfocom.swing.MigLayout;
  15.  
  16. import org.appwork.utils.BinaryLogic;
  17. import org.appwork.utils.net.httpconnection.HTTPProxy;
  18. import org.appwork.utils.swing.dialog.AbstractDialog;
  19. import org.appwork.utils.swing.dialog.Dialog;
  20. import org.jdownloader.gui.translate._GUI;
  21. import org.jdownloader.images.NewTheme;
  22.  
  23. public class ProxyDialog extends AbstractDialog<HTTPProxy> implements
  24.         CaretListener {
  25.  
  26.     private static final long serialVersionUID = 8512889396415100663L;
  27.  
  28.     private JComboBox cmbType;
  29.     private JTextField txtHost;
  30.     private JTextField txtPort;
  31.     private JTextField txtUser;
  32.     private JTextField txtPass;
  33.  
  34.     private final String[] types = new String[] {
  35.             _GUI._.jd_gui_swing_dialog_ProxyDialog_http(),
  36.             _GUI._.jd_gui_swing_dialog_ProxyDialog_socks5(),
  37.             _GUI._.jd_gui_swing_dialog_ProxyDialog_Liste() };
  38.     private JLabel lblUser;
  39.     private JLabel lblPass;
  40.     private JLabel lblPort;
  41.     private JLabel lblHost;
  42.  
  43.     private Object OpenFileAction;
  44.  
  45.     public ProxyDialog() {
  46.         super(0, _GUI._.jd_gui_swing_dialog_ProxyDialog_title(), NewTheme.I()
  47.                 .getIcon("proxy", 32), null, null);
  48.     }
  49.  
  50.     @Override
  51.     public JComponent layoutDialogContent() {
  52.         JPanel panel = new JPanel(new MigLayout("ins 0, wrap 4",
  53.                 "[][grow 10,fill][][grow 3,fill]"));
  54.  
  55.         panel.add(new JLabel(_GUI._.jd_gui_swing_dialog_ProxyDialog_type()));
  56.         panel.add(cmbType = new JComboBox(types), "spanx");
  57.         cmbType.addActionListener(this);
  58.         panel.add(lblHost = new JLabel(_GUI._
  59.                 .jd_gui_swing_dialog_ProxyDialog_hostport()));
  60.         panel.add(txtHost = new JTextField());
  61.         txtHost.addCaretListener(this);
  62.         panel.add(lblPort = new JLabel(":"));
  63.         panel.add(txtPort = new JTextField(), "shrinkx");
  64.         txtPort.addCaretListener(this);
  65.  
  66.         panel.add(lblUser = new JLabel(_GUI._
  67.                 .jd_gui_swing_dialog_ProxyDialog_username()));
  68.         panel.add(txtUser = new JTextField(), "spanx");
  69.  
  70.         panel.add(lblPass = new JLabel(_GUI._
  71.                 .jd_gui_swing_dialog_ProxyDialog_password()));
  72.         panel.add(txtPass = new JTextField(), "spanx");
  73.         this.okButton.setEnabled(false);
  74.         return panel;
  75.     }
  76.  
  77.     @Override
  78.     public void actionPerformed(final ActionEvent e) {
  79.         if (e.getSource() == cmbType) {
  80.             boolean setVisible = false;
  81.             if (cmbType.getSelectedIndex() == 2) {
  82.                 setVisible = false;
  83.                 lblHost.setText(_GUI._.jd_gui_swing_dialog_ProxyDialog_hostip());
  84.  
  85.             } else {
  86.                 setVisible = true;
  87.                 lblHost.setText(_GUI._
  88.                         .jd_gui_swing_dialog_ProxyDialog_hostport());
  89.             }
  90.             txtPort.setVisible(setVisible);
  91.             lblPort.setVisible(setVisible);
  92.             txtUser.setVisible(setVisible);
  93.             lblUser.setVisible(setVisible);
  94.             txtPass.setVisible(setVisible);
  95.             lblPass.setVisible(setVisible);
  96.         } else {
  97.             super.actionPerformed(e);
  98.         }
  99.     }
  100.  
  101.     /**
  102.      * returns HTTPProxy for given settings
  103.      */
  104.     @Override
  105.     protected HTTPProxy createReturnValue() {
  106.         final int mask = getReturnmask();
  107.         if (BinaryLogic.containsSome(mask, Dialog.RETURN_CLOSED))
  108.             return null;
  109.         if (BinaryLogic.containsSome(mask, Dialog.RETURN_CANCEL))
  110.             return null;
  111.         try {
  112.  
  113.             HTTPProxy.TYPE type = null;
  114.             if (cmbType.getSelectedIndex() == 0) {
  115.                 type = HTTPProxy.TYPE.HTTP;
  116.             } else if (cmbType.getSelectedIndex() == 1) {
  117.                 type = HTTPProxy.TYPE.SOCKS5;
  118.             }
  119.  
  120.             else {
  121.                 return null;
  122.             }
  123.             HTTPProxy ret = new HTTPProxy(type, txtHost.getText(),
  124.                     Integer.parseInt(txtPort.getText().trim()));
  125.  
  126.             ret.setPass(txtPass.getText());
  127.             ret.setUser(txtUser.getText());
  128.  
  129.             return ret;
  130.         } catch (final Throwable e) {
  131.             JDLogger.exception(e);
  132.             return null;
  133.         }
  134.     }
  135.  
  136.     /**
  137.      * update okayButton enabled status, check if host/port(valid number) or
  138.      * host is given
  139.      */
  140.     public void caretUpdate(CaretEvent e) {
  141.         boolean enable = false;
  142.         try {
  143.             if (cmbType.getSelectedIndex() != 2) {
  144.                 if (txtHost.getDocument().getLength() > 0
  145.                         && txtPort.getDocument().getLength() > 0) {
  146.                     try {
  147.                         int port = Integer.parseInt(txtPort.getText());
  148.                         if (port > 0 && port < 65535) {
  149.                             enable = true;
  150.                         }
  151.                     } catch (final Throwable ee) {
  152.                     }
  153.                 }
  154.             } else {
  155.                 if (txtHost.getDocument().getLength() > 0) {
  156.                     enable = true;
  157.                 }
  158.             }
  159.         } finally {
  160.             this.okButton.setEnabled(enable);
  161.         }
  162.     }
  163.  
  164. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top