X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;fp=src%2Fjalview%2Fgui%2FPreferences.java;h=6972657d2ef9f5fe680ab16788917929400032e2;hp=c61c70e30be633b42f8d72731bf34d7f87b2cbcd;hb=e9b093e0c0c754764efc099e23b96095817581d1;hpb=55729191375e41a426326c2f39997f19060038e3 diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index c61c70e..6972657 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -81,6 +81,10 @@ import jalview.ws.sifts.SiftsSettings; * @author $author$ * @version $Revision$ */ +/* + * for merge with Jalview-JS + public class Preferences extends GPreferences implements ApplicationSingletonI + */ public class Preferences extends GPreferences { public static final String ENABLE_SPLIT_FRAME = "ENABLE_SPLIT_FRAME"; @@ -127,6 +131,10 @@ public class Preferences extends GPreferences private static final int MAX_FONT_SIZE = 30; + 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 ./=$ @@ -186,10 +194,48 @@ public class Preferences extends GPreferences private OptionsParam textOpt = new OptionsParam( MessageManager.getString("action.text"), "Text"); + // get singleton Preferences instance + public static Preferences getInstance() + { + if (INSTANCE == null || INSTANCE.frame == null + || INSTANCE.frame.isClosed()) + { + INSTANCE = new Preferences(); + } + return INSTANCE; + + /* + * Replace code with the following for Jalvew-JS + Preferences INSTANCE = ApplicationSingletonProvider.getInstance(Preferences.class); + if (INSTANCE == null || INSTANCE.frame == null + || INSTANCE.frame.isClosed()) + { + ApplicationSingletonProvider.remove(Preferences.class); + INSTANCE = ApplicationSingletonProvider.getInstance(Preferences.class); + } + return INSTANCE; + */ + } + + public static void openPreferences() + { + openPreferences(0, null); + } + + public static void openPreferences(int selectTab, String message) + { + Preferences p = getInstance(); + p.selectTab(selectTab); + p.setMessage(message); + p.frame.show(); + p.frame.moveToFront(); + p.frame.grabFocus(); + } + /** * Creates a new Preferences object. */ - public Preferences() + private Preferences() { super(); frame = new JInternalFrame(); @@ -328,12 +374,10 @@ public class Preferences extends GPreferences /* * Set overview panel defaults */ - gapColour.setBackground( - Cache.getDefaultColour(GAP_COLOUR, - jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP)); - hiddenColour.setBackground( - Cache.getDefaultColour(HIDDEN_COLOUR, - jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN)); + gapColour.setBackground(Cache.getDefaultColour(GAP_COLOUR, + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP)); + hiddenColour.setBackground(Cache.getDefaultColour(HIDDEN_COLOUR, + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN)); useLegacyGap.setSelected(Cache.getDefault(USE_LEGACY_GAP, false)); gapLabel.setEnabled(!useLegacyGap.isSelected()); gapColour.setEnabled(!useLegacyGap.isSelected()); @@ -356,7 +400,8 @@ public class Preferences extends GPreferences * set choice of structure viewer, and path if saved as a preference; * default to Jmol (first choice) if an unexpected value is found */ - String viewerType = Cache.getDefault(STRUCTURE_DISPLAY, ViewerType.JMOL.name()); + String viewerType = Cache.getDefault(STRUCTURE_DISPLAY, + ViewerType.JMOL.name()); structViewer.setSelectedItem(viewerType); String viewerPath = ""; ViewerType type = null; @@ -392,10 +437,11 @@ public class Preferences extends GPreferences { if (validateViewerPath()) { - Cache.setProperty(structViewer.getSelectedItem() - .equals(ViewerType.CHIMERAX.name()) - ? CHIMERAX_PATH - : CHIMERA_PATH, structureViewerPath.getText()); + Cache.setProperty( + structViewer.getSelectedItem().equals( + ViewerType.CHIMERAX.name()) ? CHIMERAX_PATH + : CHIMERA_PATH, + structureViewerPath.getText()); } } }); @@ -536,10 +582,36 @@ public class Preferences extends GPreferences } } - 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"); + previousProxyType = proxyTypeString; + switch (proxyTypeString) + { + case Cache.PROXYTYPE_NONE: + proxyType.setSelected(noProxy.getModel(), true); + break; + case Cache.PROXYTYPE_SYSTEM: + proxyType.setSelected(systemProxy.getModel(), true); + break; + case Cache.PROXYTYPE_CUSTOM: + proxyType.setSelected(customProxy.getModel(), true); + break; + default: + Cache.log.warn( + "Incorrect PROXY_TYPE - should be 'none' (clear proxy properties), 'false' (system settings), 'true' (custom settings): " + + proxyTypeString); + } + 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", "")); + 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 + proxyAuthPasswordPB.setText(Cache.proxyAuthPassword == null ? "" + : new String(Cache.proxyAuthPassword)); + setCustomProxyEnabled(); + applyProxyButtonEnabled(false); defaultBrowser.setText(Cache.getDefault("DEFAULT_BROWSER", "")); @@ -583,8 +655,7 @@ public class Preferences extends GPreferences annotations_actionPerformed(null); // update the display of the annotation // settings - - + /* * Set Backups tab defaults */ @@ -604,7 +675,7 @@ public class Preferences extends GPreferences comboBox.addItem(promptEachTimeOpt); comboBox.addItem(lineArtOpt); comboBox.addItem(textOpt); - + /* * JalviewJS doesn't support Lineart so force it to Text */ @@ -638,6 +709,11 @@ public class Preferences extends GPreferences return; } + /* + * Set proxy settings first (to be before web services refresh) + */ + saveProxySettings(); + /* * Save Visual settings */ @@ -750,8 +826,7 @@ public class Preferences extends GPreferences Boolean.toString(structFromPdb.isSelected())); String viewer = structViewer.getSelectedItem().toString(); String viewerPath = structureViewerPath.getText(); - Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, - viewer); + Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, viewer); if (viewer.equals(ViewerType.CHIMERA.name())) { Cache.setOrRemove(CHIMERA_PATH, viewerPath); @@ -781,6 +856,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(); @@ -811,23 +888,6 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("DEFAULT_URL", sequenceUrlLinks.getPrimaryUrlId()); - Cache.applicationProperties.setProperty("USE_PROXY", - Boolean.toString(useProxy.isSelected())); - - Cache.setOrRemove("PROXY_SERVER", proxyServerTB.getText()); - - Cache.setOrRemove("PROXY_PORT", proxyPortTB.getText()); - - if (useProxy.isSelected()) - { - System.setProperty("http.proxyHost", proxyServerTB.getText()); - System.setProperty("http.proxyPort", proxyPortTB.getText()); - } - else - { - System.setProperty("http.proxyHost", ""); - System.setProperty("http.proxyPort", ""); - } Cache.setProperty("VERSION_CHECK", Boolean.toString(versioncheck.isSelected())); if (Cache.getProperty("USAGESTATS") != null || usagestats.isSelected()) @@ -897,16 +957,16 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty(BackupFiles.ENABLED, Boolean.toString(enableBackupFiles.isSelected())); int preset = getComboIntStringKey(backupfilesPresetsCombo); - Cache.applicationProperties.setProperty(BackupFiles.NS + "_PRESET", Integer.toString(preset)); + Cache.applicationProperties.setProperty(BackupFiles.NS + "_PRESET", + Integer.toString(preset)); if (preset == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM) { BackupFilesPresetEntry customBFPE = getBackupfilesCurrentEntry(); BackupFilesPresetEntry.backupfilesPresetEntriesValues.put( BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM, customBFPE); - Cache.applicationProperties - .setProperty(BackupFilesPresetEntry.CUSTOMCONFIG, - customBFPE.toString()); + Cache.applicationProperties.setProperty( + BackupFilesPresetEntry.CUSTOMCONFIG, customBFPE.toString()); } BackupFilesPresetEntry savedBFPE = BackupFilesPresetEntry.backupfilesPresetEntriesValues @@ -924,6 +984,30 @@ public class Preferences extends GPreferences } } + public void saveProxySettings() + { + 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()); + Cache.setOrRemove("PROXY_PORT_HTTPS", proxyPortHttpsTB.getText()); + Cache.setOrRemove("PROXY_AUTH", + Boolean.toString(proxyAuth.isSelected())); + Cache.setOrRemove("PROXY_AUTH_USERNAME", proxyAuthUsernameTB.getText()); + 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; + } + /** * Do any necessary validation before saving settings. Return focus to the * first tab which fails validation. @@ -1192,8 +1276,7 @@ public class Preferences extends GPreferences if (!useLegacyGap.isSelected()) { JalviewColourChooser.showColourChooser(this, - MessageManager.getString("label.select_gap_colour"), - gap); + MessageManager.getString("label.select_gap_colour"), gap); } } @@ -1201,8 +1284,7 @@ public class Preferences extends GPreferences public void hiddenColour_actionPerformed(JPanel hidden) { JalviewColourChooser.showColourChooser(this, - MessageManager.getString("label.select_hidden_colour"), - hidden); + MessageManager.getString("label.select_hidden_colour"), hidden); } @Override