JAL-3253-applet adds NOMENUBAR, NOSTATUS, NOCALCULATION, SHOWOVERVIEW
[jalview.git] / src / jalview / bin / ArgsParser.java
index 2c6cea7..91c8838 100644 (file)
@@ -35,6 +35,17 @@ import java.util.Vector;
 public class ArgsParser
 {
 
+  // BH 2019 - new
+
+  public static final String NOCALCULATION = "nocalculation";
+
+  public static final String NOMENUBAR = "nomenubar";
+
+  public static final String NOSTATUS = "nostatus";
+
+  public static final String SHOWOVERVIEW = "showoverview";
+
+  //
   public static final String ANNOTATIONS = "annotations";
 
   public static final String COLOUR = "colour";
@@ -67,6 +78,10 @@ public class ArgsParser
 
   public static final String OPEN = "open";
 
+  public static final String OPEN2 = "open2"; // BH added -- for applet
+                                              // compatibility; not fully
+                                              // implemented
+
   public static final String PROPS = "props";
 
   public static final String QUESTIONNAIRE = "questionnaire";
@@ -83,17 +98,34 @@ public class ArgsParser
 
   private Vector<String> vargs = null;
 
+  private boolean isApplet;
+
+  private AppletParams appletParams;
+
+  public boolean isApplet()
+  {
+    return isApplet;
+  }
+
   public ArgsParser(String[] args)
   {
     vargs = new Vector<>();
-    for (int i = 0; i < args.length; i++)
+    isApplet = (args.length > 0 && args[0].startsWith("<applet"));
+    if (isApplet)
     {
-      String arg = args[i].trim();
-      if (arg.charAt(0) == '-')
+      appletParams = AppletParams.getAppletParams(args, vargs);
+    }
+    else
+    {
+      for (int i = 0; i < args.length; i++)
       {
-        arg = arg.substring(1);
+        String arg = args[i].trim();
+        if (arg.charAt(0) == '-')
+        {
+          arg = arg.substring(1);
+        }
+        vargs.addElement(arg);
       }
-      vargs.addElement(arg);
     }
   }
 
@@ -161,4 +193,12 @@ public class ArgsParser
     return vargs.size();
   }
 
+  public String getAppletValue(String key, String def)
+  {
+    String value;
+    return (appletParams == null ? null
+            : (value = appletParams.get(key.toLowerCase())) != null ? value
+                    : def);
+  }
+
 }