JAL-3446 AppletParams
authorBobHanson <hansonr@stolaf.edu>
Sun, 7 Jun 2020 23:39:37 +0000 (18:39 -0500)
committerBobHanson <hansonr@stolaf.edu>
Sun, 7 Jun 2020 23:39:37 +0000 (18:39 -0500)
doc/JalviewJS-startupParams.xlsx [new file with mode: 0644]
src/jalview/bin/AppletParams.java

diff --git a/doc/JalviewJS-startupParams.xlsx b/doc/JalviewJS-startupParams.xlsx
new file mode 100644 (file)
index 0000000..d32fc48
Binary files /dev/null and b/doc/JalviewJS-startupParams.xlsx differ
index 3642985..726734d 100644 (file)
@@ -8,7 +8,15 @@ import java.util.Map;
 import jalview.gui.Preferences;
 
 /**
- * Collection of all known applet tags from JalviewLite
+ * Collection of all known applet tags from JalviewLite.
+ * Three cases; can be one or more of these:
+ * 
+ * CASE I. args[] name and value for ArgsParser
+ * 
+ * CASE II. applet parameter for JalviewJSApp
+ * 
+ * CASE III. mapped to a Preference
+ * 
  * 
  * @author hansonr
  *
@@ -163,14 +171,20 @@ public class AppletParams extends HashMap<String, Object>
     // note that Application arguments ARE case-sensitive, but
     // Applet.getParameter() is not.
 
-    String appletName = prefName.toLowerCase();
-    String argName = prefName;
+    // prefName // CASE III
+
+    String argName = null;  // CASE I                
+
+    String appletName = prefName.toLowerCase();   // CASE II
+
+    // by nulling one or more of these names, that route will not be used.
+    
     switch (appletName)
     {
 
     case "file":
       argName = "open";
-      appletName = null;
+      prefName = null;
       value = resourcePath + value;
       break;
     case "file2":
@@ -178,27 +192,34 @@ public class AppletParams extends HashMap<String, Object>
       prefName = null;
       value = resourcePath + value;
       break;
-    case "features":
-    case "jnetfile":
-    case "jpredfile":
-    case "pdbfile":
-    case "scorefile":
-    case "sequence":
+    case "oninit":
+    case "hidefeaturegroups":
+      // applet parameter only
       // setting argName to null indicates that we want
-      // JalviewJSApp to take care of this using getParameter or getParameterAsObject
-      prefName = argName = null;
-      value = resourcePath + value;
+      // JalviewJSApp to take care of this using getParameter or getParameterAsObject      
+     prefName = argName = null;
       break;
     case "tree":
     case "treefile":
       // setting appletName to null indicates that we want
       // Jalview.doMain to taken care of this as Jalview args
       argName = "tree";
-      appletName = null;
+      prefName = null;
       value = resourcePath + value;
       break;
 
-    // non-loading preferences
+    case "features":
+    case "jnetfile":
+    case "jpredfile":
+    case "pdbfile":
+    case "scorefile":
+    case "sequence":
+    case "annotations":
+      prefName = argName = null;
+      value = resourcePath + value;
+      break;
+
+      // non-loading preferences
 
     case "defaultcolour":
       prefName = Preferences.DEFAULT_COLOUR;
@@ -240,33 +261,23 @@ public class AppletParams extends HashMap<String, Object>
     case "wrap":
       prefName = Preferences.WRAP_ALIGNMENT;
       break;
+    case "sortbytree":
+      argName = prefName;
+      prefName = Preferences.SORT_BY_TREE;
+      value = checkTF(value);
+      break;
 
     // implemented; not tested:
 
-    case "oninit":
-      argName = null;
-      break;
-    case "annotations":
-      value = resourcePath + value;
-      argName = null;
-      break;
-    case "hidefeaturegroups":
-      // TODO
-      break;
     case "pdbseq":
-      argName = prefName = null;
-      break;
-    case "sortbytree":
-      prefName = Preferences.SORT_BY_TREE;
-      value = checkTF(value);
-      appletName = null; // taken care of by Jalview
+    case "alignpdbfiles":
+      prefName = null;
       break;
     case "format":
-      break;
-    case "alignpdbfiles":
-      argName = prefName = null;
+      argName = prefName;
       break;
     case "separator":
+      argName = prefName;
       break;
 
     // TODO: probably not relevant?
@@ -305,17 +316,13 @@ public class AppletParams extends HashMap<String, Object>
     case "widthscale":
     case "windowheight":
     case "windowwidth":
-      argName = prefName = null;
+      prefName = null;
       break;
 
     // TRUE/FALSE
 
     case "debug":
-      value = checkTF(value);
-      break;
     case "embedded":
-      value = checkTF(value);
-      break;
     case "showbutton":
       value = checkTF(value);
       break;
@@ -355,25 +362,15 @@ public class AppletParams extends HashMap<String, Object>
       prefName = Preferences.SHOW_CONSENSUS_LOGO;
       value = checkTF(value);
       break;
-    case "showfeaturegroups":
+    case "showunconserved":
+      prefName = Preferences.SHOW_UNCONSERVED;
       value = checkTF(value);
       break;
+    case "showfeaturegroups":
     case "showfeaturesettings":
-      value = checkTF(value);
-      break;
     case "showfullid":
-      value = checkTF(value);
-      break;
     case "showtreebootstraps":
-      value = checkTF(value);
-      break;
     case "showtreedistances":
-      value = checkTF(value);
-      break;
-    case "showunconserved":
-      prefName = Preferences.SHOW_UNCONSERVED;
-      value = checkTF(value);
-      break;
     case "showunlinkedtreenodes":
       value = checkTF(value);
       break;
@@ -391,6 +388,9 @@ public class AppletParams extends HashMap<String, Object>
       break;
     }
 
+    // CASE I.  args[] name and value for ArgsParser
+    //
+    // If given an argument name, 
     // put name and value into application args
     if (value != null && argName != null)
     {
@@ -400,16 +400,22 @@ public class AppletParams extends HashMap<String, Object>
         vargs.add(value.toString());
       }
     }
+    
+    // CASE II.   applet parameter for JalviewJSApp
+    
     if (value == null)
     {
       value = "false";
     }
     System.out.println("AppletParams propName=" + prefName + " argName="
-            + argName + " appletName=" + appletName + " value=" + value);
+            + argName + " appletName=" + appletName + " value=" + value);    
     if (appletName != null)
     {
       appletParams.put(appletName, value);
     }
+    
+    // CASE III.  mapped to a Preference
+    
     if (prefName != null)
     {
       Cache.setPropertyNoSave(prefName, value.toString());