X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=bin%2Fjalview%2Futil%2FBrowserLauncher.js;fp=bin%2Fjalview%2Futil%2FBrowserLauncher.js;h=0000000000000000000000000000000000000000;hp=0b28b4c3895d37012a0a090358fbced091945fdd;hb=7301a2415adab88038b291fc54caeeb3a5a47a44;hpb=6154cb57a6eac3bb1344b8342495f5bb701ee921 diff --git a/bin/jalview/util/BrowserLauncher.js b/bin/jalview/util/BrowserLauncher.js deleted file mode 100644 index 0b28b4c..0000000 --- a/bin/jalview/util/BrowserLauncher.js +++ /dev/null @@ -1,487 +0,0 @@ -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", -($fz = function () { -switch (jalview.util.BrowserLauncher.jvm) { -case 0: -try { -var aeTargetClass = Class.forName ("com.apple.MacOS.AETarget"); -var osUtilsClass = Class.forName ("com.apple.MacOS.OSUtils"); -var appleEventClass = Class.forName ("com.apple.MacOS.AppleEvent"); -var aeClass = Class.forName ("com.apple.MacOS.ae"); -jalview.util.BrowserLauncher.aeDescClass = Class.forName ("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 = Class.forName ("com.apple.mrj.MRJFileUtils"); -jalview.util.BrowserLauncher.mrjOSTypeClass = Class.forName ("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 = Class.forName ("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 = Class.forName ("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; -}, $fz.isPrivate = true, $fz)); -c$.locateBrowser = Clazz.defineMethod (c$, "locateBrowser", -($fz = 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; -}, $fz.isPrivate = true, $fz)); -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 (); -}}});