com.sun.rave.web.ui.util
Class ClientSniffer

java.lang.Object
  extended by com.sun.rave.web.ui.util.ClientSniffer

public class ClientSniffer
extends java.lang.Object

This utility class parses the user agent of a HttpServletRequest object to determine browser type, version, and platform.

The code of this utility class is based on "The Ultimate JavaScript Client Sniffer", version 3.03 which is located at the following URL.

http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

Usage Example:

 FacesContext context = FacesContext.getCurrentInstance();
 ClientSniffer cs = new ClientSniffer(context);

 String stylesheet = CCStyle.IE6_UP_CSS;

 if (isIe6up()) {
     stylesheet = CCStyle.IE6_UP_CSS;
 } else if (isIe5up()) {
     stylesheet = CCStyle.IE5_UP_CSS;
 } else if (isNav6up()) {
     stylesheet = CCStyle.NS6_UP_CSS;
 } else if (isNav4up() && isWin()) {
     stylesheet = CCStyle.NS4_WIN_CSS;
 } else if (isNav4up() && isSun()) {
     stylesheet = CCStyle.NS4_SOL_CSS;
 }
 


Constructor Summary
ClientSniffer(javax.faces.context.FacesContext context)
          Default constructor.
 
Method Summary
static ClientType getClientType(javax.faces.context.FacesContext context)
          This method is used by the Theme.
static ClientSniffer getInstance(javax.faces.context.FacesContext context)
           This method gets an instance of this class associated with the given FacesContext.
 java.lang.String getUserAgent()
          Get the user agent.
 int getUserAgentMajor()
          Get the user agent major version number.
 boolean isGecko()
          Test if the user agent was generated by Gecko engine.
 boolean isIe()
          Test if the user agent was generated by Internet Explorer.
 boolean isIe3()
          Test if the user agent was generated by Internet Explorer, version 3.x.
 boolean isIe4()
          Test if the user agent was generated by Internet Explorer, version 4.x.
 boolean isIe5()
          Test if the user agent was generated by Internet Explorer, version 5.x.
 boolean isIe5up()
          Test if the user agent was generated by Internet Explorer, version 5.x or above.
 boolean isIe6()
          Test if the user agent was generated by Internet Explorer, version 6.x.
 boolean isIe6up()
          Test if the user agent was generated by Internet Explorer, version 6.x or above.
 boolean isNav()
          Test if the user agent was generated by Navigator.
 boolean isNav4()
          Test if the user agent was generated by Navigator, version 4.x.
 boolean isNav4up()
          Test if the user agent was generated by Navigator, version 4.x or above.
 boolean isNav6()
          Test if the user agent was generated by Navigator, version 6.x.
 boolean isNav6up()
          Test if the user agent was generated by Navigator, version 6.x or above.
 boolean isNav7()
          Test if the user agent was generated by Navigator, version 7.x.
 boolean isNav70()
          Test if the user agent was generated by Navigator, version 7.0.
 boolean isNav7up()
          Test if the user agent was generated by Navigator, version 7.x or above.
 boolean isSun()
          Test if the user agent was generated on Sun platform.
 boolean isWin()
          Test if the user agent was generated on Windows platform.
protected  void setUserAgent(javax.faces.context.FacesContext context)
           This method initializes the user agent via the supplied FacesContext.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClientSniffer

public ClientSniffer(javax.faces.context.FacesContext context)
Default constructor.

Parameters:
context - FacesContext which should be used to extract the user agent.
Method Detail

getInstance

public static ClientSniffer getInstance(javax.faces.context.FacesContext context)

This method gets an instance of this class associated with the given FacesContext. It will look in the request scope to see if an instance already exists, if not, it will create one.

Parameters:
context - The FacesContext
Returns:
A ClientSniffer instance.

setUserAgent

protected void setUserAgent(javax.faces.context.FacesContext context)

This method initializes the user agent via the supplied FacesContext. It will use the ExternalContext to get at the request header Map. It will use this Map to obtain the value for USER-AGENT.

Parameters:
context - The FacesContext

getUserAgent

public java.lang.String getUserAgent()
Get the user agent.

Returns:
The user agent.

getUserAgentMajor

public int getUserAgentMajor()
Get the user agent major version number.

Returns:
The user agent major version number or -1 if the version number was not retrieved.

isWin

public boolean isWin()
Test if the user agent was generated on Windows platform.

Returns:
true or false

isSun

public boolean isSun()
Test if the user agent was generated on Sun platform.

Returns:
true or false

isGecko

public boolean isGecko()
Test if the user agent was generated by Gecko engine.

Returns:
true or false

isNav

public boolean isNav()
Test if the user agent was generated by Navigator.

Returns:
true or false

isNav4

public boolean isNav4()
Test if the user agent was generated by Navigator, version 4.x.

Returns:
true or false

isNav4up

public boolean isNav4up()
Test if the user agent was generated by Navigator, version 4.x or above.

Returns:
true or false

isNav6

public boolean isNav6()
Test if the user agent was generated by Navigator, version 6.x.

Returns:
true or false

isNav6up

public boolean isNav6up()
Test if the user agent was generated by Navigator, version 6.x or above.

Returns:
true or false

isNav7

public boolean isNav7()
Test if the user agent was generated by Navigator, version 7.x.

Returns:
true or false

isNav70

public boolean isNav70()
Test if the user agent was generated by Navigator, version 7.0.

Returns:
true or false

isNav7up

public boolean isNav7up()
Test if the user agent was generated by Navigator, version 7.x or above.

Returns:
true or false

isIe

public boolean isIe()
Test if the user agent was generated by Internet Explorer.

Returns:
true or false

isIe3

public boolean isIe3()
Test if the user agent was generated by Internet Explorer, version 3.x.

Returns:
true or false

isIe4

public boolean isIe4()
Test if the user agent was generated by Internet Explorer, version 4.x.

Returns:
true or false

isIe5

public boolean isIe5()
Test if the user agent was generated by Internet Explorer, version 5.x.

Returns:
true or false

isIe5up

public boolean isIe5up()
Test if the user agent was generated by Internet Explorer, version 5.x or above.

Returns:
true or false

isIe6

public boolean isIe6()
Test if the user agent was generated by Internet Explorer, version 6.x.

Returns:
true or false

isIe6up

public boolean isIe6up()
Test if the user agent was generated by Internet Explorer, version 6.x or above.

Returns:
true or false

getClientType

public static ClientType getClientType(javax.faces.context.FacesContext context)
This method is used by the Theme.

Parameters:
context - The FacesContext
Returns:
The ClientType.