Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / jalview / util / BrowserLauncher.js
index 51d8ee6..9e5da4d 100644 (file)
-Clazz.declarePackage ("jalview.util");\r
-Clazz.load (null, "jalview.util.BrowserLauncher", ["jalview.bin.Cache", "jalview.util.MessageManager", "java.io.File", "$.IOException", "java.lang.Double", "$.Runtime"], function () {\r
-c$ = Clazz.declareType (jalview.util, "BrowserLauncher");\r
-c$.loadClasses = Clazz.defineMethod (c$, "loadClasses", \r
- function () {\r
-switch (jalview.util.BrowserLauncher.jvm) {\r
-case 0:\r
-try {\r
-var aeTargetClass = Clazz._4Name ("com.apple.MacOS.AETarget");\r
-var osUtilsClass = Clazz._4Name ("com.apple.MacOS.OSUtils");\r
-var appleEventClass = Clazz._4Name ("com.apple.MacOS.AppleEvent");\r
-var aeClass = Clazz._4Name ("com.apple.MacOS.ae");\r
-jalview.util.BrowserLauncher.aeDescClass = Clazz._4Name ("com.apple.MacOS.AEDesc");\r
-jalview.util.BrowserLauncher.aeTargetConstructor = aeTargetClass.getDeclaredConstructor ( Clazz.newArray (-1, [Number]));\r
-jalview.util.BrowserLauncher.appleEventConstructor = appleEventClass.getDeclaredConstructor ( Clazz.newArray (-1, [Number, Number, aeTargetClass, Number, Number]));\r
-jalview.util.BrowserLauncher.aeDescConstructor = jalview.util.BrowserLauncher.aeDescClass.getDeclaredConstructor ( Clazz.newArray (-1, [String]));\r
-jalview.util.BrowserLauncher.makeOSType = osUtilsClass.getDeclaredMethod ("makeOSType",  Clazz.newArray (-1, [String]));\r
-jalview.util.BrowserLauncher.putParameter = appleEventClass.getDeclaredMethod ("putParameter",  Clazz.newArray (-1, [Number, jalview.util.BrowserLauncher.aeDescClass]));\r
-jalview.util.BrowserLauncher.sendNoReply = appleEventClass.getDeclaredMethod ("sendNoReply",  Clazz.newArray (-1, []));\r
-var keyDirectObjectField = aeClass.getDeclaredField ("keyDirectObject");\r
-jalview.util.BrowserLauncher.keyDirectObject = keyDirectObjectField.get (null);\r
-var autoGenerateReturnIDField = appleEventClass.getDeclaredField ("kAutoGenerateReturnID");\r
-jalview.util.BrowserLauncher.kAutoGenerateReturnID = autoGenerateReturnIDField.get (null);\r
-var anyTransactionIDField = appleEventClass.getDeclaredField ("kAnyTransactionID");\r
-jalview.util.BrowserLauncher.kAnyTransactionID = anyTransactionIDField.get (null);\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {\r
-var cnfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {\r
-var nsme = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {\r
-var nsfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return false;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-break;\r
-case 1:\r
-try {\r
-jalview.util.BrowserLauncher.mrjFileUtilsClass = Clazz._4Name ("com.apple.mrj.MRJFileUtils");\r
-jalview.util.BrowserLauncher.mrjOSTypeClass = Clazz._4Name ("com.apple.mrj.MRJOSType");\r
-var systemFolderField = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredField ("kSystemFolderType");\r
-jalview.util.BrowserLauncher.kSystemFolderType = systemFolderField.get (null);\r
-jalview.util.BrowserLauncher.findFolder = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("findFolder",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.mrjOSTypeClass]));\r
-jalview.util.BrowserLauncher.getFileCreator = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("getFileCreator",  Clazz.newArray (-1, [java.io.File]));\r
-jalview.util.BrowserLauncher.getFileType = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("getFileType",  Clazz.newArray (-1, [java.io.File]));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {\r
-var cnfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {\r
-var nsfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {\r
-var nsme = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, SecurityException)) {\r
-var se = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = se.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return false;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-break;\r
-case 3:\r
-try {\r
-var linker = Clazz._4Name ("com.apple.mrj.jdirect.Linker");\r
-var constructor = linker.getConstructor ( Clazz.newArray (-1, [Class]));\r
-jalview.util.BrowserLauncher.linkage = constructor.newInstance ( Clazz.newArray (-1, [jalview.util.BrowserLauncher]));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {\r
-var cnfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {\r
-var nsme = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = ite.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, InstantiationException)) {\r
-var ie = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = ie.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return false;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-break;\r
-case 4:\r
-try {\r
-jalview.util.BrowserLauncher.mrjFileUtilsClass = Clazz._4Name ("com.apple.mrj.MRJFileUtils");\r
-jalview.util.BrowserLauncher.$openURL = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("openURL",  Clazz.newArray (-1, [String]));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {\r
-var cnfe = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();\r
-return false;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {\r
-var nsme = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();\r
-return false;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-break;\r
-default:\r
-break;\r
-}\r
-return true;\r
-});\r
-c$.locateBrowser = Clazz.defineMethod (c$, "locateBrowser", \r
- function () {\r
-if (jalview.util.BrowserLauncher.browser != null) {\r
-return jalview.util.BrowserLauncher.browser;\r
-}switch (jalview.util.BrowserLauncher.jvm) {\r
-case 0:\r
-try {\r
-var finderCreatorCode = jalview.util.BrowserLauncher.makeOSType.invoke (null,  Clazz.newArray (-1, ["MACS"]));\r
-var aeTarget = jalview.util.BrowserLauncher.aeTargetConstructor.newInstance ( Clazz.newArray (-1, [finderCreatorCode]));\r
-var gurlType = jalview.util.BrowserLauncher.makeOSType.invoke (null,  Clazz.newArray (-1, ["GURL"]));\r
-var appleEvent = jalview.util.BrowserLauncher.appleEventConstructor.newInstance ( Clazz.newArray (-1, [gurlType, gurlType, aeTarget, jalview.util.BrowserLauncher.kAutoGenerateReturnID, jalview.util.BrowserLauncher.kAnyTransactionID]));\r
-return appleEvent;\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, InstantiationException)) {\r
-var ie = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = ie.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = ite.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-case 1:\r
-var systemFolder;\r
-try {\r
-systemFolder = jalview.util.BrowserLauncher.findFolder.invoke (null,  Clazz.newArray (-1, [jalview.util.BrowserLauncher.kSystemFolderType]));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, IllegalArgumentException)) {\r
-var iare = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = iare.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = ite.getTargetException ().getClass () + ": " + ite.getTargetException ().getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-var systemFolderFiles = systemFolder.list ();\r
-for (var i = 0; i < systemFolderFiles.length; i++) {\r
-try {\r
-var file =  new java.io.File (systemFolder, systemFolderFiles[i]);\r
-if (!file.isFile ()) {\r
-continue;\r
-}var fileType = jalview.util.BrowserLauncher.getFileType.invoke (null,  Clazz.newArray (-1, [file]));\r
-if ("FNDR".equals (fileType.toString ())) {\r
-var fileCreator = jalview.util.BrowserLauncher.getFileCreator.invoke (null,  Clazz.newArray (-1, [file]));\r
-if ("MACS".equals (fileCreator.toString ())) {\r
-jalview.util.BrowserLauncher.browser = file.toString ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}}} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, IllegalArgumentException)) {\r
-var iare = e$$;\r
-{\r
-jalview.util.BrowserLauncher.errorMessage = iare.getMessage ();\r
-return null;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-jalview.util.BrowserLauncher.browser = null;\r
-jalview.util.BrowserLauncher.errorMessage = ite.getTargetException ().getClass () + ": " + ite.getTargetException ().getMessage ();\r
-return jalview.util.BrowserLauncher.browser;\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-}\r
-jalview.util.BrowserLauncher.browser = null;\r
-break;\r
-case 3:\r
-case 4:\r
-jalview.util.BrowserLauncher.browser = "";\r
-break;\r
-case 5:\r
-jalview.util.BrowserLauncher.browser = "cmd.exe";\r
-break;\r
-case 6:\r
-jalview.util.BrowserLauncher.browser = "command.com";\r
-break;\r
-case -1:\r
-default:\r
-jalview.util.BrowserLauncher.browser = jalview.bin.Cache.getDefault ("DEFAULT_BROWSER", "firefox");\r
-break;\r
-}\r
-return jalview.util.BrowserLauncher.browser;\r
-});\r
-c$.resetBrowser = Clazz.defineMethod (c$, "resetBrowser", \r
-function () {\r
-jalview.util.BrowserLauncher.browser = null;\r
-});\r
-c$.openURL = Clazz.defineMethod (c$, "openURL", \r
-function (url) {\r
-if (!jalview.util.BrowserLauncher.loadedWithoutErrors) {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.browser_not_found",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.errorMessage])));\r
-}var browser = jalview.util.BrowserLauncher.locateBrowser ();\r
-if (browser == null) {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.browser_unable_to_locate",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.errorMessage])));\r
-}switch (jalview.util.BrowserLauncher.jvm) {\r
-case 0:\r
-var aeDesc = null;\r
-try {\r
-aeDesc = jalview.util.BrowserLauncher.aeDescConstructor.newInstance ( Clazz.newArray (-1, [url]));\r
-jalview.util.BrowserLauncher.putParameter.invoke (browser,  Clazz.newArray (-1, [jalview.util.BrowserLauncher.keyDirectObject, aeDesc]));\r
-jalview.util.BrowserLauncher.sendNoReply.invoke (browser,  Clazz.newArray (-1, []));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.invocation_target_exception_creating_aedesc",  Clazz.newArray (-1, [ite.getMessage ()])));\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_building_apple_evt",  Clazz.newArray (-1, [iae.getMessage ()])));\r
-}\r
-} else if (Clazz.exceptionOf (e$$, InstantiationException)) {\r
-var ie = e$$;\r
-{\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_building_apple_evt",  Clazz.newArray (-1, [ie.getMessage ()])));\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-} finally {\r
-aeDesc = null;\r
-browser = null;\r
-}\r
-break;\r
-case 1:\r
-Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));\r
-break;\r
-case 3:\r
-var instance =  Clazz.newIntArray (1, 0);\r
-var result = jalview.util.BrowserLauncher.ICStart (instance, 0);\r
-if (result == 0) {\r
-var selectionStart =  Clazz.newIntArray (-1, [0]);\r
-var urlBytes = url.getBytes ();\r
-var selectionEnd =  Clazz.newIntArray (-1, [urlBytes.length]);\r
-result = jalview.util.BrowserLauncher.ICLaunchURL (instance[0],  Clazz.newByteArray (-1, [0]), urlBytes, urlBytes.length, selectionStart, selectionEnd);\r
-if (result == 0) {\r
-jalview.util.BrowserLauncher.ICStop (instance);\r
-} else {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.unable_to_launch_url",  Clazz.newArray (-1, [Integer.$valueOf (result).toString ()])));\r
-}} else {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.unable_to_create_internet_config",  Clazz.newArray (-1, [Integer.$valueOf (result).toString ()])));\r
-}break;\r
-case 4:\r
-try {\r
-jalview.util.BrowserLauncher.$openURL.invoke (null,  Clazz.newArray (-1, [url]));\r
-} catch (e$$) {\r
-if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {\r
-var ite = e$$;\r
-{\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.invocation_target_calling_url",  Clazz.newArray (-1, [ite.getMessage ()])));\r
-}\r
-} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
-var iae = e$$;\r
-{\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_calling_url",  Clazz.newArray (-1, [iae.getMessage ()])));\r
-}\r
-} else {\r
-throw e$$;\r
-}\r
-}\r
-break;\r
-case 5:\r
-case 6:\r
-var process = Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, "/c", "start", "\"\"", '"' + url + '"']));\r
-try {\r
-process.waitFor ();\r
-process.exitValue ();\r
-} catch (ie) {\r
-if (Clazz.exceptionOf (ie, InterruptedException)) {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.interrupted_launching_browser",  Clazz.newArray (-1, [ie.getMessage ()])));\r
-} else {\r
-throw ie;\r
-}\r
-}\r
-break;\r
-case -1:\r
-process = Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, "-remote", "openURL(" + url + ", new-window" + ")"]));\r
-try {\r
-var exitCode = process.waitFor ();\r
-if (exitCode != 0) {\r
-Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));\r
-}} catch (ie) {\r
-if (Clazz.exceptionOf (ie, InterruptedException)) {\r
-throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.interrupted_launching_browser",  Clazz.newArray (-1, [ie.getMessage ()])));\r
-} else {\r
-throw ie;\r
-}\r
-}\r
-break;\r
-default:\r
-Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));\r
-break;\r
-}\r
-}, "~S");\r
-Clazz.defineStatics (c$,\r
-"jvm", 0,\r
-"browser", null,\r
-"loadedWithoutErrors", false,\r
-"mrjFileUtilsClass", null,\r
-"mrjOSTypeClass", null,\r
-"aeDescClass", null,\r
-"aeTargetConstructor", null,\r
-"appleEventConstructor", null,\r
-"aeDescConstructor", null,\r
-"findFolder", null,\r
-"getFileCreator", null,\r
-"getFileType", null,\r
-"$openURL", null,\r
-"makeOSType", null,\r
-"putParameter", null,\r
-"sendNoReply", null,\r
-"kSystemFolderType", null,\r
-"keyDirectObject", null,\r
-"kAutoGenerateReturnID", null,\r
-"kAnyTransactionID", null,\r
-"linkage", null,\r
-"JDirect_MacOSX", "/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/HIToolbox",\r
-"MRJ_2_0", 0,\r
-"MRJ_2_1", 1,\r
-"MRJ_3_0", 3,\r
-"MRJ_3_1", 4,\r
-"WINDOWS_NT", 5,\r
-"WINDOWS_9x", 6,\r
-"OTHER", -1,\r
-"FINDER_TYPE", "FNDR",\r
-"FINDER_CREATOR", "MACS",\r
-"GURL_EVENT", "GURL",\r
-"FIRST_WINDOWS_PARAMETER", "/c",\r
-"SECOND_WINDOWS_PARAMETER", "start",\r
-"THIRD_WINDOWS_PARAMETER", "\"\"",\r
-"NETSCAPE_REMOTE_PARAMETER", "-remote",\r
-"NETSCAPE_OPEN_PARAMETER_START", "openURL(",\r
-"NETSCAPE_OPEN_NEW_WINDOW", ", new-window",\r
-"NETSCAPE_OPEN_PARAMETER_END", ")",\r
-"errorMessage", null);\r
-{\r
-jalview.util.BrowserLauncher.loadedWithoutErrors = true;\r
-var osName = System.getProperty ("os.name");\r
-if (osName.startsWith ("Mac OS")) {\r
-var mrjVersion = System.getProperty ("mrj.version");\r
-var majorMRJVersion;\r
-if (mrjVersion == null) {\r
-majorMRJVersion = "3.1";\r
-} else {\r
-majorMRJVersion = mrjVersion.substring (0, 3);\r
-}try {\r
-var version = Double.$valueOf (majorMRJVersion).doubleValue ();\r
-if (version == 2) {\r
-jalview.util.BrowserLauncher.jvm = 0;\r
-} else if ((version >= 2.1) && (version < 3)) {\r
-jalview.util.BrowserLauncher.jvm = 1;\r
-} else if (version == 3.0) {\r
-jalview.util.BrowserLauncher.jvm = 3;\r
-} else if (version >= 3.1) {\r
-jalview.util.BrowserLauncher.jvm = 4;\r
-} else {\r
-jalview.util.BrowserLauncher.loadedWithoutErrors = false;\r
-jalview.util.BrowserLauncher.errorMessage = "Unsupported MRJ version: " + version;\r
-}} catch (nfe) {\r
-if (Clazz.exceptionOf (nfe, NumberFormatException)) {\r
-jalview.util.BrowserLauncher.loadedWithoutErrors = false;\r
-jalview.util.BrowserLauncher.errorMessage = "Invalid MRJ version: " + mrjVersion;\r
-} else {\r
-throw nfe;\r
-}\r
-}\r
-} else if (osName.startsWith ("Windows")) {\r
-if (osName.indexOf ("9") != -1) {\r
-jalview.util.BrowserLauncher.jvm = 6;\r
-} else {\r
-jalview.util.BrowserLauncher.jvm = 5;\r
-}} else {\r
-jalview.util.BrowserLauncher.jvm = -1;\r
-}if (jalview.util.BrowserLauncher.loadedWithoutErrors) {\r
-jalview.util.BrowserLauncher.loadedWithoutErrors = jalview.util.BrowserLauncher.loadClasses ();\r
-}}});\r
+Clazz.declarePackage ("jalview.util");
+Clazz.load (null, "jalview.util.BrowserLauncher", ["jalview.bin.Cache", "jalview.util.MessageManager", "java.io.File", "$.IOException", "java.lang.Double", "$.Runtime"], function () {
+c$ = Clazz.declareType (jalview.util, "BrowserLauncher");
+c$.loadClasses = Clazz.defineMethod (c$, "loadClasses", 
+ function () {
+switch (jalview.util.BrowserLauncher.jvm) {
+case 0:
+try {
+var aeTargetClass = Clazz._4Name ("com.apple.MacOS.AETarget");
+var osUtilsClass = Clazz._4Name ("com.apple.MacOS.OSUtils");
+var appleEventClass = Clazz._4Name ("com.apple.MacOS.AppleEvent");
+var aeClass = Clazz._4Name ("com.apple.MacOS.ae");
+jalview.util.BrowserLauncher.aeDescClass = Clazz._4Name ("com.apple.MacOS.AEDesc");
+jalview.util.BrowserLauncher.aeTargetConstructor = aeTargetClass.getDeclaredConstructor ( Clazz.newArray (-1, [Number]));
+jalview.util.BrowserLauncher.appleEventConstructor = appleEventClass.getDeclaredConstructor ( Clazz.newArray (-1, [Number, Number, aeTargetClass, Number, Number]));
+jalview.util.BrowserLauncher.aeDescConstructor = jalview.util.BrowserLauncher.aeDescClass.getDeclaredConstructor ( Clazz.newArray (-1, [String]));
+jalview.util.BrowserLauncher.makeOSType = osUtilsClass.getDeclaredMethod ("makeOSType",  Clazz.newArray (-1, [String]));
+jalview.util.BrowserLauncher.putParameter = appleEventClass.getDeclaredMethod ("putParameter",  Clazz.newArray (-1, [Number, jalview.util.BrowserLauncher.aeDescClass]));
+jalview.util.BrowserLauncher.sendNoReply = appleEventClass.getDeclaredMethod ("sendNoReply",  Clazz.newArray (-1, []));
+var keyDirectObjectField = aeClass.getDeclaredField ("keyDirectObject");
+jalview.util.BrowserLauncher.keyDirectObject = keyDirectObjectField.get (null);
+var autoGenerateReturnIDField = appleEventClass.getDeclaredField ("kAutoGenerateReturnID");
+jalview.util.BrowserLauncher.kAutoGenerateReturnID = autoGenerateReturnIDField.get (null);
+var anyTransactionIDField = appleEventClass.getDeclaredField ("kAnyTransactionID");
+jalview.util.BrowserLauncher.kAnyTransactionID = anyTransactionIDField.get (null);
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {
+var cnfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {
+var nsme = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {
+var nsfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return false;
+}
+} else {
+throw e$$;
+}
+}
+break;
+case 1:
+try {
+jalview.util.BrowserLauncher.mrjFileUtilsClass = Clazz._4Name ("com.apple.mrj.MRJFileUtils");
+jalview.util.BrowserLauncher.mrjOSTypeClass = Clazz._4Name ("com.apple.mrj.MRJOSType");
+var systemFolderField = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredField ("kSystemFolderType");
+jalview.util.BrowserLauncher.kSystemFolderType = systemFolderField.get (null);
+jalview.util.BrowserLauncher.findFolder = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("findFolder",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.mrjOSTypeClass]));
+jalview.util.BrowserLauncher.getFileCreator = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("getFileCreator",  Clazz.newArray (-1, [java.io.File]));
+jalview.util.BrowserLauncher.getFileType = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("getFileType",  Clazz.newArray (-1, [java.io.File]));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {
+var cnfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {
+var nsfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {
+var nsme = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, SecurityException)) {
+var se = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = se.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return false;
+}
+} else {
+throw e$$;
+}
+}
+break;
+case 3:
+try {
+var linker = Clazz._4Name ("com.apple.mrj.jdirect.Linker");
+var constructor = linker.getConstructor ( Clazz.newArray (-1, [Class]));
+jalview.util.BrowserLauncher.linkage = constructor.newInstance ( Clazz.newArray (-1, [jalview.util.BrowserLauncher]));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {
+var cnfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {
+var nsme = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = ite.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, InstantiationException)) {
+var ie = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = ie.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return false;
+}
+} else {
+throw e$$;
+}
+}
+break;
+case 4:
+try {
+jalview.util.BrowserLauncher.mrjFileUtilsClass = Clazz._4Name ("com.apple.mrj.MRJFileUtils");
+jalview.util.BrowserLauncher.$openURL = jalview.util.BrowserLauncher.mrjFileUtilsClass.getDeclaredMethod ("openURL",  Clazz.newArray (-1, [String]));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, ClassNotFoundException)) {
+var cnfe = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = cnfe.getMessage ();
+return false;
+}
+} else if (Clazz.exceptionOf (e$$, NoSuchMethodException)) {
+var nsme = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = nsme.getMessage ();
+return false;
+}
+} else {
+throw e$$;
+}
+}
+break;
+default:
+break;
+}
+return true;
+});
+c$.locateBrowser = Clazz.defineMethod (c$, "locateBrowser", 
+ function () {
+if (jalview.util.BrowserLauncher.browser != null) {
+return jalview.util.BrowserLauncher.browser;
+}switch (jalview.util.BrowserLauncher.jvm) {
+case 0:
+try {
+var finderCreatorCode = jalview.util.BrowserLauncher.makeOSType.invoke (null,  Clazz.newArray (-1, ["MACS"]));
+var aeTarget = jalview.util.BrowserLauncher.aeTargetConstructor.newInstance ( Clazz.newArray (-1, [finderCreatorCode]));
+var gurlType = jalview.util.BrowserLauncher.makeOSType.invoke (null,  Clazz.newArray (-1, ["GURL"]));
+var appleEvent = jalview.util.BrowserLauncher.appleEventConstructor.newInstance ( Clazz.newArray (-1, [gurlType, gurlType, aeTarget, jalview.util.BrowserLauncher.kAutoGenerateReturnID, jalview.util.BrowserLauncher.kAnyTransactionID]));
+return appleEvent;
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else if (Clazz.exceptionOf (e$$, InstantiationException)) {
+var ie = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = ie.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = ite.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else {
+throw e$$;
+}
+}
+case 1:
+var systemFolder;
+try {
+systemFolder = jalview.util.BrowserLauncher.findFolder.invoke (null,  Clazz.newArray (-1, [jalview.util.BrowserLauncher.kSystemFolderType]));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, IllegalArgumentException)) {
+var iare = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = iare.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = ite.getTargetException ().getClass () + ": " + ite.getTargetException ().getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else {
+throw e$$;
+}
+}
+var systemFolderFiles = systemFolder.list ();
+for (var i = 0; i < systemFolderFiles.length; i++) {
+try {
+var file =  new java.io.File (systemFolder, systemFolderFiles[i]);
+if (!file.isFile ()) {
+continue;
+}var fileType = jalview.util.BrowserLauncher.getFileType.invoke (null,  Clazz.newArray (-1, [file]));
+if ("FNDR".equals (fileType.toString ())) {
+var fileCreator = jalview.util.BrowserLauncher.getFileCreator.invoke (null,  Clazz.newArray (-1, [file]));
+if ("MACS".equals (fileCreator.toString ())) {
+jalview.util.BrowserLauncher.browser = file.toString ();
+return jalview.util.BrowserLauncher.browser;
+}}} catch (e$$) {
+if (Clazz.exceptionOf (e$$, IllegalArgumentException)) {
+var iare = e$$;
+{
+jalview.util.BrowserLauncher.errorMessage = iare.getMessage ();
+return null;
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = iae.getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+jalview.util.BrowserLauncher.browser = null;
+jalview.util.BrowserLauncher.errorMessage = ite.getTargetException ().getClass () + ": " + ite.getTargetException ().getMessage ();
+return jalview.util.BrowserLauncher.browser;
+}
+} else {
+throw e$$;
+}
+}
+}
+jalview.util.BrowserLauncher.browser = null;
+break;
+case 3:
+case 4:
+jalview.util.BrowserLauncher.browser = "";
+break;
+case 5:
+jalview.util.BrowserLauncher.browser = "cmd.exe";
+break;
+case 6:
+jalview.util.BrowserLauncher.browser = "command.com";
+break;
+case -1:
+default:
+jalview.util.BrowserLauncher.browser = jalview.bin.Cache.getDefault ("DEFAULT_BROWSER", "firefox");
+break;
+}
+return jalview.util.BrowserLauncher.browser;
+});
+c$.resetBrowser = Clazz.defineMethod (c$, "resetBrowser", 
+function () {
+jalview.util.BrowserLauncher.browser = null;
+});
+c$.openURL = Clazz.defineMethod (c$, "openURL", 
+function (url) {
+if (!jalview.util.BrowserLauncher.loadedWithoutErrors) {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.browser_not_found",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.errorMessage])));
+}var browser = jalview.util.BrowserLauncher.locateBrowser ();
+if (browser == null) {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.browser_unable_to_locate",  Clazz.newArray (-1, [jalview.util.BrowserLauncher.errorMessage])));
+}switch (jalview.util.BrowserLauncher.jvm) {
+case 0:
+var aeDesc = null;
+try {
+aeDesc = jalview.util.BrowserLauncher.aeDescConstructor.newInstance ( Clazz.newArray (-1, [url]));
+jalview.util.BrowserLauncher.putParameter.invoke (browser,  Clazz.newArray (-1, [jalview.util.BrowserLauncher.keyDirectObject, aeDesc]));
+jalview.util.BrowserLauncher.sendNoReply.invoke (browser,  Clazz.newArray (-1, []));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.invocation_target_exception_creating_aedesc",  Clazz.newArray (-1, [ite.getMessage ()])));
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_building_apple_evt",  Clazz.newArray (-1, [iae.getMessage ()])));
+}
+} else if (Clazz.exceptionOf (e$$, InstantiationException)) {
+var ie = e$$;
+{
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_building_apple_evt",  Clazz.newArray (-1, [ie.getMessage ()])));
+}
+} else {
+throw e$$;
+}
+} finally {
+aeDesc = null;
+browser = null;
+}
+break;
+case 1:
+Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));
+break;
+case 3:
+var instance =  Clazz.newIntArray (1, 0);
+var result = jalview.util.BrowserLauncher.ICStart (instance, 0);
+if (result == 0) {
+var selectionStart =  Clazz.newIntArray (-1, [0]);
+var urlBytes = url.getBytes ();
+var selectionEnd =  Clazz.newIntArray (-1, [urlBytes.length]);
+result = jalview.util.BrowserLauncher.ICLaunchURL (instance[0],  Clazz.newByteArray (-1, [0]), urlBytes, urlBytes.length, selectionStart, selectionEnd);
+if (result == 0) {
+jalview.util.BrowserLauncher.ICStop (instance);
+} else {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.unable_to_launch_url",  Clazz.newArray (-1, [Integer.$valueOf (result).toString ()])));
+}} else {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.unable_to_create_internet_config",  Clazz.newArray (-1, [Integer.$valueOf (result).toString ()])));
+}break;
+case 4:
+try {
+jalview.util.BrowserLauncher.$openURL.invoke (null,  Clazz.newArray (-1, [url]));
+} catch (e$$) {
+if (Clazz.exceptionOf (e$$, java.lang.reflect.InvocationTargetException)) {
+var ite = e$$;
+{
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.invocation_target_calling_url",  Clazz.newArray (-1, [ite.getMessage ()])));
+}
+} else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
+var iae = e$$;
+{
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.illegal_access_calling_url",  Clazz.newArray (-1, [iae.getMessage ()])));
+}
+} else {
+throw e$$;
+}
+}
+break;
+case 5:
+case 6:
+var process = Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, "/c", "start", "\"\"", '"' + url + '"']));
+try {
+process.waitFor ();
+process.exitValue ();
+} catch (ie) {
+if (Clazz.exceptionOf (ie, InterruptedException)) {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.interrupted_launching_browser",  Clazz.newArray (-1, [ie.getMessage ()])));
+} else {
+throw ie;
+}
+}
+break;
+case -1:
+process = Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, "-remote", "openURL(" + url + ", new-window" + ")"]));
+try {
+var exitCode = process.waitFor ();
+if (exitCode != 0) {
+Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));
+}} catch (ie) {
+if (Clazz.exceptionOf (ie, InterruptedException)) {
+throw  new java.io.IOException (jalview.util.MessageManager.formatMessage ("exception.interrupted_launching_browser",  Clazz.newArray (-1, [ie.getMessage ()])));
+} else {
+throw ie;
+}
+}
+break;
+default:
+Runtime.getRuntime ().exec ( Clazz.newArray (-1, [browser, url]));
+break;
+}
+}, "~S");
+Clazz.defineStatics (c$,
+"jvm", 0,
+"browser", null,
+"loadedWithoutErrors", false,
+"mrjFileUtilsClass", null,
+"mrjOSTypeClass", null,
+"aeDescClass", null,
+"aeTargetConstructor", null,
+"appleEventConstructor", null,
+"aeDescConstructor", null,
+"findFolder", null,
+"getFileCreator", null,
+"getFileType", null,
+"$openURL", null,
+"makeOSType", null,
+"putParameter", null,
+"sendNoReply", null,
+"kSystemFolderType", null,
+"keyDirectObject", null,
+"kAutoGenerateReturnID", null,
+"kAnyTransactionID", null,
+"linkage", null,
+"JDirect_MacOSX", "/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/HIToolbox",
+"MRJ_2_0", 0,
+"MRJ_2_1", 1,
+"MRJ_3_0", 3,
+"MRJ_3_1", 4,
+"WINDOWS_NT", 5,
+"WINDOWS_9x", 6,
+"OTHER", -1,
+"FINDER_TYPE", "FNDR",
+"FINDER_CREATOR", "MACS",
+"GURL_EVENT", "GURL",
+"FIRST_WINDOWS_PARAMETER", "/c",
+"SECOND_WINDOWS_PARAMETER", "start",
+"THIRD_WINDOWS_PARAMETER", "\"\"",
+"NETSCAPE_REMOTE_PARAMETER", "-remote",
+"NETSCAPE_OPEN_PARAMETER_START", "openURL(",
+"NETSCAPE_OPEN_NEW_WINDOW", ", new-window",
+"NETSCAPE_OPEN_PARAMETER_END", ")",
+"errorMessage", null);
+{
+jalview.util.BrowserLauncher.loadedWithoutErrors = true;
+var osName = System.getProperty ("os.name");
+if (osName.startsWith ("Mac OS")) {
+var mrjVersion = System.getProperty ("mrj.version");
+var majorMRJVersion;
+if (mrjVersion == null) {
+majorMRJVersion = "3.1";
+} else {
+majorMRJVersion = mrjVersion.substring (0, 3);
+}try {
+var version = Double.$valueOf (majorMRJVersion).doubleValue ();
+if (version == 2) {
+jalview.util.BrowserLauncher.jvm = 0;
+} else if ((version >= 2.1) && (version < 3)) {
+jalview.util.BrowserLauncher.jvm = 1;
+} else if (version == 3.0) {
+jalview.util.BrowserLauncher.jvm = 3;
+} else if (version >= 3.1) {
+jalview.util.BrowserLauncher.jvm = 4;
+} else {
+jalview.util.BrowserLauncher.loadedWithoutErrors = false;
+jalview.util.BrowserLauncher.errorMessage = "Unsupported MRJ version: " + version;
+}} catch (nfe) {
+if (Clazz.exceptionOf (nfe, NumberFormatException)) {
+jalview.util.BrowserLauncher.loadedWithoutErrors = false;
+jalview.util.BrowserLauncher.errorMessage = "Invalid MRJ version: " + mrjVersion;
+} else {
+throw nfe;
+}
+}
+} else if (osName.startsWith ("Windows")) {
+if (osName.indexOf ("9") != -1) {
+jalview.util.BrowserLauncher.jvm = 6;
+} else {
+jalview.util.BrowserLauncher.jvm = 5;
+}} else {
+jalview.util.BrowserLauncher.jvm = -1;
+}if (jalview.util.BrowserLauncher.loadedWithoutErrors) {
+jalview.util.BrowserLauncher.loadedWithoutErrors = jalview.util.BrowserLauncher.loadClasses ();
+}}});