X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=fb0b2a4039d35e9669cfc2850ba569fc6682b3f0;hb=7664ccad29d55ad2355d72feeac23d8bdd49a2a7;hp=ca5b203a87d7c8e1f4183c5483046a1229167a39;hpb=e19524773e4547406d2ce5f9c91a536c3bc38f24;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index ca5b203..fb0b2a4 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -218,6 +218,8 @@ public class GPreferences extends JPanel /* * Connections tab components */ + protected JPanel connectTab; + protected JTable linkUrlTable = new JTable(); protected JButton editLink = new JButton(); @@ -246,6 +248,8 @@ public class GPreferences extends JPanel protected JLabel proxyAuthPasswordLabel = new JLabel(); + protected JLabel passwordNotStoredLabel = new JLabel(); + protected JTextField proxyServerHttpTB = new JTextField(); protected JTextField proxyPortHttpTB = new JTextField(); @@ -258,7 +262,7 @@ public class GPreferences extends JPanel protected JTextField proxyAuthUsernameTB = new JTextField(); - protected JTextField proxyAuthPasswordTB = new JPasswordField(); + protected JPasswordField proxyAuthPasswordTB = new JPasswordField(); protected JTextField defaultBrowser = new JTextField(); @@ -374,9 +378,19 @@ public class GPreferences extends JPanel */ public GPreferences() { + new GPreferences(0); + } + + public GPreferences(int selectTab) + { + new GPreferences(selectTab, null); + } + + public GPreferences(int selectTab, String message) + { try { - jbInit(); + jbInit(selectTab, message); } catch (Exception ex) { ex.printStackTrace(); @@ -390,8 +404,29 @@ public class GPreferences extends JPanel */ private void jbInit() throws Exception { + jbInit(0); + } + + private void jbInit(int selectTab) throws Exception + { + jbInit(selectTab, null); + } + + public final static int CONNECTIONS_TAB = 5; + + private void jbInit(int selectTab, String message) throws Exception + { final JTabbedPane tabbedPane = new JTabbedPane(); this.setLayout(new BorderLayout()); + + if (message != null) + { + JLabel messageLabel = new JLabel(message, JLabel.CENTER); + messageLabel.setFont(LABEL_FONT_BOLD); + messageLabel.setForeground(Color.RED.darker()); + this.add(messageLabel, BorderLayout.NORTH); + } + JPanel okCancelPanel = initOkCancelPanel(); this.add(tabbedPane, BorderLayout.CENTER); this.add(okCancelPanel, BorderLayout.SOUTH); @@ -459,6 +494,16 @@ public class GPreferences extends JPanel } }); + + // select a given tab - currently only for Connections + switch (selectTab) + { + case CONNECTIONS_TAB: + tabbedPane.setSelectedComponent(connectTab); + break; + default: + } + } /** @@ -638,7 +683,7 @@ public class GPreferences extends JPanel */ private JPanel initConnectionsTab() { - JPanel connectTab = new JPanel(); + connectTab = new JPanel(); connectTab.setLayout(new GridBagLayout()); // Label for browser text box @@ -953,6 +998,10 @@ public class GPreferences extends JPanel .setText(MessageManager.getString("label.password") + ": "); proxyAuthPasswordLabel.setFont(LABEL_FONT); proxyAuthPasswordLabel.setHorizontalAlignment(SwingConstants.RIGHT); + passwordNotStoredLabel.setText( + "(" + MessageManager.getString("label.not_stored") + ")"); + passwordNotStoredLabel.setFont(LABEL_FONT_ITALIC); + passwordNotStoredLabel.setHorizontalAlignment(SwingConstants.LEFT); // Proxy type radio buttons noProxy.setFont(LABEL_FONT); @@ -961,9 +1010,11 @@ public class GPreferences extends JPanel systemProxy.setFont(LABEL_FONT); systemProxy.setHorizontalAlignment(SwingConstants.LEFT); 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); @@ -997,117 +1048,137 @@ public class GPreferences extends JPanel }); setCustomProxyEnabled(); - setProxyAuthEnabled(); // Make proxy server panel JPanel proxyPanel = new JPanel(); TitledBorder titledBorder1 = new TitledBorder( MessageManager.getString("label.proxy_servers")); proxyPanel.setBorder(titledBorder1); - GridBagConstraints gbc = new GridBagConstraints(); proxyPanel.setLayout(new GridBagLayout()); - - gbc.gridx = 0; - gbc.gridy = 0; + GridBagConstraints gbc = new GridBagConstraints(); + gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1.0; - gbc.gridheight = 1; - gbc.anchor = GridBagConstraints.WEST; - gbc.fill = GridBagConstraints.BOTH; - gbc.gridwidth = 5; - proxyPanel.add(noProxy, gbc); + GridBagConstraints c = new GridBagConstraints(); + // Proxy type radio buttons (3) + JPanel ptPanel = new JPanel(); + ptPanel.setLayout(new GridBagLayout()); + c.weightx = 1.0; + c.gridy = 0; + c.gridx = 0; + c.gridwidth = 1; + c.fill = GridBagConstraints.HORIZONTAL; + ptPanel.add(noProxy, c); + c.gridy++; + ptPanel.add(systemProxy, c); + c.gridy++; + ptPanel.add(customProxy, c); - gbc.gridy++; - proxyPanel.add(systemProxy, gbc); - - gbc.gridy++; - proxyPanel.add(customProxy, gbc); - - gbc.gridwidth = 1; - gbc.gridy++; - gbc.gridx = 0; - gbc.weightx = 0.1; - proxyPanel.add(httpLabel, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.EAST; - gbc.weightx = 0.15; - proxyPanel.add(serverLabel, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.WEST; - gbc.weightx = 0.5; - proxyPanel.add(proxyServerHttpTB, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.EAST; - gbc.weightx = 0.15; - proxyPanel.add(portLabel, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.WEST; - gbc.weightx = 0.1; - proxyPanel.add(proxyPortHttpTB, gbc); + gbc.gridy = 0; + proxyPanel.add(ptPanel, gbc); + + // host and port text boxes + JPanel hpPanel = new JPanel(); + hpPanel.setLayout(new GridBagLayout()); + // HTTP host port row + c.gridy = 0; + c.gridx = 0; + + c.weightx = 0.1; + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(httpLabel, c); + + c.gridx++; + c.weightx = 0.1; + c.anchor = GridBagConstraints.LINE_END; + hpPanel.add(serverLabel, c); + + c.gridx++; + c.weightx = 1.0; + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(proxyServerHttpTB, c); + + c.gridx++; + c.weightx = 0.1; + c.anchor = GridBagConstraints.LINE_END; + hpPanel.add(portLabel, c); + + c.gridx++; + c.weightx = 0.2; + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(proxyPortHttpTB, c); + + // HTTPS host port row + c.gridy++; + c.gridx = 0; + c.gridwidth = 1; + + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(httpsLabel, c); + + c.gridx++; + c.anchor = GridBagConstraints.LINE_END; + hpPanel.add(serverLabel2, c); + + c.gridx++; + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(proxyServerHttpsTB, c); + + c.gridx++; + c.anchor = GridBagConstraints.LINE_END; + hpPanel.add(portLabel2, c); + + c.gridx++; + c.anchor = GridBagConstraints.LINE_START; + hpPanel.add(proxyPortHttpsTB, c); gbc.gridy++; - gbc.gridx = 0; - gbc.anchor = GridBagConstraints.WEST; - gbc.weightx = 0.1; - proxyPanel.add(httpsLabel, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.EAST; - gbc.weightx = 0.15; - proxyPanel.add(serverLabel2, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.WEST; - gbc.weightx = 0.5; - proxyPanel.add(proxyServerHttpsTB, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.EAST; - gbc.weightx = 0.15; - proxyPanel.add(portLabel2, gbc); - - gbc.gridx++; - gbc.anchor = GridBagConstraints.WEST; - gbc.weightx = 0.1; - proxyPanel.add(proxyPortHttpsTB, gbc); + proxyPanel.add(hpPanel, gbc); + // Require authentication checkbox 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); + // username and password + JPanel upPanel = new JPanel(); + upPanel.setLayout(new GridBagLayout()); + // username row + c.gridy = 0; + c.gridx = 0; + c.gridwidth = 1; + c.weightx = 0.4; + c.anchor = GridBagConstraints.LINE_END; + upPanel.add(proxyAuthUsernameLabel, c); + + c.gridx++; + c.weightx = 1.0; + c.anchor = GridBagConstraints.LINE_START; + upPanel.add(proxyAuthUsernameTB, c); + + // password row + c.gridy++; + c.gridx = 0; + c.weightx = 0.4; + c.anchor = GridBagConstraints.LINE_END; + upPanel.add(proxyAuthPasswordLabel, c); + + c.gridx++; + c.weightx = 1.0; + c.anchor = GridBagConstraints.LINE_START; + upPanel.add(proxyAuthPasswordTB, c); + + c.gridx++; + c.weightx = 0.4; + c.anchor = GridBagConstraints.LINE_START; + upPanel.add(passwordNotStoredLabel, c); 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); + proxyPanel.add(upPanel, 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()); @@ -1117,6 +1188,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) { @@ -3017,6 +3094,7 @@ public class GPreferences extends JPanel boolean enabled = proxyAuth.isSelected() && proxyAuth.isEnabled(); proxyAuthUsernameLabel.setEnabled(enabled); proxyAuthPasswordLabel.setEnabled(enabled); + passwordNotStoredLabel.setEnabled(enabled); proxyAuthUsernameTB.setEnabled(enabled); proxyAuthPasswordTB.setEnabled(enabled); }