X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;h=623791821c9552100accd193fc04a86d58c825db;hb=55ac1885b2b6fda77037cd8b4b1daad52a60b4b2;hp=d4c9689444233f4701231ac952d1464a151543c6;hpb=88acca19255b75f23d6a3c3a07756e2ca3c04402;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index d4c9689..6237918 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -124,6 +124,8 @@ public class Preferences extends GPreferences private String previousProxyType; + private static Preferences INSTANCE = null; // add "final" + /** * Holds name and link separated with | character. Sequence ID must be * $SEQUENCE_ID$ or $SEQUENCE_ID=/.possible | chars ./=$ @@ -183,22 +185,43 @@ public class Preferences extends GPreferences private OptionsParam textOpt = new OptionsParam( MessageManager.getString("action.text"), "Text"); - /** - * Creates a new Preferences object. - */ - public Preferences() + // get singleton Preferences instance + public static Preferences getPreferences() + { + return getPreferences(0, null); + } + + public static Preferences getPreferences(int selectTab, String message) { - new Preferences(0); + if (INSTANCE == null || INSTANCE.frame == null + || INSTANCE.frame.isClosed()) + { + INSTANCE = new Preferences(); + } + INSTANCE.selectTab(selectTab); + INSTANCE.setMessage(message); + return INSTANCE; } - public Preferences(int selectTab) + public static void openPreferences() { - new Preferences(selectTab, null); + openPreferences(0, null); } - public Preferences(int selectTab, String message) + public static void openPreferences(int selectTab, String message) { - super(selectTab, message); + Preferences p = getPreferences(selectTab, message); + p.frame.show(); + p.frame.moveToFront(); + p.frame.grabFocus(); + } + + /** + * Creates a new Preferences object. + */ + private Preferences() + { + super(); frame = new JInternalFrame(); frame.setContentPane(this); wsPrefs = new WsPreferences(); @@ -522,7 +545,7 @@ public class Preferences extends GPreferences proxyAuthUsernameTB .setText(Cache.getDefault("PROXY_AUTH_USERNAME", "")); // we are not storing or retrieving proxy password from .jalview_properties - proxyAuthPasswordTB.setText(Cache.proxyAuthPassword == null ? "" + proxyAuthPasswordPB.setText(Cache.proxyAuthPassword == null ? "" : new String(Cache.proxyAuthPassword)); setCustomProxyEnabled(); @@ -603,6 +626,11 @@ public class Preferences extends GPreferences return; } + /* + * Set proxy settings first (to be before web services refresh) + */ + saveProxySettings(); + /* * Save Visual settings */ @@ -729,6 +757,8 @@ public class Preferences extends GPreferences /* * Save Connections settings */ + // Proxy settings set first (to catch web services) + Cache.setOrRemove("DEFAULT_BROWSER", defaultBrowser.getText()); jalview.util.BrowserLauncher.resetBrowser(); @@ -759,9 +789,6 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("DEFAULT_URL", sequenceUrlLinks.getPrimaryUrlId()); - // Proxy settings - saveProxySettings(); - Cache.setProperty("VERSION_CHECK", Boolean.toString(versioncheck.isSelected())); if (Cache.getProperty("USAGESTATS") != null || usagestats.isSelected()) @@ -857,10 +884,10 @@ public class Preferences extends GPreferences public void saveProxySettings() { - Cache.applicationProperties.setProperty("USE_PROXY", - customProxy.isSelected() ? Cache.PROXYTYPE_CUSTOM - : noProxy.isSelected() ? Cache.PROXYTYPE_NONE - : Cache.PROXYTYPE_SYSTEM); + String newProxyType = customProxy.isSelected() ? Cache.PROXYTYPE_CUSTOM + : noProxy.isSelected() ? Cache.PROXYTYPE_NONE + : Cache.PROXYTYPE_SYSTEM; + Cache.applicationProperties.setProperty("USE_PROXY", newProxyType); Cache.setOrRemove("PROXY_SERVER", proxyServerHttpTB.getText()); Cache.setOrRemove("PROXY_PORT", proxyPortHttpTB.getText()); Cache.setOrRemove("PROXY_SERVER_HTTPS", proxyServerHttpsTB.getText()); @@ -868,8 +895,15 @@ public class Preferences extends GPreferences Cache.setOrRemove("PROXY_AUTH", Boolean.toString(proxyAuth.isSelected())); Cache.setOrRemove("PROXY_AUTH_USERNAME", proxyAuthUsernameTB.getText()); - Cache.proxyAuthPassword = proxyAuthPasswordTB.getPassword(); + Cache.proxyAuthPassword = proxyAuthPasswordPB.getPassword(); Cache.setProxyPropertiesFromPreferences(previousProxyType); + if (newProxyType.equals(Cache.PROXYTYPE_CUSTOM) + || !newProxyType.equals(previousProxyType)) + { + // force a re-lookup of ws if proxytype is custom or has changed + wsPrefs.update++; + } + previousProxyType = newProxyType; } /**