label.prot_alignment_colour = Protein Alignment Colour
label.nuc_alignment_colour = Nucleotide Alignment Colour
label.address = Address
+label.host = Host
label.port = Port
label.default_browser_unix = Default Browser (Unix)
label.send_usage_statistics = Send usage statistics
label.check_for_questionnaires = Check for questionnaires
label.check_for_latest_version = Check for latest version
label.url_linkfrom_sequence_id = URL link from Sequence ID
-label.use_proxy_server = Use a proxy server
+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.rendering_style = {0} rendering style
label.append_start_end = Append /start-end (/15-380)
label.full_sequence_id = Full Sequence Id
#label.scroll_highlighted_regions = Desplazarse hasta las regiones resaltadas
label.gap_symbol = Símbolo del hueco
label.address = Dirección
+label.host = Host
label.port = Puerto
label.default_browser_unix = Navegador por defecto (Unix)
label.send_usage_statistics = Enviar estadísticas de uso
label.check_for_questionnaires = Comprobar los cuestionarios
label.check_for_latest_version = Comprobar la última versión
label.url_linkfrom_sequence_id = URL del enlace del ID de la secuencia
-label.use_proxy_server = Utilizar un servidor proxy
+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.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
*/
public static Logger log;
+ // save the proxy properties set at startup
+ public final static String[] startupProxyProperties = {
+ System.getProperty("http.proxyHost"),
+ System.getProperty("http.proxyPort"),
+ System.getProperty("https.proxyHost"),
+ System.getProperty("https.proxyPort") };
+
/** Jalview Properties */
public static Properties applicationProperties = new Properties()
{
System.out.println("Error reading properties file: " + ex);
}
}
+
+ /* TO BE REPLACED WITH PROXY_TYPE SETTINGS
if (getDefault("USE_PROXY", false))
{
String proxyServer = getDefault("PROXY_SERVER", ""),
proxyPort = getDefault("PROXY_PORT", "8080");
+ }
+ */
- System.out.println("Using proxyServer: " + proxyServer
- + " proxyPort: " + proxyPort);
-
- System.setProperty("http.proxyHost", proxyServer);
- System.setProperty("http.proxyPort", proxyPort);
+ // PROXY TYPE settings (now three options "none", "false", "true", but using
+ // backward compatible strings)
+ String proxyType = getDefault("USE_PROXY", "false");
+ // default to upgrading old settings
+ switch (proxyType)
+ {
+ case "none":
+ setProxyProperties(null, null, null, null);
+ break;
+ case "false": // use system settings
+ resetProxyProperties();
+ break;
+ case "true": // use specified proxy settings
+ String httpHost = getDefault("PROXY_SERVER", "");
+ String httpPort = getDefault("PROXY_PORT", "8080");
+ String httpsHost = getDefault("PROXY_SERVER_HTTPS", httpHost);
+ String httpsPort = getDefault("PROXY_PORT_HTTPS", httpPort);
+ setProxyProperties(httpHost, httpPort, httpsHost, httpsPort);
+ break;
+ default:
+ String message = "Incorrect PROXY_TYPE - should be 'none' (clear proxy properties), 'false' (system settings), 'true' (custom settings): "
+ + proxyType;
+ if (Cache.log == null)
+ {
+ System.out.println(message);
+ }
+ else
+ {
+ Cache.log.warn(message);
+ }
}
// LOAD THE AUTHORS FROM THE authors.props file
t.printStackTrace(pw);
return sw.toString();
}
+
+ // proxy properties methods
+ public static void resetProxyProperties()
+ {
+ setProxyProperties(startupProxyProperties[0], startupProxyProperties[1],
+ startupProxyProperties[2], startupProxyProperties[3]);
+ StringBuilder sb = new StringBuilder();
+ sb.append("Setting proxy properties to: http.proxyHost=")
+ .append(startupProxyProperties[0]).append(", http.proxyPort=")
+ .append(startupProxyProperties[1]).append(", https.proxyHost=")
+ .append(startupProxyProperties[2]).append(", https.proxyPort=")
+ .append(startupProxyProperties[3]);
+ if (Cache.log == null)
+ {
+ System.err.println(sb.toString());
+ }
+ else
+ {
+ Cache.log.debug(sb.toString());
+ }
+ }
+
+ public static void setProxyProperties(String host, String port)
+ {
+ setProxyProperties(host, port, host, port);
+ }
+
+ public static void setProxyProperties(String httpHost, String httpPort,
+ String httpsHost, String httpsPort)
+ {
+ // cannot set property to null -- use clearProperty instead
+
+ // http.proxyHost
+ if (httpHost == null)
+ {
+ System.clearProperty("http.proxyHost");
+ }
+ else
+ {
+ System.setProperty("http.proxyHost", httpHost);
+ }
+
+ // http.proxyPort
+ if (httpPort == null)
+ {
+ System.clearProperty("http.proxyPort");
+ }
+ else
+ {
+ System.setProperty("http.proxyPort", httpPort);
+ }
+
+ // https.proxyHost
+ if (httpsHost == null)
+ {
+ System.clearProperty("https.proxyHost");
+ }
+ else
+ {
+ System.setProperty("https.proxyHost", httpsHost);
+ }
+
+ // https.proxyPort
+ if (httpsPort == null)
+ {
+ System.clearProperty("https.proxyPort");
+ }
+ else
+ {
+ System.setProperty("https.proxyPort", httpsPort);
+ }
+
+ }
}
}
}
- useProxy.setSelected(Cache.getDefault("USE_PROXY", false));
- useProxy_actionPerformed(); // make sure useProxy is correctly initialised
- proxyServerTB.setText(Cache.getDefault("PROXY_SERVER", ""));
- proxyPortTB.setText(Cache.getDefault("PROXY_PORT", ""));
+ String proxyTypeString = Cache.getDefault("USE_PROXY", "false");
+ switch (proxyTypeString)
+ {
+ case "none":
+ proxyType.setSelected(noProxy.getModel(), true);
+ break;
+ case "false":
+ proxyType.setSelected(systemProxy.getModel(), true);
+ break;
+ case "true":
+ proxyType.setSelected(customProxy.getModel(), true);
+ break;
+ default:
+ String message = "Incorrect PROXY_TYPE - should be 'none' (clear proxy properties), 'false' (system settings), 'true' (custom settings): "
+ + proxyTypeString;
+ Cache.log.warn(message);
+ }
+ proxyServerHttpTB.setText(Cache.getDefault("PROXY_SERVER", ""));
+ proxyPortHttpTB.setText(Cache.getDefault("PROXY_PORT", ""));
+ proxyServerHttpsTB.setText(Cache.getDefault("PROXY_SERVER_HTTPS", ""));
+ proxyPortHttpsTB.setText(Cache.getDefault("PROXY_PORT_HTTPS", ""));
defaultBrowser.setText(Cache.getDefault("DEFAULT_BROWSER", ""));
sequenceUrlLinks.getPrimaryUrlId());
Cache.applicationProperties.setProperty("USE_PROXY",
- Boolean.toString(useProxy.isSelected()));
+ customProxy.isSelected() ? "true"
+ : noProxy.isSelected() ? "none" : "false");
+
+ Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText());
- Cache.setOrRemove("PROXY_SERVER", proxyServerTB.getText());
+ Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText());
- Cache.setOrRemove("PROXY_PORT", proxyPortTB.getText());
+ Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText());
- if (useProxy.isSelected())
+ Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText());
+
+ if (noProxy.isSelected())
{
- System.setProperty("http.proxyHost", proxyServerTB.getText());
- System.setProperty("http.proxyPort", proxyPortTB.getText());
+ Cache.log.warn("Setting no proxy settings");
+ Cache.setProxyProperties(null, null, null, null);
}
- else
+ else if (customProxy.isSelected())
{
- System.setProperty("http.proxyHost", "");
- System.setProperty("http.proxyPort", "");
+ Cache.log.warn("Setting custom proxy settings");
+ Cache.setProxyProperties(proxyServerHttpTB.getText(),
+ proxyPortHttpTB.getText(), proxyServerHttpsTB.getText(),
+ proxyPortHttpsTB.getText());
}
+ else // systemProxy should be selected and is sensible default
+ {
+ Cache.log.warn("Setting system proxy settings");
+ Cache.resetProxyProperties();
+ }
+
Cache.setProperty("VERSION_CHECK",
Boolean.toString(versioncheck.isSelected()));
if (Cache.getProperty("USAGESTATS") != null || usagestats.isSelected())
protected JButton userOnly = new JButton();
+ protected JLabel httpLabel = new JLabel();
+
+ protected JLabel httpsLabel = new JLabel();
+
protected JLabel portLabel = new JLabel();
protected JLabel serverLabel = new JLabel();
- protected JTextField proxyServerTB = new JTextField();
+ protected JLabel portLabel2 = new JLabel();
+
+ protected JLabel serverLabel2 = new JLabel();
+
+ protected JTextField proxyServerHttpTB = new JTextField();
- protected JTextField proxyPortTB = new JTextField();
+ protected JTextField proxyPortHttpTB = new JTextField();
+
+ protected JTextField proxyServerHttpsTB = new JTextField();
+
+ protected JTextField proxyPortHttpsTB = new JTextField();
protected JTextField defaultBrowser = new JTextField();
- protected JCheckBox useProxy = new JCheckBox();
+ protected ButtonGroup proxyType = new ButtonGroup();
+
+ protected JRadioButton noProxy = new JRadioButton();
+
+ protected JRadioButton systemProxy = new JRadioButton();
+
+ protected JRadioButton customProxy = new JRadioButton();
protected JCheckBox usagestats = new JCheckBox();
private JPanel initConnTabProxyPanel()
{
// Label for server text box
- serverLabel.setText(MessageManager.getString("label.address"));
+ serverLabel.setText(MessageManager.getString("label.host") + ": ");
serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);
serverLabel.setFont(LABEL_FONT);
+ serverLabel2.setText(MessageManager.getString("label.host") + ": ");
+ serverLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
+ serverLabel2.setFont(LABEL_FONT);
// Proxy server and port text boxes
- proxyServerTB.setFont(LABEL_FONT);
- proxyPortTB.setFont(LABEL_FONT);
+ proxyServerHttpTB.setFont(LABEL_FONT);
+ proxyServerHttpTB.setColumns(40);
+ proxyPortHttpTB.setFont(LABEL_FONT);
+ proxyPortHttpTB.setColumns(4);
+ proxyServerHttpsTB.setFont(LABEL_FONT);
+ proxyServerHttpsTB.setColumns(40);
+ proxyPortHttpsTB.setFont(LABEL_FONT);
+ proxyPortHttpsTB.setColumns(4);
// Label for Port text box
portLabel.setFont(LABEL_FONT);
portLabel.setHorizontalAlignment(SwingConstants.RIGHT);
- portLabel.setText(MessageManager.getString("label.port"));
-
- // Use proxy server checkbox
- useProxy.setFont(LABEL_FONT);
- useProxy.setHorizontalAlignment(SwingConstants.RIGHT);
- useProxy.setHorizontalTextPosition(SwingConstants.LEADING);
- useProxy.setText(MessageManager.getString("label.use_proxy_server"));
- useProxy.addActionListener(new ActionListener()
+ portLabel.setText(MessageManager.getString("label.port") + ": ");
+ portLabel2.setFont(LABEL_FONT);
+ portLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
+ portLabel2.setText(MessageManager.getString("label.port") + ": ");
+
+ httpLabel.setText("HTTP");
+ httpLabel.setFont(LABEL_FONT_BOLD);
+ httpLabel.setHorizontalAlignment(SwingConstants.LEFT);
+ httpsLabel.setText("HTTPS");
+ httpsLabel.setFont(LABEL_FONT_BOLD);
+ httpsLabel.setHorizontalAlignment(SwingConstants.LEFT);
+
+ // 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]),
+ displayHostPort(Cache.startupProxyProperties[2],
+ Cache.startupProxyProperties[3])));
+ customProxy.setFont(LABEL_FONT);
+ customProxy.setHorizontalAlignment(SwingConstants.LEFT);
+ // customProxy.setHorizontalTextPosition(SwingConstants.LEADING);
+ customProxy.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- useProxy_actionPerformed();
+ customProxy_actionPerformed();
}
});
+ customProxy.setText(
+ MessageManager.getString("label.use_proxy_server") + ":");
+ proxyType.add(noProxy);
+ proxyType.add(systemProxy);
+ proxyType.add(customProxy);
// Make proxy server panel
JPanel proxyPanel = new JPanel();
TitledBorder titledBorder1 = new TitledBorder(
MessageManager.getString("label.proxy_server"));
proxyPanel.setBorder(titledBorder1);
+ GridBagConstraints gbc = new GridBagConstraints();
proxyPanel.setLayout(new GridBagLayout());
+
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.weightx = 1.0;
+ gbc.gridheight = 1;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.fill = GridBagConstraints.BOTH;
+
+ gbc.gridwidth = 5;
+ proxyPanel.add(noProxy, gbc);
+
+ 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++;
+ 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(serverLabel,
new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.NONE,
new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
new Insets(0, 2, 2, 0), 263, 1));
+ */
return proxyPanel;
}
+ private String displayHostPort(String host, String port)
+ {
+ boolean hostBlank = (host == null || host.isEmpty());
+ boolean portBlank = (port == null || port.isEmpty());
+ if (hostBlank && portBlank)
+ {
+ return MessageManager.getString("label.none");
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(hostBlank ? "" : host);
+ if (!portBlank)
+ {
+ sb.append(":");
+ sb.append(port);
+ }
+ return sb.toString();
+ }
+
/**
* Initialises the checkboxes in the Connections tab
*/
}
- public void useProxy_actionPerformed()
+ public void customProxy_actionPerformed()
{
- boolean enabled = useProxy.isSelected();
+ boolean enabled = customProxy.isSelected();
portLabel.setEnabled(enabled);
serverLabel.setEnabled(enabled);
- proxyServerTB.setEnabled(enabled);
- proxyPortTB.setEnabled(enabled);
+ httpLabel.setEnabled(enabled);
+ httpsLabel.setEnabled(enabled);
+ proxyServerHttpTB.setEnabled(enabled);
+ proxyPortHttpTB.setEnabled(enabled);
+ proxyServerHttpsTB.setEnabled(enabled);
+ proxyPortHttpsTB.setEnabled(enabled);
}
/**