cern::laser::guiplatform::util::BrowserLauncher Class Reference
List of all members.
Detailed Description
BrowserLauncher is a class that provides one static method, openURL, which opens the default web browser for the current user of the system to the given URL. It may support other protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously tested and is not guaranteed to work.
Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms that are not part of the standard JDK. What we're trying to do, though, is to take something that's frequently desirable but inherently platform-specific -- opening a default browser -- and allow programmers (you, for example) to do so without worrying about dropping into native code or doing anything else similarly evil.
Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without modification or a need for additional libraries. All classes that are required on certain platforms to allow this to run are dynamically loaded at runtime via reflection and, if not found, will not cause this to do anything other than returning an error when opening the browser.
There are certain system requirements for this class, as it's running through Runtime.exec(), which is Java's way of making a native system call. Currently, this requires that a Macintosh have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder in the Extensions folder (which is installed by default as far as I know under Mac OS 8.0 and 8.1), and for all Mac OS 8.5 and later systems. On Windows, it only runs under Win32 systems (Windows 95, 98, and NT 4.0, as well as later versions of all). On other systems, this drops back from the inherently platform-sensitive concept of a default browser and simply attempts to launch Netscape via a shell command.
This code is Copyright 1999-2001 by Eric Albert (ejalbert@cs.stanford.edu) and may be redistributed or modified in any form without restrictions as long as the portion of this comment from this paragraph through the end of the comment is not removed. The author requests that he be notified of any application, applet, or other binary that makes use of this code, but that's more out of curiosity than anything and is not required. This software includes no warranty. The author is not repsonsible for any loss of data or functionality or any adverse or unexpected effects of using this software.
Credits:
Steven Spencer, JavaWorld magazine (Java Tip 66)
Thanks also to Ron B. Yeh, Eric Shapiro, Ben Engber, Paul Teitlebaum, Andrea Cantatore, Larry Barowski, Trevor Bedzek, Frank Miedrich, and Ron Rabakukk
- Author:
- Eric Albert (ejalbert@cs.stanford.edu)
- Version:
- 1.4b1 (Released June 20, 2001)
Constructor & Destructor Documentation
cern::laser::guiplatform::util::BrowserLauncher::BrowserLauncher |
( |
|
) |
[inline, private] |
|
|
This class should be never be instantiated; this just ensures so. |
Member Function Documentation
cern::laser::guiplatform::util::BrowserLauncher::[static initializer] |
( |
|
) |
[inline, static, package] |
|
|
An initialization block that determines the operating system and loads the necessary runtime data. |
native int cern::laser::guiplatform::util::BrowserLauncher::ICLaunchURL |
( |
int |
instance, |
|
|
byte[] |
hint, |
|
|
byte[] |
data, |
|
|
int |
len, |
|
|
int[] |
selectionStart, |
|
|
int[] |
selectionEnd |
|
) |
[static, private] |
|
native int cern::laser::guiplatform::util::BrowserLauncher::ICStart |
( |
int[] |
instance, |
|
|
int |
signature |
|
) |
[static, private] |
|
|
Methods required for Mac OS X. The presence of native methods does not cause any problems on other platforms. |
native int cern::laser::guiplatform::util::BrowserLauncher::ICStop |
( |
int[] |
instance |
) |
[static, private] |
|
boolean cern::laser::guiplatform::util::BrowserLauncher::loadClasses |
( |
|
) |
[inline, static, private] |
|
|
Called by a static initializer to load any classes, fields, and methods required at runtime to locate the user's web browser. - Returns:
true if all intialization succeeded false if any portion of the initialization failed
|
Object cern::laser::guiplatform::util::BrowserLauncher::locateBrowser |
( |
|
) |
[inline, static, private] |
|
|
Attempts to locate the default web browser on the local system. Caches results so it only locates the browser once for each use of this class per JVM instance. - Returns:
- The browser for the system. Note that this may not be what you would consider to be a standard web browser; instead, it's the application that gets called to open the default web browser. In some cases, this will be a non-String object that provides the means of calling the default browser.
|
|
Attempts to open the default web browser to the given URL. - Parameters:
-
- Exceptions:
-
| IOException | If the web browser could not be located or does not run |
|
Member Data Documentation
|
The com.apple.MacOS.AEDesc class |
|
The <init>(String) method of com.apple.MacOS.AEDesc |
|
The <init>(int) method of com.apple.MacOS.AETarget |
|
The <init>(int, int, int) method of com.apple.MacOS.AppleEvent |
|
The browser for the system |
|
The message from any exception thrown throughout the initialization process. |
|
The creator code of the Finder on a Macintosh, which is needed to send AppleEvents to the application. |
|
The file type of the Finder on a Macintosh. Hardcoding "Finder" would keep non-U.S. English systems from working properly. |
|
The findFolder method of com.apple.mrj.MRJFileUtils |
|
The first parameter that needs to be passed into Runtime.exec() to open the default web browser on Windows. |
|
The getFileCreator method of com.apple.mrj.MRJFileUtils |
|
The getFileType method of com.apple.mrj.MRJFileUtils |
|
The name for the AppleEvent type corresponding to a GetURL event. |
|
The framework to reference on Mac OS X |
|
The Java virtual machine that we are running on. Actually, in most cases we only care about the operating system, but some operating systems require us to switch on the VM. |
|
The kAnyTransactionID AppleEvent code |
|
The kAutoGenerateReturnID AppleEvent code |
|
The keyDirectObject AppleEvent parameter type |
|
Actually an MRJOSType pointing to the System Folder on a Macintosh |
|
The linkage object required for JDirect 3 on Mac OS X. |
|
Caches whether any classes, methods, and fields that are not part of the JDK and need to be dynamically loaded at runtime loaded successfully.
Note that if this is false , openURL() will always return an IOException. |
|
The makeOSType method of com.apple.MacOS.OSUtils |
|
JVM constant for MRJ 2.1 or later |
|
JVM constant for Java on Mac OS X 10.0 (MRJ 3.0) |
|
The com.apple.mrj.MRJFileUtils class |
|
The com.apple.mrj.MRJOSType class |
|
The shell parameters for Netscape that opens a given URL in an already-open copy of Netscape on many command-line systems. |
|
The openURL method of com.apple.mrj.MRJFileUtils |
|
JVM constant for any other platform |
|
The putParameter method of com.apple.MacOS.AppleEvent |
|
The second parameter for Runtime.exec() on Windows. |
|
The sendNoReply method of com.apple.MacOS.AppleEvent |
|
The third parameter for Runtime.exec() on Windows. This is a "title" parameter that the command line expects. Setting this parameter allows URLs containing spaces to work. |
|
JVM constant for any Windows 9x JVM |
|
JVM constant for any Windows NT JVM |
The documentation for this class was generated from the following file:
Generated on Thu Apr 30 03:09:35 2009 for ACS Java API by
1.3.8