edu.stanford.ejalbert.launching.soylatte
Class SoyLatteBrowserLaunching

java.lang.Object
  extended by edu.stanford.ejalbert.launching.soylatte.SoyLatteBrowserLaunching
All Implemented Interfaces:
IBrowserLaunching

public class SoyLatteBrowserLaunching
extends java.lang.Object
implements IBrowserLaunching


Field Summary
static java.lang.String CONFIGFILE_SOYLATTE
          config file for linux/unix
protected  net.sf.wraplog.AbstractLogger logger
           
 
Fields inherited from interface edu.stanford.ejalbert.launching.IBrowserLaunching
BROWSER_DEFAULT, BROWSER_SYSTEM_PROPERTY, PROP_KEY_BROWSER_PREFIX, PROP_KEY_DELIMITER, PROTOCOL_FILE, PROTOCOL_HTTP, PROTOCOL_MAILTO, WINDOWS_BROWSER_DISC_POLICY_DISK, WINDOWS_BROWSER_DISC_POLICY_PROPERTY, WINDOWS_BROWSER_DISC_POLICY_REGISTRY
 
Constructor Summary
SoyLatteBrowserLaunching(net.sf.wraplog.AbstractLogger logger)
          Sets the logger and config file name.
 
Method Summary
protected  SoyLatteBrowser getBrowser(java.lang.String key)
          Provides access the browsers map for extending classes.
 java.util.List getBrowserList()
          Returns a list of browsers to be used for browser targetting.
 boolean getNewWindowPolicy()
          Returns the policy used for opening a url in a browser.
 void initialize()
          Uses the which command to find out which browsers are available.
 void openUrl(java.util.List browsers, java.lang.String urlString)
          Allows user to target several browsers.
 void openUrl(java.lang.String urlString)
          Opens a url in one of the available browsers.
 void openUrl(java.lang.String browser, java.lang.String urlString)
          Opens a url in the specified browser.
protected  boolean openUrlWithBrowser(SoyLatteBrowser slBrowser, java.lang.String urlString)
          Attempts to open a url with the specified browser.
 void setNewWindowPolicy(boolean forceNewWindow)
          Sets the policy used for opening a url in a browser.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONFIGFILE_SOYLATTE

public static final java.lang.String CONFIGFILE_SOYLATTE
config file for linux/unix

See Also:
Constant Field Values

logger

protected final net.sf.wraplog.AbstractLogger logger
Constructor Detail

SoyLatteBrowserLaunching

public SoyLatteBrowserLaunching(net.sf.wraplog.AbstractLogger logger)
Sets the logger and config file name.

Parameters:
logger - AbstractLogger
configFile - String
Method Detail

getBrowser

protected SoyLatteBrowser getBrowser(java.lang.String key)
Provides access the browsers map for extending classes.

Parameters:
key - String
Returns:
SoyLatteBrowser

openUrlWithBrowser

protected boolean openUrlWithBrowser(SoyLatteBrowser slBrowser,
                                     java.lang.String urlString)
                              throws BrowserLaunchingExecutionException
Attempts to open a url with the specified browser. This is a utility method called by the openUrl methods.

Parameters:
slBrowser - SoyLatteBrowser
urlString - String
Returns:
boolean
Throws:
BrowserLaunchingExecutionException

initialize

public void initialize()
                throws BrowserLaunchingInitializingException
Uses the which command to find out which browsers are available. The available browsers are put into the slBrowsers map using displayName => SoyLatteBrowser mappings.

Specified by:
initialize in interface IBrowserLaunching
Throws:
BrowserLaunchingInitializingException

openUrl

public void openUrl(java.lang.String urlString)
             throws UnsupportedOperatingSystemException,
                    BrowserLaunchingExecutionException,
                    BrowserLaunchingInitializingException
Opens a url in one of the available browsers.

Specified by:
openUrl in interface IBrowserLaunching
Parameters:
urlString - String
Throws:
BrowserLaunchingExecutionException
UnsupportedOperatingSystemException
BrowserLaunchingInitializingException

openUrl

public void openUrl(java.lang.String browser,
                    java.lang.String urlString)
             throws UnsupportedOperatingSystemException,
                    BrowserLaunchingExecutionException,
                    BrowserLaunchingInitializingException
Opens a url in the specified browser. If the call to the specified browser fails, the method falls through to the non-targetted version.

Specified by:
openUrl in interface IBrowserLaunching
Parameters:
browser - String
urlString - String
Throws:
UnsupportedOperatingSystemException
BrowserLaunchingExecutionException
BrowserLaunchingInitializingException

openUrl

public void openUrl(java.util.List browsers,
                    java.lang.String urlString)
             throws UnsupportedOperatingSystemException,
                    BrowserLaunchingExecutionException,
                    BrowserLaunchingInitializingException
Allows user to target several browsers. The names of potential browsers can be accessed via the getBrowserList method.

The browsers from the list will be tried in order (first to last) until one of the calls succeeds. If all the calls to the requested browsers fail, the code will fail over to the default browser.

Specified by:
openUrl in interface IBrowserLaunching
Parameters:
browsers - List
urlString - String
Throws:
UnsupportedOperatingSystemException
BrowserLaunchingExecutionException
BrowserLaunchingInitializingException

getBrowserList

public java.util.List getBrowserList()
Returns a list of browsers to be used for browser targetting. This list will always contain at least one item--the BROWSER_DEFAULT.

Specified by:
getBrowserList in interface IBrowserLaunching
Returns:
List

getNewWindowPolicy

public boolean getNewWindowPolicy()
Returns the policy used for opening a url in a browser.

If the policy is true, an attempt will be made to force the url to be opened in a new instance (window) of the browser.

If the policy is false, the url may open in a new window or a new tab.

Most browsers on Unix/Linux systems have command line options to support this feature.

Specified by:
getNewWindowPolicy in interface IBrowserLaunching
Returns:
boolean

setNewWindowPolicy

public void setNewWindowPolicy(boolean forceNewWindow)
Sets the policy used for opening a url in a browser.

Specified by:
setNewWindowPolicy in interface IBrowserLaunching
Parameters:
forceNewWindow - boolean