From e19524773e4547406d2ce5f9c91a536c3bc38f24 Mon Sep 17 00:00:00 2001 From: Ben Soares Date: Tue, 21 Jul 2020 20:47:18 +0100 Subject: [PATCH] JAL-3633 Added Preferences for Proxy Authentication. No jalview_properties yet --- resources/lang/Messages.properties | 3 + resources/lang/Messages_es.properties | 3 + src/jalview/jbgui/GPreferences.java | 130 +++++++++++++++++++++++++-------- 3 files changed, 105 insertions(+), 31 deletions(-) diff --git a/resources/lang/Messages.properties b/resources/lang/Messages.properties index a74109a..44bff1d 100644 --- a/resources/lang/Messages.properties +++ b/resources/lang/Messages.properties @@ -587,6 +587,9 @@ label.url_linkfrom_sequence_id = URL link from Sequence ID label.no_proxy = No proxy servers label.system_proxy = System proxy servers (http={0}; https={1}) label.use_proxy_server = Use these proxy servers +label.auth_required = Authentication required +label.username = Username +label.password = Password label.rendering_style = {0} rendering style label.append_start_end = Append /start-end (/15-380) label.full_sequence_id = Full Sequence Id diff --git a/resources/lang/Messages_es.properties b/resources/lang/Messages_es.properties index d16e9d6..fdf4201 100644 --- a/resources/lang/Messages_es.properties +++ b/resources/lang/Messages_es.properties @@ -541,6 +541,9 @@ label.url_linkfrom_sequence_id = URL del enlace del ID de la secuencia label.no_proxy = Sin servidores proxy label.system_proxy = Servidores proxy del sistema (http={0}; https={1}) label.use_proxy_server = Utilizar estos servidores proxy +label.auth_required = Autenticacion requerida +label.username = Usario +label.password = Contraseña label.rendering_style = Estilo de visualización {0} label.append_start_end = Añadir /inicio-fin (/15-380) label.full_sequence_id = ID de la secuencia completo diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index 4ac1825..ca5b203 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -51,6 +51,7 @@ import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JSpinner; @@ -241,6 +242,10 @@ public class GPreferences extends JPanel protected JLabel serverLabel2 = new JLabel(); + protected JLabel proxyAuthUsernameLabel = new JLabel(); + + protected JLabel proxyAuthPasswordLabel = new JLabel(); + protected JTextField proxyServerHttpTB = new JTextField(); protected JTextField proxyPortHttpTB = new JTextField(); @@ -249,6 +254,12 @@ public class GPreferences extends JPanel protected JTextField proxyPortHttpsTB = new JTextField(); + protected JCheckBox proxyAuth = new JCheckBox(); + + protected JTextField proxyAuthUsernameTB = new JTextField(); + + protected JTextField proxyAuthPasswordTB = new JPasswordField(); + protected JTextField defaultBrowser = new JTextField(); protected ButtonGroup proxyType = new ButtonGroup(); @@ -914,6 +925,10 @@ public class GPreferences extends JPanel proxyServerHttpsTB.setColumns(40); proxyPortHttpsTB.setFont(LABEL_FONT); proxyPortHttpsTB.setColumns(4); + proxyAuthUsernameTB.setFont(LABEL_FONT); + proxyAuthUsernameTB.setColumns(30); + proxyAuthPasswordTB.setFont(LABEL_FONT); + proxyAuthPasswordTB.setColumns(30); // Label for Port text box portLabel.setFont(LABEL_FONT); @@ -930,14 +945,21 @@ public class GPreferences extends JPanel httpsLabel.setFont(LABEL_FONT_BOLD); httpsLabel.setHorizontalAlignment(SwingConstants.LEFT); + proxyAuthUsernameLabel + .setText(MessageManager.getString("label.username") + ": "); + proxyAuthUsernameLabel.setFont(LABEL_FONT); + proxyAuthUsernameLabel.setHorizontalAlignment(SwingConstants.RIGHT); + proxyAuthPasswordLabel + .setText(MessageManager.getString("label.password") + ": "); + proxyAuthPasswordLabel.setFont(LABEL_FONT); + proxyAuthPasswordLabel.setHorizontalAlignment(SwingConstants.RIGHT); + // Proxy type radio buttons noProxy.setFont(LABEL_FONT); noProxy.setHorizontalAlignment(SwingConstants.LEFT); - // noProxy.setHorizontalTextPosition(SwingConstants.LEADING); noProxy.setText(MessageManager.getString("label.no_proxy")); systemProxy.setFont(LABEL_FONT); systemProxy.setHorizontalAlignment(SwingConstants.LEFT); - // systemProxy.setHorizontalTextPosition(SwingConstants.LEADING); systemProxy.setText(MessageManager.formatMessage("label.system_proxy", displayHostPort(Cache.startupProxyProperties[0], Cache.startupProxyProperties[1]), @@ -945,21 +967,38 @@ public class GPreferences extends JPanel Cache.startupProxyProperties[3]))); customProxy.setFont(LABEL_FONT); customProxy.setHorizontalAlignment(SwingConstants.LEFT); - // customProxy.setHorizontalTextPosition(SwingConstants.LEADING); - customProxy.addActionListener(new ActionListener() + customProxy.setText( + MessageManager.getString("label.use_proxy_server") + ":"); + ActionListener al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - customProxy_actionPerformed(); + proxyType_actionPerformed(); } - }); - customProxy.setText( - MessageManager.getString("label.use_proxy_server") + ":"); + }; + noProxy.addActionListener(al); + systemProxy.addActionListener(al); + customProxy.addActionListener(al); proxyType.add(noProxy); proxyType.add(systemProxy); proxyType.add(customProxy); + proxyAuth.setFont(LABEL_FONT); + proxyAuth.setHorizontalAlignment(SwingConstants.LEFT); + proxyAuth.setText(MessageManager.getString("label.auth_required")); + proxyAuth.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + proxyAuth_actionPerformed(); + } + }); + + setCustomProxyEnabled(); + setProxyAuthEnabled(); + // Make proxy server panel JPanel proxyPanel = new JPanel(); TitledBorder titledBorder1 = new TitledBorder( @@ -1036,28 +1075,34 @@ public class GPreferences extends JPanel gbc.weightx = 0.1; proxyPanel.add(proxyPortHttpsTB, gbc); - /* - proxyPanel.add(serverLabel, - new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(0, 2, 2, 0), 5, 0)); - proxyPanel.add(portLabel, - new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(0, 0, 2, 0), 11, 0)); - proxyPanel.add(useProxy, - new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(0, 2, 5, 185), 2, -4)); - proxyPanel.add(proxyPortTB, - new GridBagConstraints(3, 1, 1, 1, 1.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 2, 2), 54, 1)); - proxyPanel.add(proxyServerTB, - new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 2, 0), 263, 1)); - */ + gbc.gridy++; + gbc.gridx = 0; + gbc.gridwidth = 5; + gbc.anchor = GridBagConstraints.WEST; + gbc.weightx = 0.1; + proxyPanel.add(proxyAuth, gbc); + + gbc.gridy++; + gbc.gridx = 0; + gbc.gridwidth = 1; + gbc.anchor = GridBagConstraints.EAST; + proxyPanel.add(proxyAuthUsernameLabel, gbc); + + gbc.gridx++; + gbc.gridwidth = 4; + gbc.anchor = GridBagConstraints.WEST; + proxyPanel.add(proxyAuthUsernameTB, gbc); + + gbc.gridy++; + gbc.gridx = 0; + gbc.gridwidth = 1; + gbc.anchor = GridBagConstraints.EAST; + proxyPanel.add(proxyAuthPasswordLabel, gbc); + + gbc.gridx++; + gbc.gridwidth = 4; + gbc.anchor = GridBagConstraints.WEST; + proxyPanel.add(proxyAuthPasswordTB, gbc); return proxyPanel; } @@ -2967,17 +3012,40 @@ public class GPreferences extends JPanel } - public void customProxy_actionPerformed() + public void setProxyAuthEnabled() + { + boolean enabled = proxyAuth.isSelected() && proxyAuth.isEnabled(); + proxyAuthUsernameLabel.setEnabled(enabled); + proxyAuthPasswordLabel.setEnabled(enabled); + proxyAuthUsernameTB.setEnabled(enabled); + proxyAuthPasswordTB.setEnabled(enabled); + } + + public void setCustomProxyEnabled() { boolean enabled = customProxy.isSelected(); portLabel.setEnabled(enabled); serverLabel.setEnabled(enabled); + portLabel2.setEnabled(enabled); + serverLabel2.setEnabled(enabled); httpLabel.setEnabled(enabled); httpsLabel.setEnabled(enabled); proxyServerHttpTB.setEnabled(enabled); proxyPortHttpTB.setEnabled(enabled); proxyServerHttpsTB.setEnabled(enabled); proxyPortHttpsTB.setEnabled(enabled); + proxyAuth.setEnabled(enabled); + setProxyAuthEnabled(); + } + + public void proxyType_actionPerformed() + { + setCustomProxyEnabled(); + } + + public void proxyAuth_actionPerformed() + { + setProxyAuthEnabled(); } /** -- 1.7.10.2