X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Futil%2FBrowserLauncher.js;fp=site%2Fj2s%2Fjalview%2Futil%2FBrowserLauncher.js;h=9e5da4da4098685c44ff26cccaae8a5f63ae8b3a;hp=51d8ee69a65a1bcb49cd0976d6a5b58e7ca0ffbc;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/jalview/util/BrowserLauncher.js b/site/j2s/jalview/util/BrowserLauncher.js index 51d8ee6..9e5da4d 100644 --- a/site/j2s/jalview/util/BrowserLauncher.js +++ b/site/j2s/jalview/util/BrowserLauncher.js @@ -1,487 +1,487 @@ -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 (); -}}}); +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 (); +}}});