Properties file is used in preference to viewport/cache/preferences replicating defaults
authoramwaterhouse <Andrew Waterhouse>
Tue, 9 Aug 2005 16:47:21 +0000 (16:47 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 9 Aug 2005 16:47:21 +0000 (16:47 +0000)
src/jalview/bin/Cache.java
src/jalview/bin/Jalview.java
src/jalview/gui/AlignViewport.java

index d8a6d3d..d5757df 100755 (executable)
@@ -30,7 +30,6 @@ import java.net.*;
  * <br><br>Current properties include:\r
  * <br>logs.Axis.Level - one of the stringified Levels for log4j controlling the logging level for axis (used for web services)\r
  * <br>logs.Castor.Level - one of the stringified Levels for log4j controlling the logging level for castor (used for serialization)\r
- * <br>jalview.browser - used in the jalview.utils.browserLauncher class if it doesn't know what else to do.\r
  * <br>SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_Y=285,SCREEN_X=371,SHOW_FULLSCREEN\r
  * FONT_NAME,FONT_SIZE,FONT_STYLE,GAP_SYMBOL,LAST_DIRECTORY,USER_DEFINED_COLOUR\r
  * SHOW_FULL_ID,SHOW_IDENTITY,SHOW_QUALITY,SHOW_ANNOTATIONS,SHOW_CONSERVATION,\r
@@ -43,7 +42,7 @@ public class Cache
 {\r
 \r
     /** Jalview Properties */\r
-    public static Properties applicationProperties;\r
+    public static Properties applicationProperties = new Properties();\r
 \r
     /** Default file is  ~/.jalview_properties */\r
     static String propertiesFile;\r
@@ -51,7 +50,6 @@ public class Cache
     /** Called when Jalview is started */\r
     public static void loadProperties(String propsFile)\r
     {\r
-        applicationProperties = new Properties();\r
         propertiesFile = propsFile;\r
         if (propsFile == null)\r
         {\r
@@ -71,6 +69,14 @@ public class Cache
           System.out.println("Error reading properties file: "+ex);\r
         }\r
 \r
+      if(getDefault("USE_PROXY", false))\r
+      {\r
+          System.out.println("Using proxyServer: "+getDefault("PROXY_SERVER", null)+\r
+                           " proxyPort: "+getDefault("PROXY_PORT", null));\r
+          System.setProperty("http.proxyHost", getDefault("PROXY_SERVER", null));\r
+          System.setProperty("http.proxyPort", getDefault("PROXY_PORT", null));\r
+      }\r
+\r
         // FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar\r
         // MUST FOLLOW READING OF LOCAL PROPERTIES FILE AS THE\r
         // VERSION MAY HAVE CHANGED SINCE LAST USING JALVIEW\r
@@ -114,30 +120,55 @@ public class Cache
                 System.getProperty("java.awt.headless")==null\r
              || System.getProperty("java.awt.headless").equals("false")))\r
         {\r
-          try{\r
-            java.net.URL url = new java.net.URL("http://www.jalview.org/webstart/jalview.jnlp");\r
-            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));\r
-            String line = null;\r
-            while( (line = in.readLine()) !=null)\r
-            {\r
-              if(line.indexOf("jalview.version")==-1)\r
-                continue;\r
 \r
-              line = line.substring(line.indexOf("value=")+7);\r
-              line = line.substring(0, line.lastIndexOf("\""));\r
-              jnlpVersion = line;\r
-              break;\r
+\r
+          class VersionChecker\r
+              extends Thread\r
+          {\r
+            public void run()\r
+            {\r
+              String jnlpVersion = null;\r
+              try\r
+              {\r
+                java.net.URL url = new java.net.URL(\r
+                    "http://www.jalview.org/webstart/jalview.jnlp");\r
+                BufferedReader in = new BufferedReader(new InputStreamReader(url.\r
+                    openStream()));\r
+                String line = null;\r
+                while ( (line = in.readLine()) != null)\r
+                {\r
+                  if (line.indexOf("jalview.version") == -1)\r
+                    continue;\r
+\r
+                  line = line.substring(line.indexOf("value=") + 7);\r
+                  line = line.substring(0, line.lastIndexOf("\""));\r
+                  jnlpVersion = line;\r
+                  break;\r
+                }\r
+              }\r
+              catch (Exception ex)\r
+              {\r
+                System.out.println(ex);\r
+                jnlpVersion = getProperty("VERSION");\r
+              }\r
+\r
+              setProperty("LATEST_VERSION", jnlpVersion);\r
             }\r
-          }catch(Exception ex)\r
-          {  jnlpVersion =  codeVersion; }\r
+          }\r
 \r
-          System.out.println("Latest : "+jnlpVersion);\r
+          VersionChecker vc = new VersionChecker();\r
+          vc.start();\r
+        }\r
+        else\r
+        {\r
+          setProperty("LATEST_VERSION", jnlpVersion);\r
         }\r
 \r
