X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;h=3cada85d5f1a208455a1e6f133ef703cbfaa57ba;hb=419898b96abeb2f9cdc77b22b34d71fff5451fd9;hp=f337898415aeae7010b9338a52fa35093039faed;hpb=a934d28336923f2966aeac29f7d1a877e5db1cec;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index f337898..3cada85 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -127,6 +127,8 @@ public class Preferences extends GPreferences private static final int MAX_FONT_SIZE = 30; + private String previousProxyType; + /** * Holds name and link separated with | character. Sequence ID must be * $SEQUENCE_ID$ or $SEQUENCE_ID=/.possible | chars ./=$ @@ -191,7 +193,12 @@ public class Preferences extends GPreferences */ public Preferences() { - super(); + new Preferences(0); + } + + public Preferences(int selectTab) + { + super(selectTab); frame = new JInternalFrame(); frame.setContentPane(this); if (!Platform.isJS()) @@ -537,15 +544,16 @@ public class Preferences extends GPreferences } String proxyTypeString = Cache.getDefault("USE_PROXY", "false"); + previousProxyType = proxyTypeString; switch (proxyTypeString) { - case "none": + case Cache.PROXYTYPE_NONE: proxyType.setSelected(noProxy.getModel(), true); break; - case "false": + case Cache.PROXYTYPE_SYSTEM: proxyType.setSelected(systemProxy.getModel(), true); break; - case "true": + case Cache.PROXYTYPE_CUSTOM: proxyType.setSelected(customProxy.getModel(), true); break; default: @@ -557,6 +565,13 @@ public class Preferences extends GPreferences proxyPortHttpTB.setText(Cache.getDefault("PROXY_PORT", "")); proxyServerHttpsTB.setText(Cache.getDefault("PROXY_SERVER_HTTPS", "")); proxyPortHttpsTB.setText(Cache.getDefault("PROXY_PORT_HTTPS", "")); + proxyAuth.setSelected(Cache.getDefault("PROXY_AUTH", false)); + proxyAuthUsernameTB + .setText(Cache.getDefault("PROXY_AUTH_USERNAME", "")); + // we are not storing or retrieving proxy password from .jalview_properties + proxyAuthPasswordTB.setText(Cache.proxyAuthPassword == null ? "" + : Cache.proxyAuthPassword.toString()); + setCustomProxyEnabled(); defaultBrowser.setText(Cache.getDefault("DEFAULT_BROWSER", "")); @@ -828,35 +843,8 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("DEFAULT_URL", sequenceUrlLinks.getPrimaryUrlId()); - Cache.applicationProperties.setProperty("USE_PROXY", - customProxy.isSelected() ? "true" - : noProxy.isSelected() ? "none" : "false"); - - Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText()); - - Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText()); - - Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText()); - - Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText()); - - if (noProxy.isSelected()) - { - Cache.log.warn("Setting no proxy settings"); - Cache.setProxyProperties(null, null, null, null); - } - else if (customProxy.isSelected()) - { - 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(); - } + // Proxy settings + saveProxySettings(); Cache.setProperty("VERSION_CHECK", Boolean.toString(versioncheck.isSelected())); @@ -954,6 +942,58 @@ public class Preferences extends GPreferences } } + public void setProxyFromSettings() + { + String proxyType = Cache.getDefault("USE_PROXY", + Cache.PROXYTYPE_SYSTEM); + if (proxyType.equals(Cache.PROXYTYPE_NONE)) + { + if (!previousProxyType.equals(proxyType)) + Cache.log.info("Setting no proxy settings"); + Cache.setProxyProperties(null, null, null, null, null, null, null, + null, null); + } + else if (proxyType.equals(Cache.PROXYTYPE_CUSTOM)) + { + if (!previousProxyType.equals(proxyType)) + Cache.log.info("Setting custom proxy settings"); + boolean proxyAuthSet = Cache.getDefault("PROXY_AUTH", false); + Cache.setProxyProperties(Cache.getDefault("PROXY_SERVER", null), + Cache.getDefault("PROXY_PORT", null), + Cache.getDefault("PROXY_SERVER_HTTPS", null), + Cache.getDefault("PROXY_PORT_HTTPS", null), + proxyAuthSet ? Cache.getDefault("PROXY_AUTH_USERNAME", "") + : null, + proxyAuthSet ? Cache.proxyAuthPassword : null, + proxyAuthSet ? Cache.getDefault("PROXY_AUTH_USERNAME", "") + : null, + proxyAuthSet ? Cache.proxyAuthPassword : null, "localhost"); + } + else // systemProxy should be selected and is sensible default anyway + { + if (!previousProxyType.equals(proxyType)) + Cache.log.info("Setting system proxy settings"); + Cache.resetProxyProperties(); + } + } + + public void saveProxySettings() + { + Cache.applicationProperties.setProperty("USE_PROXY", + customProxy.isSelected() ? Cache.PROXYTYPE_CUSTOM + : noProxy.isSelected() ? Cache.PROXYTYPE_NONE + : Cache.PROXYTYPE_SYSTEM); + Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText()); + Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText()); + Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText()); + Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText()); + Cache.setOrRemove("PROXY_AUTH", + Boolean.toString(proxyAuth.isSelected())); + Cache.setOrRemove("PROXY_AUTH_USERNAME", proxyAuthUsernameTB.getText()); + Cache.proxyAuthPassword = proxyAuthPasswordTB.getPassword(); + setProxyFromSettings(); + } + /** * Do any necessary validation before saving settings. Return focus to the * first tab which fails validation.