X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCache.java;h=a64e86994d8cfa35add4fd6eb44fb9f4d518913e;hb=afe4b88500a5d61bc8d312909cfdde2b7cdd53df;hp=8015cd52141c1938da15116a6092d71a010f2a6a;hpb=77e37b9460441033c19756d8e75b681c087cb615;p=jalview.git
diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java
index 8015cd5..a64e869 100755
--- a/src/jalview/bin/Cache.java
+++ b/src/jalview/bin/Cache.java
@@ -43,6 +43,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
@@ -52,7 +53,9 @@ import java.util.TreeSet;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
-import jalview.analytics.GoogleAnalytics4;
+import jalview.analytics.Plausible;
+import jalview.bin.argparser.Arg;
+import jalview.bin.argparser.ArgParser;
import jalview.datamodel.PDBEntry;
import jalview.gui.Preferences;
import jalview.gui.UserDefinedColours;
@@ -128,7 +131,7 @@ import jalview.ws.sifts.SiftsSettings;
* service
*
QUESTIONNAIRE last questionnaire:responder id string from questionnaire
* service
- * USAGESTATS (false - user prompted) Enable google analytics tracker for
+ * USAGESTATS (false - user prompted) Enable analytics tracker for
* collecting usage statistics
* SHOW_OVERVIEW boolean for overview window display
* ANTI_ALIAS boolean for smooth fonts
@@ -140,6 +143,10 @@ import jalview.ws.sifts.SiftsSettings;
* WRAP_ALIGNMENT
* EPS_RENDERING (Prompt each time|Lineart|Text) default for EPS rendering
* style check
+ * BITMAP_SCALE - scale factor for PNG export - default 0.0 - native
+ * resolution
+ * BITMAP_HEIGHT - height bound for PNG export or 0 for unbound
+ * BITMAP_WIDTH - width bound for PNG export or 0 for unbound
* SORT_ALIGNMENT (No sort|Id|Pairwise Identity)
* SEQUENCE_LINKS list of name|URL pairs for opening a url with
* $SEQUENCE_ID$
@@ -406,9 +413,9 @@ public class Cache
fis = new URL(propertiesFile).openStream();
if (!Jalview.quiet())
{
- System.out.println(
+ jalview.bin.Console.outPrintln(
"Loading jalview properties from : " + propertiesFile);
- System.out.println(
+ jalview.bin.Console.outPrintln(
"Disabling Jalview writing to user's local properties file.");
}
propsAreReadOnly = true;
@@ -439,7 +446,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading properties file: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading properties file: " + ex);
}
}
@@ -496,7 +504,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading author details: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading author details: " + ex);
authorDetails = null;
}
if (authorDetails == null)
@@ -582,10 +591,10 @@ public class Cache
{
if (!Jalview.quiet())
{
- System.out.println(
+ jalview.bin.Console.errPrintln(
"Non-fatal exception when checking version at "
+ remoteBuildPropertiesUrl + ":");
- System.out.println(ex);
+ jalview.bin.Console.printStackTrace(ex);
}
remoteVersion = getProperty("VERSION");
}
@@ -635,8 +644,8 @@ public class Cache
url = Cache.class.getResource(resourcePath).toString();
} catch (Exception ex)
{
- System.err.println("Failed to resolve resource " + resourcePath
- + ": " + ex.getMessage());
+ jalview.bin.Console.errPrintln("Failed to resolve resource "
+ + resourcePath + ": " + ex.getMessage());
}
}
else
@@ -686,7 +695,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error reading build details: " + ex);
+ jalview.bin.Console
+ .outPrintln("Error reading build details: " + ex);
applicationProperties.remove("VERSION");
}
String codeVersion = getProperty("VERSION");
@@ -706,8 +716,9 @@ public class Cache
new BuildDetails(codeVersion, null, codeInstallation);
if (printVersion && reportVersion)
{
- System.out.println(ChannelProperties.getProperty("app_name")
- + " version: " + codeVersion + codeInstallation);
+ jalview.bin.Console
+ .outPrintln(ChannelProperties.getProperty("app_name")
+ + " version: " + codeVersion + codeInstallation);
}
}
@@ -783,8 +794,27 @@ public class Cache
} catch (NumberFormatException e)
{
if (!Jalview.quiet())
- System.out.println("Error parsing int property '" + property
- + "' with value '" + string + "'");
+ jalview.bin.Console.errPrintln("Error parsing int property '"
+ + property + "' with value '" + string + "'");
+ }
+ }
+
+ return def;
+ }
+
+ public static float getDefault(String property, float def)
+ {
+ String string = getProperty(property);
+ if (string != null)
+ {
+ try
+ {
+ def = Float.parseFloat(string);
+ } catch (NumberFormatException e)
+ {
+ if (!Jalview.quiet())
+ jalview.bin.Console.errPrintln("Error parsing float property '"
+ + property + "' with value '" + string + "'");
}
}
@@ -834,7 +864,7 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println(
+ jalview.bin.Console.errPrintln(
"Error setting property: " + key + " " + obj + "\n" + ex);
}
return oldValue;
@@ -866,7 +896,7 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error saving properties: " + ex);
+ jalview.bin.Console.errPrintln("Error saving properties: " + ex);
}
}
}
@@ -954,11 +984,11 @@ public class Cache
}
/**
- * Initialise the google tracker if it is not done already.
+ * Initialise the tracker if it is not done already.
*/
- public static void initGoogleTracker()
+ public static void initAnalytics()
{
- GoogleAnalytics4.setEnabled(true);
+ Plausible.setEnabled(true);
String appName = ChannelProperties.getProperty("app_name") + " Desktop";
String version = Cache.getProperty("VERSION") + "_"
@@ -973,25 +1003,22 @@ public class Cache
} catch (UnsupportedEncodingException e)
{
*/
- path = ("/" + String.join("/", appName, version, APPLICATION_STARTED))
- .replace(' ', '+');
+ List pathParts = new ArrayList<>();
+ pathParts.add(appName);
+ pathParts.add(version);
+ pathParts.add(APPLICATION_STARTED);
+ path = ("/" + String.join("/", pathParts)).replace(' ', '+');
/*
}
*/
- GoogleAnalytics4 ga4 = GoogleAnalytics4.getInstance();
-
- // This will add a page_view similar to the old UA analytics.
- // We probably want to get rid of this once the application_launch event
- // is being processed properly.
- ga4.sendAnalytics("page_view", "page_location", path, "page_title",
- APPLICATION_STARTED);
+ Plausible plausible = Plausible.getInstance();
// This will send a new "application_launch" event with parameters
// including the old-style "path", the channel name and version
- ga4.sendAnalytics("application_launch", true, "page_location", path);
+ plausible.sendEvent("application_launch", path, true);
}
- private static final String APPLICATION_STARTED = "Application Started.";
+ private static final String APPLICATION_STARTED = "Application Started";
/**
* get the user's default colour if available
@@ -1059,8 +1086,9 @@ public class Cache
return date_format.parse(val);
} catch (Exception ex)
{
- System.err.println("Invalid or corrupt date in property '"
- + propertyName + "' : value was '" + val + "'");
+ jalview.bin.Console
+ .errPrintln("Invalid or corrupt date in property '"
+ + propertyName + "' : value was '" + val + "'");
}
}
return null;
@@ -1083,8 +1111,8 @@ public class Cache
return Integer.valueOf(val);
} catch (NumberFormatException x)
{
- System.err.println("Invalid integer in property '" + property
- + "' (value was '" + val + "')");
+ jalview.bin.Console.errPrintln("Invalid integer in property '"
+ + property + "' (value was '" + val + "')");
}
}
return null;
@@ -1148,7 +1176,8 @@ public class Cache
} catch (Exception ex)
{
if (!Jalview.quiet())
- System.out.println("Error loading User ColourFile\n" + ex);
+ jalview.bin.Console
+ .outPrintln("Error loading User ColourFile\n" + ex);
}
}
if (!files.equals(coloursFound.toString()))
@@ -1422,11 +1451,10 @@ public class Cache
if (customProxySet &&
// we have a username but no password for the scheme being
// requested
- (protocol.equalsIgnoreCase("http")
- && (httpUser != null
- && httpUser.length() > 0
- && (httpPassword == null
- || httpPassword.length == 0)))
+ (protocol.equalsIgnoreCase("http")
+ && (httpUser != null && httpUser.length() > 0
+ && (httpPassword == null
+ || httpPassword.length == 0)))
|| (protocol.equalsIgnoreCase("https")
&& (httpsUser != null
&& httpsUser.length() > 0
@@ -1636,26 +1664,36 @@ public class Cache
}
if (file == null || !file.exists())
{
+ if (file != null)
+ {
+ jalview.bin.Console
+ .errPrintln("Could not load bootstrap preferences file '"
+ + file.getPath() + "'");
+ }
String channelPrefsFilename = ChannelProperties
.getProperty("preferences.filename");
String propertiesFilename = System.getProperty("user.home")
+ File.separatorChar + channelPrefsFilename;
+ jalview.bin.Console.errPrintln(
+ "Using default properties file '" + propertiesFilename + "'");
file = new File(propertiesFilename);
}
if (file == null || !file.exists())
+
{
String releasePrefsFilename = fallbackPropertiesFile;
String releasePropertiesFilename = System.getProperty("user.home")
+ File.separatorChar + releasePrefsFilename;
+ jalview.bin.Console.errPrintln("Falling back to properties file '"
+ + releasePropertiesFilename + "'");
file = new File(releasePropertiesFilename);
}
- if (filename == null)
- return null;
if (!file.exists())
{
- System.err.println("Could not load bootstrap preferences file '"
- + filename + "'");
+ jalview.bin.Console
+ .errPrintln("Could not load bootstrap preferences file '"
+ + file.getPath() + "'");
return null;
}
@@ -1671,11 +1709,12 @@ public class Cache
}
} catch (FileNotFoundException e)
{
- System.err.println("Could not find bootstrap preferences file '"
- + file.getAbsolutePath() + "'");
+ jalview.bin.Console
+ .errPrintln("Could not find bootstrap preferences file '"
+ + file.getAbsolutePath() + "'");
} catch (IOException e)
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"IOException when loading bootstrap preferences file '"
+ file.getAbsolutePath() + "'");
}
@@ -1694,4 +1733,10 @@ public class Cache
{
return key == null ? null : sessionProperties.get(key);
}
+
+ public static boolean getArgCacheDefault(Arg a, String pref, boolean def)
+ {
+ ArgParser ap = Jalview.getInstance().getArgParser();
+ return ap.isSet(a) ? ap.getBoolean(a) : getDefault(pref, def);
+ }
}