*/
package jalview.bin;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
import jalview.datamodel.PDBEntry;
-import jalview.gui.UserDefinedColours;
+import jalview.gui.Preferences;
import jalview.schemes.ColourSchemeLoader;
import jalview.schemes.ColourSchemes;
import jalview.schemes.UserColourScheme;
* @author $author$
* @version $Revision$
*/
-public class Cache
+public class Cache implements ApplicationSingletonI
{
- static Cache instance;
+ private Cache()
+ {
+ // private singleton
+ }
/**
* In Java, this will be a static field instance, which will be
*
* @return
*/
- public static Cache getInstance()
+ private static Cache getInstance()
{
- Jalview j = Jalview.getInstance();
- return (j.cache == null ? j.cache = new Cache() : j.cache);
+ return (Cache) ApplicationSingletonProvider.getInstance(Cache.class);
}
/**
*/
public static Logger log;
- private Cache()
- {
- // inaccessible
- }
-
/** Jalview Properties */
// BH 2019.05.08 was static
@SuppressWarnings("serial")
};
/** Default file is ~/.jalview_properties */
- // BH 2019.05.07 note: Instances of Jalview will share this file.
- static String propertiesFile;
+ private String propertiesFile;
/**
* flag to possibly allow properties to be written to a property file
getDefault("sifts_cache_threshold_in_days",
DEFAULT_CACHE_THRESHOLD_IN_DAYS));
- IdOrgSettings.setUrl(getDefault("ID_ORG_HOSTURL",
+ IdOrgSettings.setUrl(getDefault(Preferences.ID_ORG_HOSTURL,
"http://www.jalview.org/services/identifiers"));
IdOrgSettings.setDownloadLocation(ID_ORG_FILE);
.println("Jalview Version: " + codeVersion + codeInstallation);
StructureImportSettings.setDefaultStructureFileFormat(jalview.bin.Cache
- .getDefault("PDB_DOWNLOAD_FORMAT", PDB_DOWNLOAD_FORMAT));
+ .getDefault(Preferences.PDB_DOWNLOAD_FORMAT, PDB_DOWNLOAD_FORMAT));
StructureImportSettings
.setDefaultPDBFileParser(DEFAULT_PDB_FILE_PARSER);
// StructureImportSettings
setProperty("VERSION", codeVersion);
// LOAD USERDEFINED COLOURS
- initUserColourSchemes(getProperty("USER_DEFINED_COLOURS"));
+ initUserColourSchemes(getProperty(Preferences.USER_DEFINED_COLOURS));
}
private void deleteBuildProperties()
*/
public static String getProperty(String key)
{
- return getInstance().getPropertyImpl(key);
- }
-
- private String getPropertyImpl(String key)
- {
- String prop = applicationProperties.getProperty(key);
- if (prop == null && Platform.isJS())
- {
- prop = applicationProperties.getProperty(Platform.getUniqueAppletID()
- + "_" + JS_PROPERTY_PREFIX + key);
- }
- return prop;
+ return getInstance().applicationProperties.getProperty(key);
}
/**
try
{
oldValue = applicationProperties.setProperty(key, obj);
- if (andSave && !propsAreReadOnly)
+ if (andSave && !propsAreReadOnly && propertiesFile != null)
{
FileOutputStream out = new FileOutputStream(propertiesFile);
applicationProperties.store(out, "---JalviewX Properties File---");
{
if (coloursFound.toString().length() > 1)
{
- setProperty(UserDefinedColours.USER_DEFINED_COLOURS,
+ setProperty(Preferences.USER_DEFINED_COLOURS,
coloursFound.toString());
}
else
{
getInstance().applicationProperties
- .remove(UserDefinedColours.USER_DEFINED_COLOURS);
+ .remove(Preferences.USER_DEFINED_COLOURS);
}
}
}