-        setProperty("LATEST_VERSION", jnlpVersion);\r
         setProperty("VERSION", codeVersion);\r
     }\r
 \r
+\r
+\r
     /**\r
      * Gets Jalview application property of given key. Returns null\r
      * if key not found\r
@@ -151,6 +182,37 @@ public class Cache
         return applicationProperties.getProperty(key);\r
     }\r
 \r
+\r
+    /** These methods are used when checking if the saved preference\r
+     * is different to the default setting\r
+     */\r
+\r
+    public static boolean getDefault(String property, boolean def)\r
+    {\r
+      String string = getProperty(property);\r
+      if (string != null)\r
+      {\r
+        def = Boolean.valueOf(string).booleanValue();\r
+      }\r
+\r
+      return def;\r
+    }\r
+\r
+    /** These methods are used when checking if the saved preference\r
+    * is different to the default setting\r
+    */\r
+    public static String getDefault(String property, String def)\r
+    {\r
+      String string = getProperty(property);\r
+      if (string != null)\r
+      {\r
+        return string;\r
+      }\r
+\r
+      return def;\r
+    }\r
+\r
+\r
     /**\r
      * Stores property in the file "HOME_DIR/.jalview_properties"\r
      *\r
@@ -164,16 +226,24 @@ public class Cache
         try\r
         {\r
             FileOutputStream out = new FileOutputStream(propertiesFile);\r
-\r
             applicationProperties.setProperty(key, obj);\r
-\r
             applicationProperties.store(out, "---JalviewX Properties File---");\r
             out.close();\r
         }\r
         catch (Exception ex)\r
+        {    }\r
+        return obj;\r
+    }\r
+\r
+    public static void saveProperties()\r
+    {\r
+        try\r
         {\r
+            FileOutputStream out = new FileOutputStream(propertiesFile);\r
+            applicationProperties.store(out, "---JalviewX Properties File---");\r
+            out.close();\r
         }\r
-\r
-        return obj;\r
+        catch (Exception ex)\r
+        {    }\r
     }\r
 }\r
index 3ab3bf4..882818c 100755 (executable)
@@ -25,9 +25,6 @@ import org.apache.log4j.*;
 import javax.swing.*;\r
 \r
 import java.util.Vector;\r
-import jalview.datamodel.Alignment;\r
-import jalview.io.FormatAdapter;\r
-import jalview.datamodel.SequenceI;\r
 \r
 \r
 /**\r
@@ -103,18 +100,17 @@ public class Jalview
           }\r
 \r
 \r
-     if (aparser.contains("nodisplay"))\r
-      System.setProperty("java.awt.headless", "true");\r
-\r
-    if(   System.getProperty("java.awt.headless") != null\r
-          && System.getProperty("java.awt.headless").equals("true"))\r
-      {\r
-        headless = true;\r
-      }\r
+          if (aparser.contains("nodisplay"))\r
+            System.setProperty("java.awt.headless", "true");\r
 \r
+          if (System.getProperty("java.awt.headless") != null\r
+              && System.getProperty("java.awt.headless").equals("true"))\r
+          {\r
+            headless = true;\r
+          }\r
 \r
         Cache.loadProperties(aparser.getValue("props"));\r
-        jalview.gui.Preferences.initPreferences();\r
+\r
         try\r
         {\r
           initLogger();\r
@@ -131,9 +127,8 @@ public class Jalview
           try\r
           {\r
             UIManager.setLookAndFeel(\r
-                //  "javax.swing.plaf.metal.MetalLookAndFeel"\r
-                //  "javax.swing.plaf.multi.MultiLookAndFeel"\r
-                UIManager.getSystemLookAndFeelClassName());\r
+                UIManager.getSystemLookAndFeelClassName()\r
+                );\r
           }\r
           catch (Exception ex)\r
           {\r
@@ -234,11 +229,11 @@ public class Jalview
         //////////////////////\r
           if (\r
               !headless &&\r
-              jalview.gui.Preferences.showStartupFile &&\r
-              jalview.gui.Preferences.startupFile != null)\r
+              jalview.bin.Cache.getProperty("SHOW_STARTUP_FILE").equals("true") &&\r
+              jalview.bin.Cache.getProperty("STARTUP_FILE") != null)\r
           {\r
 \r
-            file = jalview.gui.Preferences.startupFile;\r
+            file = jalview.bin.Cache.getProperty("STARTUP_FILE");\r
             protocol = "File";\r
 \r
             if (file.indexOf("http:") > -1)\r
index 904e1e2..05927b6 100755 (executable)
@@ -106,48 +106,43 @@ public class AlignViewport
      */\r
     public void updateFromPreferences()\r
     {\r
-        showFullId = Preferences.showFullId;\r
-        showAnnotation = Preferences.showAnnotation;\r
-        showConservation = Preferences.showConservation;\r
-        showQuality = Preferences.showQuality;\r
-        showIdentity = Preferences.showIdentity;\r
-        showFullId = Preferences.showFullId;\r
-\r
-        String fontName = Preferences.fontName;\r
-        String fontStyle = Preferences.fontStyle;\r
-        String fontSize = Cache.getProperty("FONT_SIZE");\r
-\r
-        if ((fontName != null) && (fontStyle != null) && (fontSize != null))\r
-        {\r
-            int style = 0;\r
+      showFullId = Cache.getDefault("SHOW_FULL_ID", true);\r
+      showAnnotation = Cache.getDefault("SHOW_ANNOTATIONS", true);\r
+      showConservation = Cache.getDefault("SHOW_CONSERVATION", true);\r
 \r
-            if (fontStyle.equals("bold"))\r
-            {\r
-                style = 1;\r
-            }\r
-            else if (fontStyle.equals("italic"))\r
-            {\r
-                style = 2;\r
-            }\r
+      showQuality = Cache.getDefault("SHOW_QUALITY", true);\r
+      showIdentity = Cache.getDefault("SHOW_IDENTITY", true);\r
 \r
-            setFont(new Font(fontName, style, Integer.parseInt(fontSize)));\r
-        }\r
-        else\r
-        {\r
-            setFont(font);\r
-        }\r
+       String fontName = Cache.getDefault("FONT_NAME", "SansSerif");\r
+       String fontStyle = Cache.getDefault("FONT_STYLE", Font.PLAIN + "") ;\r
+       String fontSize = Cache.getDefault("FONT_SIZE", "10");\r
+\r
+       int style = 0;\r
+\r
+       if (fontStyle.equals("bold"))\r
+       {\r
+         style = 1;\r
+       }\r
+       else if (fontStyle.equals("italic"))\r
+       {\r
+         style = 2;\r
+       }\r
+\r
+       setFont(new Font(fontName, style, Integer.parseInt(fontSize)));\r
+\r
+\r
+       alignment.setGapCharacter( Cache.getDefault("GAP_SYMBOL", "-").charAt(0) );\r
 \r
-        alignment.setGapCharacter(Preferences.gapSymbol);\r
 \r
         // We must set conservation and consensus before setting colour,\r
         // as Blosum and Clustal require this to be done\r
         updateConservation();\r
         updateConsensus();\r
 \r
-        if (Preferences.defaultColour != null)\r
+        if (jalview.bin.Cache.getProperty("DEFAULT_COLOUR") != null)\r
         {\r
-            globalColourScheme = ColourSchemeProperty.getColour(alignment,\r
-                    Preferences.defaultColour);\r
+          globalColourScheme = ColourSchemeProperty.getColour(alignment,\r
+              jalview.bin.Cache.getProperty("DEFAULT_COLOUR"));\r
 \r
             if (globalColourScheme instanceof UserColourScheme)\r
             {\r
@@ -161,6 +156,8 @@ public class AlignViewport
         }\r
     }\r
 \r
+\r
+\r
     /**\r
      * DOCUMENT ME!\r
      *\r