JAL-1026 - insert a sensible default for proxy so Jalview doesn't crash out immediatl...
[jalview.git] / src / jalview / bin / Cache.java
index 63a3412..141470a 100755 (executable)
@@ -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>
@@ -271,11 +277,14 @@ public class Cache
 
     if (getDefault("USE_PROXY", false))
     {
+      String proxyServer=getDefault("PROXY_SERVER", ""), proxyPort=getDefault("PROXY_PORT", "8080");
+      
       System.out.println("Using proxyServer: "
-              + getDefault("PROXY_SERVER", null) + " proxyPort: "
-              + getDefault("PROXY_PORT", null));
-      System.setProperty("http.proxyHost", getDefault("PROXY_SERVER", null));
-      System.setProperty("http.proxyPort", getDefault("PROXY_PORT", null));
+              + proxyServer + " proxyPort: "
+              + proxyPort );
+      
+      System.setProperty("http.proxyHost", proxyServer);
+      System.setProperty("http.proxyPort", proxyPort);
     }
 
     // LOAD THE AUTHORS FROM THE authors.props file
@@ -598,46 +607,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 +791,38 @@ public class Cache
     }
     return null;
   }
+
+  /**
+   * get and parse a property as an integer. send any parsing problems to System.err
+   * @param property
+   * @return null or Integer
+   */
+  public static Integer getIntegerProperty(String property)
+  {
+    String val=getProperty(property);
+    if (val!=null && (val=val.trim()).length()>0)
+    {
+      try {
+        return Integer.valueOf(val);
+      } catch (NumberFormatException x)
+      {
+        System.err.println("Invalid integer in property '"+property+"' (value was '"+val+"')");
+      }
+    }
+    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;
+  }
 }