Merge branch 'develop' into trialMerge
[jalview.git] / src / jalview / bin / Cache.java
index dcd6546..3c919cb 100755 (executable)
@@ -28,8 +28,7 @@ import jalview.schemes.UserColourScheme;
 import jalview.structure.StructureImportSettings;
 import jalview.urls.IdOrgSettings;
 import jalview.util.ColorUtils;
-import jalview.ws.dbsources.das.api.DasSourceRegistryI;
-import jalview.ws.dbsources.das.datamodel.DasSourceRegistry;
+import jalview.util.Platform;
 import jalview.ws.sifts.SiftsSettings;
 
 import java.awt.Color;
@@ -116,7 +115,6 @@ import org.apache.log4j.SimpleLayout;
  * service</li>
  * <li>USAGESTATS (false - user prompted) Enable google analytics tracker for
  * collecting usage statistics</li>
- * <li>DAS_LOCAL_SOURCE list of local das sources</li>
  * <li>SHOW_OVERVIEW boolean for overview window display</li>
  * <li>ANTI_ALIAS boolean for smooth fonts</li>
  * <li>RIGHT_ALIGN_IDS boolean</li>
@@ -136,9 +134,7 @@ import org.apache.log4j.SimpleLayout;
  * sequence id (must be in SEQUENCE_LINKS or STORED_LINKS)
  * <li>GROUP_LINKS list of name|URL[|&lt;separator&gt;] tuples - see
  * jalview.utils.GroupURLLink for more info</li>
- * <li>DAS_REGISTRY_URL the registry to query</li>
  * <li>DEFAULT_BROWSER for unix</li>
- * <li>DAS_ACTIVE_SOURCE list of active sources</li>
  * <li>SHOW_MEMUSAGE boolean show memory usage and warning indicator on desktop
  * (false)</li>
  * <li>VERSION_CHECK (true) check for the latest release version from
@@ -228,12 +224,6 @@ public class Cache
    */
   public static final String JALVIEWLOGLEVEL = "logs.Jalview.level";
 
-  public static final String DAS_LOCAL_SOURCE = "DAS_LOCAL_SOURCE";
-
-  public static final String DAS_REGISTRY_URL = "DAS_REGISTRY_URL";
-
-  public static final String DAS_ACTIVE_SOURCE = "DAS_ACTIVE_SOURCE";
-
   /**
    * Sifts settings
    */
@@ -288,7 +278,8 @@ public class Cache
   /** Default file is ~/.jalview_properties */
   static String propertiesFile;
 
-  private static boolean propsAreReadOnly = false;
+  private static boolean propsAreReadOnly = /** @j2sNative true || */
+          false;
 
   public static void initLogger()
   {
@@ -397,6 +388,8 @@ public class Cache
     }
 
     // LOAD THE AUTHORS FROM THE authors.props file
+    boolean ignore = Platform.isJS();
+    if (!ignore)
     try
     {
       String authorDetails = "jar:"
@@ -408,17 +401,25 @@ public class Cache
       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");
+      ignore = true;
     }
 
+    if (ignore) {
+        applicationProperties.remove("AUTHORS");
+        applicationProperties.remove("AUTHORFNAMES");
+        applicationProperties.remove("YEAR");
+    }
+    
     // FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar
     // MUST FOLLOW READING OF LOCAL PROPERTIES FILE AS THE
     // VERSION MAY HAVE CHANGED SINCE LAST USING JALVIEW
+    // BH 2019.01.25 switching to Platform.isJS()
+    ignore = Platform.isJS();
+    if (!ignore)
     try
     {
       String buildDetails = "jar:".concat(Cache.class.getProtectionDomain()
@@ -433,7 +434,11 @@ public class Cache
     } catch (Exception ex)
     {
       System.out.println("Error reading build details: " + ex);
-      applicationProperties.remove("VERSION");
+      ignore = true;
+    }
+    
+    if (ignore) {
+        applicationProperties.remove("VERSION");
     }
 
     String jnlpVersion = System.getProperty("jalview.version");
@@ -602,22 +607,35 @@ public class Cache
     return def;
   }
 
-  /**
-   * These methods are used when checking if the saved preference is different
-   * to the default setting
-   */
-  public static String getDefault(String property, String def)
+  public static int getDefault(String property, int def)
   {
     String string = getProperty(property);
     if (string != null)
     {
-      return string;
+      try
+      {
+        def = Integer.parseInt(string);
+      } catch (NumberFormatException e)
+      {
+        System.out.println("Error parsing int property '" + property
+                + "' with value '" + string + "'");
+      }
     }
 
     return def;
   }
 
   /**
+   * 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 value = getProperty(property);
+    return value == null ? def : value;
+  }
+
+  /**
    * Stores property in the file "HOME_DIR/.jalview_properties"
    * 
    * @param key
@@ -982,22 +1000,6 @@ public class Cache
     return null;
   }
 
-  private static DasSourceRegistryI sourceRegistry = null;
-
-  /**
-   * initialise and ..
-   * 
-   * @return instance of the das source registry
-   */
-  public static DasSourceRegistryI getDasSourceRegistry()
-  {
-    if (sourceRegistry == null)
-    {
-      sourceRegistry = new DasSourceRegistry();
-    }
-    return sourceRegistry;
-  }
-
   /**
    * Set the specified value, or remove it if null or empty. Does not save the
    * properties file.
@@ -1072,4 +1074,19 @@ public class Cache
       }
     }
   }
+
+       /**
+        * Add a known domain that implements access-control-allow-origin:* bh 2018
+        * 
+        * @param defaultUniprotDomain
+        */
+       public static void addJ2SDirectDatabaseCall(String domain) 
+       {
+
+               /**
+                * @j2sNative
+                * 
+                *                      J2S.addDirectDatabaseCall(domain);
+                */
+       }
 }