(JAL-985,JAL-986) preferences documentation
[jalview.git] / src / jalview / bin / Cache.java
index ab08140..069589e 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -19,6 +19,8 @@ package jalview.bin;
 
 import java.awt.Color;
 import java.io.*;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 import org.apache.log4j.*;
@@ -131,6 +133,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>
@@ -139,7 +143,8 @@ import org.biojava.dasobert.dasregistry.Das1Source;
  *  * <li>DISCOVERY_START - Boolean - controls if discovery services are queried on
  * startup (JWS1 services only)</li>
  * <li>DISCOVERY_URLS - comma separated list of Discovery Service endpoints. (JWS1 services only)</li>
- * <li>SHOW_JWS1_SERVICES (true) enable or disable the original Jalview 2 services in the desktop GUI
+ * <li>SHOW_JWS1_SERVICES (true) enable or disable the original Jalview 2 services in the desktop GUI</li>
+ * <li>ENABLE_RSBS_EDITOR (false for 2.7 release) enable or disable RSBS editing panel in web service preferences</li> 
  * </ul>
  * @author $author$
  * @version $Revision$
@@ -767,4 +772,56 @@ public class Cache
     setProperty(property, jalview.util.Format
           .getHexString(colour));
   }
+
+  public static final DateFormat  date_format = SimpleDateFormat.getDateTimeInstance();
+
+  /**
+   * store a date in a jalview property
+   * @param string
+   * @param time
+   */
+  public static void setDateProperty(String property, Date time)
+  {
+    setProperty(property, date_format.format(time));
+  }
+  /**
+   * read a date stored in a jalview property
+   * @param property
+   * @return valid date as stored by setDateProperty, or null
+   * 
+   */
+  public static Date getDateProperty(String property)
+  {
+    String val = getProperty(property);
+    if (val!=null)
+    {
+      try {
+        return date_format.parse(val);
+      } catch (Exception ex)
+      {
+        System.err.println("Invalid or corrupt date in property '"+property+"' : value was '"+val+"'");
+      }
+    }
+    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;
+  }
 }