X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=67da0f4ed49ccf9502219b85980faa85d44f9554;hb=245686954f67953e2dda80efc8c7a5c6d6b965e1;hp=4ac18255504f3b1a0258658f1acf8cba4e465f05;hpb=c9d2ded3b38b5f48496c33467f4037af125b15b2;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index 4ac1825..67da0f4 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,36 +945,61 @@ 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], + displayUserHostPort(Cache.startupProxyProperties[4], + Cache.startupProxyProperties[0], Cache.startupProxyProperties[1]), - displayHostPort(Cache.startupProxyProperties[2], + displayUserHostPort(Cache.startupProxyProperties[6], + Cache.startupProxyProperties[2], 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(); + // Make proxy server panel JPanel proxyPanel = new JPanel(); TitledBorder titledBorder1 = new TitledBorder( @@ -1036,33 +1076,39 @@ 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; } - private String displayHostPort(String host, String port) + private String displayUserHostPort(String user, String host, String port) { boolean hostBlank = (host == null || host.isEmpty()); boolean portBlank = (port == null || port.isEmpty()); @@ -1072,6 +1118,12 @@ public class GPreferences extends JPanel } StringBuilder sb = new StringBuilder(); + if (user != null) + { + sb.append(user.isEmpty() || user.indexOf(" ") > -1 ? '"' + user + '"' + : user); + sb.append("@"); + } sb.append(hostBlank ? "" : host); if (!portBlank) { @@ -2967,17 +3019,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(); } /**