Merge remote-tracking branch 'origin/Tcoffee_JAL-1065' into develop
[jalview.git] / src / jalview / bin / Cache.java
index aa1a022..b24304a 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -17,6 +17,9 @@
  */
 package jalview.bin;
 
+import jalview.ws.dbsources.das.api.DasSourceRegistryI;
+import jalview.ws.dbsources.das.datamodel.DasSourceRegistry;
+
 import java.awt.Color;
 import java.io.*;
 import java.text.DateFormat;
@@ -24,7 +27,6 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 import org.apache.log4j.*;
-import org.biojava.dasobert.dasregistry.Das1Source;
 
 /**
  * Stores and retrieves Jalview Application Properties Lists and fields within
@@ -124,6 +126,8 @@ import org.biojava.dasobert.dasregistry.Das1Source;
  * histogram.</li>
  * <li>SHOW_CONSENSUS_LOGO (false) Show consensus annotation row's sequence
  * logo.</li>
+ * <li>NORMALISE_CONSENSUS_LOGO (false) Show consensus annotation row's sequence
+ * logo normalised to row height rather than histogram height.</li>
  * <li>FOLLOW_SELECTIONS (true) Controls whether a new alignment view should
  * respond to selections made in other alignments containing the same sequences.
  * </li>
@@ -133,6 +137,8 @@ import org.biojava.dasobert.dasregistry.Das1Source;
  * <li>ANNOTATIONCOLOUR_MAX (red) Shade used for maximum value of annotation when shading by annotation</li>
  * <li>www.jalview.org (http://www.jalview.org) a property enabling all HTTP requests to be redirected to a mirror of http://www.jalview.org</li>
  * 
+ * <li>FIGURE_AUTOIDWIDTH (false) Expand the left hand column of an exported alignment figure to accommodate even the longest sequence ID or annotation label.</li>
+ * <li>FIGURE_FIXEDIDWIDTH Specifies the width to use for the left-hand column when exporting an alignment as a figure (setting FIGURE_AUTOIDWIDTH to true will override this).</li>
  * <li></li>
  * 
  * </ul>
@@ -278,6 +284,26 @@ public class Cache
       System.setProperty("http.proxyPort", getDefault("PROXY_PORT", null));
     }
 
+    // LOAD THE AUTHORS FROM THE authors.props file
+    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();
+    } catch (Exception ex)
+    {
+      System.out.println("Error reading author details: " + ex);
+      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
@@ -578,46 +604,6 @@ public class Cache
   }
 
   /**
-   * generate Das1Sources from the local das source list
-   * 
-   * @return Vector of Das1Sources
-   */
-  public static Vector getLocalDasSources()
-  {
-    Vector localSources = new Vector();
-    String local = jalview.bin.Cache.getProperty("DAS_LOCAL_SOURCE");
-    if (local != null)
-    {
-      StringTokenizer st = new StringTokenizer(local, "\t");
-      while (st.hasMoreTokens())
-      {
-        String token = st.nextToken();
-        int bar = token.indexOf("|");
-        Das1Source source = new Das1Source();
-        source.setUrl(token.substring(bar + 1));
-        if (source.getUrl().startsWith("sequence:"))
-        {
-          source.setUrl(source.getUrl().substring(9));
-          // this source also serves sequences as well as features
-          source.setCapabilities(new String[]
-          { "sequence", "features" });
-        }
-        else
-        {
-          // default is that all user added sources serve features
-          source.setCapabilities(new String[]
-          { "features" });
-        }
-
-        source.setNickname(token.substring(0, bar));
-
-        localSources.addElement(source);
-      }
-    }
-    return localSources;
-  }
-
-  /**
    * GA tracker object - actually JGoogleAnalyticsTracker null if tracking not
    * enabled.
    */
@@ -822,4 +808,18 @@ 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;
+  }
 }