import jalview.structure.StructureImportSettings;
import jalview.urls.IdOrgSettings;
import jalview.util.ColorUtils;
+import jalview.util.Platform;
import jalview.ws.sifts.SiftsSettings;
import java.awt.Color;
/** Default file is ~/.jalview_properties */
static String propertiesFile;
- private static boolean propsAreReadOnly = false;
+ private static boolean propsAreReadOnly = Platform.isJS();
+
+ private final static String JS_PROPERTY_PREFIX = "jalview_";
public static void initLogger()
{
public static void loadProperties(String propsFile)
{
propertiesFile = propsFile;
- if (propsFile == null)
+ if (propsFile == null && !propsAreReadOnly)
{
propertiesFile = System.getProperty("user.home") + File.separatorChar
+ ".jalview_properties";
propsAreReadOnly = true;
}
- try
+ if (propertiesFile == null)
+ { // BH 2019
+ Platform.readInfoProperties(JS_PROPERTY_PREFIX,
+ applicationProperties);
+ }
+ else
{
- InputStream fis;
try
{
- fis = new java.net.URL(propertiesFile).openStream();
- System.out.println(
- "Loading jalview properties from : " + propertiesFile);
- System.out.println(
- "Disabling Jalview writing to user's local properties file.");
- propsAreReadOnly = true;
+ InputStream fis;
+ try
+ {
+ fis = new java.net.URL(propertiesFile).openStream();
+ System.out.println(
+ "Loading jalview properties from : " + propertiesFile);
+ System.out.println(
+ "Disabling Jalview writing to user's local properties file.");
+ propsAreReadOnly = true;
+
+ } catch (Exception ex)
+ {
+ fis = null;
+ }
+ if (fis == null)
+ {
+ fis = new FileInputStream(propertiesFile);
+ }
+ applicationProperties.clear();
+ applicationProperties.load(fis);
+ // remove any old build properties
+
+ deleteBuildProperties();
+ fis.close();
} catch (Exception ex)
{
- fis = null;
+ System.out.println("Error reading properties file: " + ex);
}
- if (fis == null)
- {
- fis = new FileInputStream(propertiesFile);
- }
- applicationProperties.clear();
- applicationProperties.load(fis);
-
- // remove any old build properties
-
- deleteBuildProperties();
- fis.close();
- } catch (Exception ex)
- {
- System.out.println("Error reading properties file: " + ex);
}
-
if (getDefault("USE_PROXY", false))
{
String proxyServer = getDefault("PROXY_SERVER", ""),
}
// LOAD THE AUTHORS FROM THE authors.props file
+ String authorDetails = resolveResourceURLFor("authors.props");
+
try
{
- String authorDetails = "jar:"
- .concat(Cache.class.getProtectionDomain().getCodeSource()
- .getLocation().toString().concat("!/authors.props"));
-
- java.net.URL localJarFileURL = new java.net.URL(authorDetails);
-
- InputStream in = localJarFileURL.openStream();
- applicationProperties.load(in);
- in.close();
+ if (authorDetails != null)
+ {
+ java.net.URL localJarFileURL = new java.net.URL(authorDetails);
+ InputStream in = localJarFileURL.openStream();
+ applicationProperties.load(in);
+ in.close();
+ }
} catch (Exception ex)
{
System.out.println("Error reading author details: " + ex);
- applicationProperties.remove("AUTHORS");
- applicationProperties.remove("AUTHORFNAMES");
- applicationProperties.remove("YEAR");
+ authorDetails = null;
+ }
+ if (authorDetails == null)
+ {
+ applicationProperties.remove("AUTHORS");
+ applicationProperties.remove("AUTHORFNAMES");
+ applicationProperties.remove("YEAR");
}
loadBuildProperties(false);
&& (System.getProperty("java.awt.headless") == null || System
.getProperty("java.awt.headless").equals("false")))
{
-
- class VersionChecker extends Thread
+ new Thread()
{
@Override
public void run()
setProperty("LATEST_VERSION", remoteVersion);
}
- }
-
- VersionChecker vc = new VersionChecker();
- vc.start();
+ }.start();
}
else
{
}
// LOAD USERDEFINED COLOURS
- jalview.bin.Cache
- .initUserColourSchemes(getProperty("USER_DEFINED_COLOURS"));
+ Cache.initUserColourSchemes(getProperty("USER_DEFINED_COLOURS"));
jalview.io.PIRFile.useModellerOutput = Cache.getDefault("PIR_MODELLER",
false);
}
+ /**
+ * construct a resource URL for the given absolute resource pathname
+ *
+ * @param resourcePath
+ * @return
+ */
+ private static String resolveResourceURLFor(String resourcePath)
+ {
+ String url = null;
+ if (Platform.isJS() || !Cache.class.getProtectionDomain()
+ .getCodeSource().getLocation().toString().endsWith(".jar"))
+ {
+ try
+ {
+ url = Cache.class.getResource(resourcePath).toString();
+ } catch (Exception ex)
+ {
+
+ }
+ }
+ else
+ {
+ url = "jar:".concat(Cache.class.getProtectionDomain().getCodeSource()
+ .getLocation().toString().concat("!" + resourcePath));
+ }
+ return url;
+ }
+
public static void loadBuildProperties(boolean reportVersion)
{
String codeInstallation = getProperty("INSTALLATION");
*/
public static String getProperty(String key)
{
- return applicationProperties.getProperty(key);
+ String prop = applicationProperties.getProperty(key);
+ if (prop == null && Platform.isJS())
+ {
+ prop = applicationProperties.getProperty(Platform.getUniqueAppletID()
+ + "_" + JS_PROPERTY_PREFIX + key);
+ }
+ return prop;
}
/**
}
/**
- * These methods are used when checking if the saved preference is different
- * to the default setting
+ * Answers the value of the given property, or the supplied default value if
+ * the property is not set
*/
public static String getDefault(String property, String def)
{
- String string = getProperty(property);
- if (string != null)
- {
- return string;
- }
-
- return def;
+ String value = getProperty(property);
+ return value == null ? def : value;
}
/**