From 9bac84243d6191b644ea7e3de198ff0909c566f6 Mon Sep 17 00:00:00 2001 From: BobHanson Date: Mon, 1 Jun 2020 19:34:02 -0500 Subject: [PATCH] JAL-3626 from JAL-3253-applet Cache applicationProperties made private -- adds remove/setPropertyNoSave --- src/jalview/bin/Cache.java | 89 ++++++++++++++++++---- src/jalview/gui/ColourMenuHelper.java | 2 +- src/jalview/gui/LineartOptions.java | 2 +- src/jalview/gui/Preferences.java | 132 ++++++++++++++++----------------- 4 files changed, 144 insertions(+), 81 deletions(-) diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index c532b7a..2c8986c 100755 --- a/src/jalview/bin/Cache.java +++ b/src/jalview/bin/Cache.java @@ -266,7 +266,7 @@ public class Cache public static Logger log; /** Jalview Properties */ - public static Properties applicationProperties = new Properties() + private static Properties applicationProperties = new Properties() { // override results in properties output in alphabetical order @Override @@ -333,6 +333,20 @@ public class Cache */ public static void loadProperties(String propsFile) { + /* for JalviewJS should be + + getInstance(). + + */ + loadPropertiesImpl(propsFile); + + } + + private /* JalviewJS should not be static */ + static // + void loadPropertiesImpl(String propsFile) + { + propertiesFile = propsFile; if (propsFile == null && !propsAreReadOnly) { @@ -620,12 +634,17 @@ public class Cache */ public static String getProperty(String key) { - String prop = applicationProperties.getProperty(key); - if (prop == null && Platform.isJS()) - { - prop = applicationProperties.getProperty(Platform.getUniqueAppletID() - + "_" + JS_PROPERTY_PREFIX + key); - } + String prop = /* for JalviewJS should be + + getInstance(). + + */ + applicationProperties.getProperty(key); +// if (prop == null && Platform.isJS()) +// { +// prop = applicationProperties.getProperty(Platform.getUniqueAppletID() +// + "_" + JS_PROPERTY_PREFIX + key); +// } return prop; } @@ -704,14 +723,53 @@ public class Cache } /** - * remove the specified property from the jalview properties file + * Removes the specified property from the jalview properties file * - * @param string + * @param key + */ + public static void removeProperty(String key) + { + /* for JalviewJS should be + + getInstance(). + + */ + removePropertyImpl(key, true); + } + + /** + * Removes the named property for the running application, without saving the + * properties file + * + * BH noting that ColourMenuHelper calls this. If the intent is to save, + * then simply chanet that call to removeProperty(key). + * + * @param key + */ + public static void removePropertyNoSave(String key) + { + /* for JalviewJS should be + + getInstance(). + + */ + removePropertyImpl(key, false); + } + + /** + * Removes the named property, and optionally saves the current properties to + * file + * + * @param key + * @param andSave */ - public static void removeProperty(String string) + private /* JalviewJS should not be static */ + static // + void removePropertyImpl(String key, boolean andSave) { - applicationProperties.remove(string); - saveProperties(); + applicationProperties.remove(key); + if (andSave) + saveProperties(); } /** @@ -1102,6 +1160,11 @@ public class Cache { if (coloursFound.toString().length() > 1) { + /* for JalviewJS should be + + getInstance(). + + */ setProperty(UserDefinedColours.USER_DEFINED_COLOURS, coloursFound.toString()); } @@ -1177,7 +1240,7 @@ public class Cache /** * - * For AppletParams + * For AppletParams and Preferences ok_actionPerformed and startupFileTextfield_mouseClicked * * Sets a property value for the running application, without saving it to the * properties file diff --git a/src/jalview/gui/ColourMenuHelper.java b/src/jalview/gui/ColourMenuHelper.java index 6eab07d..43d7015 100644 --- a/src/jalview/gui/ColourMenuHelper.java +++ b/src/jalview/gui/ColourMenuHelper.java @@ -314,7 +314,7 @@ public class ColourMenuHelper } else { - Cache.applicationProperties.remove("USER_DEFINED_COLOURS"); + Cache.removePropertyNoSave("USER_DEFINED_COLOURS"); } } } diff --git a/src/jalview/gui/LineartOptions.java b/src/jalview/gui/LineartOptions.java index d55733c..9704b39 100644 --- a/src/jalview/gui/LineartOptions.java +++ b/src/jalview/gui/LineartOptions.java @@ -188,7 +188,7 @@ public class LineartOptions extends JPanel } else { - Cache.applicationProperties.remove(preferencesKey); + Cache.removePropertyNoSave(preferencesKey); } } diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index bd795af..646bf61 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -698,65 +698,65 @@ public class Preferences extends GPreferences /* * Save Visual settings */ - Cache.applicationProperties.setProperty("SHOW_JVSUFFIX", + Cache.setPropertyNoSave("SHOW_JVSUFFIX", Boolean.toString(seqLimit.isSelected())); - Cache.applicationProperties.setProperty("RIGHT_ALIGN_IDS", + Cache.setPropertyNoSave("RIGHT_ALIGN_IDS", Boolean.toString(rightAlign.isSelected())); - Cache.applicationProperties.setProperty("SHOW_FULLSCREEN", + Cache.setPropertyNoSave("SHOW_FULLSCREEN", Boolean.toString(fullScreen.isSelected())); - Cache.applicationProperties.setProperty("SHOW_OVERVIEW", + Cache.setPropertyNoSave("SHOW_OVERVIEW", Boolean.toString(openoverv.isSelected())); - Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", + Cache.setPropertyNoSave("SHOW_ANNOTATIONS", Boolean.toString(annotations.isSelected())); - Cache.applicationProperties.setProperty("SHOW_CONSERVATION", + Cache.setPropertyNoSave("SHOW_CONSERVATION", Boolean.toString(conservation.isSelected())); - Cache.applicationProperties.setProperty("SHOW_QUALITY", + Cache.setPropertyNoSave("SHOW_QUALITY", Boolean.toString(quality.isSelected())); - Cache.applicationProperties.setProperty("SHOW_IDENTITY", + Cache.setPropertyNoSave("SHOW_IDENTITY", Boolean.toString(identity.isSelected())); - Cache.applicationProperties.setProperty("GAP_SYMBOL", + Cache.setPropertyNoSave("GAP_SYMBOL", gapSymbolCB.getSelectedItem().toString()); - Cache.applicationProperties.setProperty("FONT_NAME", + Cache.setPropertyNoSave("FONT_NAME", fontNameCB.getSelectedItem().toString()); - Cache.applicationProperties.setProperty("FONT_STYLE", + Cache.setPropertyNoSave("FONT_STYLE", fontStyleCB.getSelectedItem().toString()); - Cache.applicationProperties.setProperty("FONT_SIZE", + Cache.setPropertyNoSave("FONT_SIZE", fontSizeCB.getSelectedItem().toString()); - Cache.applicationProperties.setProperty("ID_ITALICS", + Cache.setPropertyNoSave("ID_ITALICS", Boolean.toString(idItalics.isSelected())); - Cache.applicationProperties.setProperty("SHOW_UNCONSERVED", + Cache.setPropertyNoSave("SHOW_UNCONSERVED", Boolean.toString(showUnconserved.isSelected())); - Cache.applicationProperties.setProperty(SHOW_OCCUPANCY, + Cache.setPropertyNoSave(SHOW_OCCUPANCY, Boolean.toString(showOccupancy.isSelected())); - Cache.applicationProperties.setProperty("SHOW_GROUP_CONSENSUS", + Cache.setPropertyNoSave("SHOW_GROUP_CONSENSUS", Boolean.toString(showGroupConsensus.isSelected())); - Cache.applicationProperties.setProperty("SHOW_GROUP_CONSERVATION", + Cache.setPropertyNoSave("SHOW_GROUP_CONSERVATION", Boolean.toString(showGroupConservation.isSelected())); - Cache.applicationProperties.setProperty("SHOW_CONSENSUS_HISTOGRAM", + Cache.setPropertyNoSave("SHOW_CONSENSUS_HISTOGRAM", Boolean.toString(showConsensHistogram.isSelected())); - Cache.applicationProperties.setProperty("SHOW_CONSENSUS_LOGO", + Cache.setPropertyNoSave("SHOW_CONSENSUS_LOGO", Boolean.toString(showConsensLogo.isSelected())); - Cache.applicationProperties.setProperty("ANTI_ALIAS", + Cache.setPropertyNoSave("ANTI_ALIAS", Boolean.toString(smoothFont.isSelected())); - Cache.applicationProperties.setProperty(SCALE_PROTEIN_TO_CDNA, + Cache.setPropertyNoSave(SCALE_PROTEIN_TO_CDNA, Boolean.toString(scaleProteinToCdna.isSelected())); - Cache.applicationProperties.setProperty("SHOW_NPFEATS_TOOLTIP", + Cache.setPropertyNoSave("SHOW_NPFEATS_TOOLTIP", Boolean.toString(showNpTooltip.isSelected())); - Cache.applicationProperties.setProperty("SHOW_DBREFS_TOOLTIP", + Cache.setPropertyNoSave("SHOW_DBREFS_TOOLTIP", Boolean.toString(showDbRefTooltip.isSelected())); - Cache.applicationProperties.setProperty("WRAP_ALIGNMENT", + Cache.setPropertyNoSave("WRAP_ALIGNMENT", Boolean.toString(wrap.isSelected())); - Cache.applicationProperties.setProperty("STARTUP_FILE", + Cache.setPropertyNoSave("STARTUP_FILE", startupFileTextfield.getText()); - Cache.applicationProperties.setProperty("SHOW_STARTUP_FILE", + Cache.setPropertyNoSave("SHOW_STARTUP_FILE", Boolean.toString(startupCheckbox.isSelected())); - Cache.applicationProperties.setProperty("SORT_ALIGNMENT", + Cache.setPropertyNoSave("SORT_ALIGNMENT", sortby.getSelectedItem().toString()); // convert description of sort order to enum name for save @@ -764,20 +764,20 @@ public class Preferences extends GPreferences .forDescription(sortAnnBy.getSelectedItem().toString()); if (annSortOrder != null) { - Cache.applicationProperties.setProperty(SORT_ANNOTATIONS, + Cache.setPropertyNoSave(SORT_ANNOTATIONS, annSortOrder.name()); } final boolean showAutocalcFirst = sortAutocalc.getSelectedIndex() == 0; - Cache.applicationProperties.setProperty(SHOW_AUTOCALC_ABOVE, + Cache.setPropertyNoSave(SHOW_AUTOCALC_ABOVE, Boolean.valueOf(showAutocalcFirst).toString()); /* * Save Colours settings */ - Cache.applicationProperties.setProperty(DEFAULT_COLOUR_PROT, + Cache.setPropertyNoSave(DEFAULT_COLOUR_PROT, protColour.getSelectedItem().toString()); - Cache.applicationProperties.setProperty(DEFAULT_COLOUR_NUC, + Cache.setPropertyNoSave(DEFAULT_COLOUR_NUC, nucColour.getSelectedItem().toString()); Cache.setColourProperty("ANNOTATIONCOLOUR_MIN", minColour.getBackground()); @@ -789,37 +789,37 @@ public class Preferences extends GPreferences */ Cache.setColourProperty(GAP_COLOUR, gapColour.getBackground()); Cache.setColourProperty(HIDDEN_COLOUR, hiddenColour.getBackground()); - Cache.applicationProperties.setProperty(USE_LEGACY_GAP, + Cache.setPropertyNoSave(USE_LEGACY_GAP, Boolean.toString(useLegacyGap.isSelected())); - Cache.applicationProperties.setProperty(SHOW_OV_HIDDEN_AT_START, + Cache.setPropertyNoSave(SHOW_OV_HIDDEN_AT_START, Boolean.toString(showHiddenAtStart.isSelected())); /* * Save Structure settings */ - Cache.applicationProperties.setProperty(ADD_TEMPFACT_ANN, + Cache.setPropertyNoSave(ADD_TEMPFACT_ANN, Boolean.toString(addTempFactor.isSelected())); - Cache.applicationProperties.setProperty(ADD_SS_ANN, + Cache.setPropertyNoSave(ADD_SS_ANN, Boolean.toString(addSecondaryStructure.isSelected())); - Cache.applicationProperties.setProperty(USE_RNAVIEW, + Cache.setPropertyNoSave(USE_RNAVIEW, Boolean.toString(useRnaView.isSelected())); - Cache.applicationProperties.setProperty(STRUCT_FROM_PDB, + Cache.setPropertyNoSave(STRUCT_FROM_PDB, Boolean.toString(structFromPdb.isSelected())); - Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, + Cache.setPropertyNoSave(STRUCTURE_DISPLAY, structViewer.getSelectedItem().toString()); Cache.setOrRemove(CHIMERA_PATH, chimeraPath.getText()); - Cache.applicationProperties.setProperty("MAP_WITH_SIFTS", + Cache.setPropertyNoSave("MAP_WITH_SIFTS", Boolean.toString(siftsMapping.isSelected())); SiftsSettings.setMapWithSifts(siftsMapping.isSelected()); /* * Save Output settings */ - Cache.applicationProperties.setProperty("EPS_RENDERING", + Cache.setPropertyNoSave("EPS_RENDERING", ((OptionsParam) epsRendering.getSelectedItem()).getCode()); - Cache.applicationProperties.setProperty("HTML_RENDERING", + Cache.setPropertyNoSave("HTML_RENDERING", ((OptionsParam) htmlRendering.getSelectedItem()).getCode()); - Cache.applicationProperties.setProperty("SVG_RENDERING", + Cache.setPropertyNoSave("SVG_RENDERING", ((OptionsParam) svgRendering.getSelectedItem()).getCode()); /* @@ -833,29 +833,29 @@ public class Preferences extends GPreferences String menuLinks = sequenceUrlLinks.writeUrlsAsString(true); if (menuLinks.isEmpty()) { - Cache.applicationProperties.remove("SEQUENCE_LINKS"); + Cache.removeNoSave("SEQUENCE_LINKS"); } else { - Cache.applicationProperties.setProperty("SEQUENCE_LINKS", + Cache.setPropertyNoSave("SEQUENCE_LINKS", menuLinks.toString()); } String nonMenuLinks = sequenceUrlLinks.writeUrlsAsString(false); if (nonMenuLinks.isEmpty()) { - Cache.applicationProperties.remove("STORED_LINKS"); + Cache.removeNoSave("STORED_LINKS"); } else { - Cache.applicationProperties.setProperty("STORED_LINKS", + Cache.setPropertyNoSave("STORED_LINKS", nonMenuLinks.toString()); } - Cache.applicationProperties.setProperty("DEFAULT_URL", + Cache.setPropertyNoSave("DEFAULT_URL", sequenceUrlLinks.getPrimaryUrlId()); - Cache.applicationProperties.setProperty("USE_PROXY", + Cache.setPropertyNoSave("USE_PROXY", Boolean.toString(useProxy.isSelected())); Cache.setOrRemove("PROXY_SERVER", proxyServerTB.getText()); @@ -894,40 +894,40 @@ public class Preferences extends GPreferences /* * Save Output settings */ - Cache.applicationProperties.setProperty("BLC_JVSUFFIX", + Cache.setPropertyNoSave("BLC_JVSUFFIX", Boolean.toString(blcjv.isSelected())); - Cache.applicationProperties.setProperty("CLUSTAL_JVSUFFIX", + Cache.setPropertyNoSave("CLUSTAL_JVSUFFIX", Boolean.toString(clustaljv.isSelected())); - Cache.applicationProperties.setProperty("FASTA_JVSUFFIX", + Cache.setPropertyNoSave("FASTA_JVSUFFIX", Boolean.toString(fastajv.isSelected())); - Cache.applicationProperties.setProperty("MSF_JVSUFFIX", + Cache.setPropertyNoSave("MSF_JVSUFFIX", Boolean.toString(msfjv.isSelected())); - Cache.applicationProperties.setProperty("PFAM_JVSUFFIX", + Cache.setPropertyNoSave("PFAM_JVSUFFIX", Boolean.toString(pfamjv.isSelected())); - Cache.applicationProperties.setProperty("PILEUP_JVSUFFIX", + Cache.setPropertyNoSave("PILEUP_JVSUFFIX", Boolean.toString(pileupjv.isSelected())); - Cache.applicationProperties.setProperty("PIR_JVSUFFIX", + Cache.setPropertyNoSave("PIR_JVSUFFIX", Boolean.toString(pirjv.isSelected())); - Cache.applicationProperties.setProperty("PIR_MODELLER", + Cache.setPropertyNoSave("PIR_MODELLER", Boolean.toString(modellerOutput.isSelected())); - Cache.applicationProperties.setProperty("EXPORT_EMBBED_BIOJSON", + Cache.setPropertyNoSave("EXPORT_EMBBED_BIOJSON", Boolean.toString(embbedBioJSON.isSelected())); jalview.io.PIRFile.useModellerOutput = modellerOutput.isSelected(); - Cache.applicationProperties.setProperty("FIGURE_AUTOIDWIDTH", + Cache.setPropertyNoSave("FIGURE_AUTOIDWIDTH", Boolean.toString(autoIdWidth.isSelected())); userIdWidth_actionPerformed(); - Cache.applicationProperties.setProperty("FIGURE_FIXEDIDWIDTH", + Cache.setPropertyNoSave("FIGURE_FIXEDIDWIDTH", userIdWidth.getText()); /* * Save Editing settings */ - Cache.applicationProperties.setProperty("AUTO_CALC_CONSENSUS", + Cache.setPropertyNoSave("AUTO_CALC_CONSENSUS", Boolean.toString(autoCalculateConsCheck.isSelected())); - Cache.applicationProperties.setProperty("SORT_BY_TREE", + Cache.setPropertyNoSave("SORT_BY_TREE", Boolean.toString(sortByTree.isSelected())); - Cache.applicationProperties.setProperty("PAD_GAPS", + Cache.setPropertyNoSave("PAD_GAPS", Boolean.toString(padGaps.isSelected())); if (!Platform.isJS()) @@ -938,10 +938,10 @@ public class Preferences extends GPreferences /* * Save Backups settings */ - Cache.applicationProperties.setProperty(BackupFiles.ENABLED, + Cache.setPropertyNoSave(BackupFiles.ENABLED, Boolean.toString(enableBackupFiles.isSelected())); int preset = getComboIntStringKey(backupfilesPresetsCombo); - Cache.applicationProperties.setProperty(BackupFiles.NS + "_PRESET", Integer.toString(preset)); + Cache.setPropertyNoSave(BackupFiles.NS + "_PRESET", Integer.toString(preset)); if (preset == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM) { @@ -955,7 +955,7 @@ public class Preferences extends GPreferences BackupFilesPresetEntry savedBFPE = BackupFilesPresetEntry.backupfilesPresetEntriesValues .get(preset); - Cache.applicationProperties.setProperty( + Cache.setPropertyNoSave( BackupFilesPresetEntry.SAVEDCONFIG, savedBFPE.toString()); Cache.saveProperties(); @@ -1012,7 +1012,7 @@ public class Preferences extends GPreferences FileFormatI format = chooser.getSelectedFormat(); if (format != null) { - Cache.applicationProperties.setProperty("DEFAULT_FILE_FORMAT", + Cache.setPropertyNoSave("DEFAULT_FILE_FORMAT", format.getName()); } startupFileTextfield -- 1.7.10.2