JAL-3247 JAL-3254 Fixed file association launch behaviour in getdown in Windows
[jalview.git] / getdown / src / getdown / launcher / src / main / java / com / threerings / getdown / launcher / GetdownApp.java
index 42dca17..a907cef 100644 (file)
@@ -29,6 +29,7 @@ import javax.swing.WindowConstants;
 
 import com.install4j.api.launcher.StartupNotification;
 import com.samskivert.swing.util.SwingUtil;
+import com.threerings.getdown.data.Application;
 import com.threerings.getdown.data.EnvConfig;
 import com.threerings.getdown.data.SysProps;
 import com.threerings.getdown.util.LaunchUtil;
@@ -97,7 +98,8 @@ public class GetdownApp
               new StartupNotification.Listener() {
                 @Override
                 public void startupPerformed(String parameters)
-                {
+                { 
+                  log.warning("startupPerformed: '"+parameters+"'");
                   setStartupFilesParameterString(parameters);
                 }
               });
@@ -267,8 +269,33 @@ public class GetdownApp
 
       protected JFrame _frame;
     };
-    if (getStartupFilesParameterString() != null) {
+    /*
+    log.warning("Startup file?",
+            "paramstring", '"'+getStartupFilesParameterString()+'"',
+            "isWindows", LaunchUtil.isWindows(),
+            "argv.length", argv.length,
+            "argv[0]", argv.length>0?argv[0]:"NULL",
+            "argv[1]", argv.length>1?argv[1]:"NULL",
+            "argv[2]", argv.length>2?argv[2]:"NULL",
+            "argv[3]", argv.length>3?argv[3]:"NULL"
+              );
+              */
+    if (getStartupFilesParameterString() != null && getStartupFilesParameterString().length() > 0) {
       app.setStartupFilesFromParameterString(getStartupFilesParameterString());
+    } else if (
+            getStartupFilesParameterString().length() == 0
+            && LaunchUtil.isWindows()
+            && argv.length >= 3
+            && argv[0].equals(".")
+            && argv[1].equals("noappid")
+            && argv[2].endsWith("."+Application.locatorFileExtension)
+            ) {
+      log.info("Jalview Version Locator in args: "+argv[2]);
+      app.setStartupFilesFromParameterString(argv[2]);
+      String[] newArgv = new String[argv.length - 1];
+      System.arraycopy(argv, 0, newArgv, 0, 2);
+      System.arraycopy(argv, 3, newArgv, 2, argv.length - 3);
+      argv = newArgv;
     }
     app.start();
     return app;