added a an axis log4j appender property to the jalview.Cache.
[jalview.git] / src / jalview / bin / Cache.java
index b054bc3..7eaae62 100755 (executable)
-/********************
- * 2004 Jalview Reengineered
- * Barton Group
- * Dundee University
- *
- * AM Waterhouse
- *******************/
-
-
-package jalview.bin;
-
-public class Cache
-{
-  public static String LAST_DIRECTORY = ".";
-}
+/********************\r
+ * 2004 Jalview Reengineered\r
+ * Barton Group\r
+ * Dundee University\r
+ *\r
+ * AM Waterhouse\r
+ *******************/\r
+\r
+\r
+package jalview.bin;\r
+import java.util.*;\r
+import java.io.*;\r
+\r
+import java.util.jar.*;\r
+public class Cache\r
+{\r
+  public static String  VERSION = "ß test";\r
+  public static String  BUILD_DATE = "1-1-2005";\r
+\r
+  public static Properties applicationProperties;\r
+  // Current properties include:\r
+  //\r
+  // LAST_DIRECTORY   , use this to cache record of where the user looked to find a file\r
+  // UNIPROT_CACHE\r
+  // USER_DEFINED_COLOUR - file describing last user set colours\r
+  // FONT_NAME\r
+  // FONT_STYLE\r
+  // FONT_SIZE\r
+  // logs.Axis.Level - one of the stringified Levels for log4j controlling the logging level for axis (used for web services)\r
+\r
+  public static void loadProperties()\r
+  {\r
+    // get last build time.\r
+    try{\r
+          long date = 0;\r
+\r
+          String localFile = Cache.class.getProtectionDomain().getCodeSource().getLocation().toString();\r
+          localFile = localFile.concat("!/");\r
+          String tmpString = "jar:";\r
+          String localJarFileString = tmpString.concat(localFile);\r
+          java.net.URL localJarFileURL = new java.net.URL(localJarFileString);\r
+          java.net.JarURLConnection localJarFile = (java.net.JarURLConnection)localJarFileURL.openConnection();\r
+\r
+          date = localJarFile.getLastModified();\r
+\r
+          if(date==0)\r
+          {\r
+            // this is called for unpackaged class files.\r
+            // not entirely accurate as it only tells you when Cache.class was last compiled\r
+            java.net.URL url = Cache.class.getResource("/jalview/bin/Cache.class");\r
+            java.io.File f = new java.io.File(url.getFile());\r
+            date = f.lastModified();\r
+          }\r
+\r
+          BUILD_DATE = new Date( date ).toString();\r
+\r
+\r
+    }catch(Exception ex){ex.printStackTrace();}\r
+\r
+\r
+    applicationProperties = new Properties();\r
+\r
+    try\r
+    {\r
+      FileInputStream in = new FileInputStream(System.getProperty("user.home") +\r
+                                               "/.jalview_properties");\r
+      applicationProperties = new Properties();\r
+      applicationProperties.load(in);\r
+      in.close();\r
+    }\r
+    catch (Exception ex)\r
+    { }\r
+  }\r
+\r
+  public static String getProperty(String key)\r
+  {\r
+    return  applicationProperties.getProperty(key);\r
+  }\r
+\r
+  public static String setProperty(String key, String obj)\r
+  {\r
+    try\r
+    {\r
+      FileOutputStream out = new FileOutputStream(System.getProperty(\r
+          "user.home") + "/.jalview_properties");\r
+\r
+      applicationProperties.setProperty(key, obj);\r
+\r
+      applicationProperties.store(out, "---JalviewX Properties File---");\r
+      out.close();\r
+    }\r
+    catch (Exception ex)\r
+    {}\r
+\r
+    return obj;\r
+\r
+  }\r
+\r
+\r
+\r
+\r
+\r
+}\r