eu.webtoolkit.jwt
Class Configuration

java.lang.Object
  extended by eu.webtoolkit.jwt.Configuration

public class Configuration
extends java.lang.Object

JWt application configuration class.

This class holds the configuration for JWt, controlling general features of the interaction between the browser and the web application.

See Also:
WtServlet.getConfiguration()

Constructor Summary
Configuration()
          Creates a default configuration.
Configuration(java.io.File configurationFile)
          Reads a configuration from an XML file.
 
Method Summary
 boolean agentIsBot(java.lang.String userAgent)
          Returns whether the user agent is a bot.
 boolean agentSupportsAjax(java.lang.String userAgent)
          Returns whether the user agent should be considered as one with Ajax support.
 boolean debug()
          Returns whether debugging is enabled.
 java.util.ArrayList<java.lang.String> getAjaxAgentList()
          Returns the list of user agents that are (not) considered for AJAX sessions.
 int getBootstrapTimeout()
           
 java.util.ArrayList<java.lang.String> getBotList()
          Returns the list of user agents that are treated as bots.
 eu.webtoolkit.jwt.Configuration.ErrorReporting getErrorReporting()
          Returns the error reporting mode.
 java.lang.String getFavicon()
          Returns the path for the favicon
 int getIndicatorTimeout()
          Returns the loading indicator timeout.
 java.util.HashMap<java.lang.String,java.lang.String> getProperties()
          Returns configured properties.
 java.lang.String getProperty(java.lang.String name)
          Returns a property value.
 java.lang.String getRedirectMessage()
          Returns the plain-HTML redirect message.
 int getSessionTimeout()
          Returns the session timeout.
 boolean isAjaxAgentWhiteList()
          Returns whether the getAjaxAgentList() is a white list or black list.
 boolean isInlineCss()
          Returns whether inline CSS may be generated.
 boolean progressiveBootstrap()
          Returns whether the progressive bootstrap method is used.
 boolean sendXHTMLMimeType()
          Returns whether XHTML should be used (if supported by the client).
 void setAjaxAgentList(java.util.ArrayList<java.lang.String> ajaxAgentList, boolean isWhiteList)
          Configures agents that may be served an AJAX version of the application.
 void setBotList(java.util.ArrayList<java.lang.String> botList)
          Sets the list of bots.
 void setDebug(boolean how)
          Deprecated.  
 void setErrorReporting(eu.webtoolkit.jwt.Configuration.ErrorReporting err)
          Set the error reporting mode.
 void setFavicon(java.lang.String favicon)
          Configures a path to a favicon.
 void setIndicatorTimeout(int timeout)
          Sets the loading indicator timeout.
 void setInlineCss(boolean inlineCss)
          Sets whether inline CSS may be generated.
 void setProgressiveBootstrap(boolean enable)
          Sets whether the progressive bootstrap method is used.
 void setProperties(java.util.HashMap<java.lang.String,java.lang.String> properties)
          Sets properties.
 void setRedirectMessage(java.lang.String redirectMessage)
          Sets the plain-HTML redirect message.
 void setSendXHTMLMimeType(boolean sendXHTMLMimeType)
          Sets whether XHTML should be used (if supported by the client).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Configuration

public Configuration()
Creates a default configuration.


Configuration

public Configuration(java.io.File configurationFile)
Reads a configuration from an XML file.

An example configuration file can be found in the JWt source distribution.

Parameters:
configurationFile -
Method Detail

setProperties

public void setProperties(java.util.HashMap<java.lang.String,java.lang.String> properties)
Sets properties.

Parameters:
properties -
See Also:
getProperties(), getProperty(String)

getProperties

public java.util.HashMap<java.lang.String,java.lang.String> getProperties()
Returns configured properties.

Properties may be used to adapt applications to their deployment environment.

Returns:
a map of all properties.

getProperty

public java.lang.String getProperty(java.lang.String name)
Returns a property value.

Properties may be used to adapt applications to their deployment environment.

Parameters:
name -
Returns:
the property value, or null if the property has not been defined.

setRedirectMessage

public void setRedirectMessage(java.lang.String redirectMessage)
Sets the plain-HTML redirect message.

By default, JWt will use an automatic redirect to start the application when the browser does not support JavaScript. However, browsers are not required to follow the redirection, and in some situations (when using XHTML), such automatic redirection is not supported.

This configures the text that is shown in the anchor which the user may click to be redirected to a basic HTML version of your application.


getRedirectMessage

public java.lang.String getRedirectMessage()
Returns the plain-HTML redirect message.

Returns:
the plain-HTML redirect message.
See Also:
setRedirectMessage(String)

setSendXHTMLMimeType

public void setSendXHTMLMimeType(boolean sendXHTMLMimeType)
Sets whether XHTML should be used (if supported by the client).

JWt renders XHTML1 (XML variant of HTML) that is backward-compatible with HTML. Using XHTML, JWt is capable of supporting XHTML-only features such as embedded SVG or MathML.

When enabled, JWt sets an XHTML mime-type (application/xhtml+xml) when the browser reports support for it. Most notably, Internet Explorer does not support it. Because XHTML and HTML are slightly different with respect to default CSS rules, you may want to disable sending the XHTML mime-type all-together, at least if you are not using SVG (used by the WPaintedWidget).


sendXHTMLMimeType

public boolean sendXHTMLMimeType()
Returns whether XHTML should be used (if supported by the client).

Returns:
whether XHTML should be used.
See Also:
setSendXHTMLMimeType(boolean)

setDebug

public void setDebug(boolean how)
Deprecated. 

Configures debugging.

Currently, the only effect of debugging is that JavaScript exceptions are not caught but allowed to propagate so that you can inspect the stack trace.

Debugging is off by default.


debug

public boolean debug()
Returns whether debugging is enabled.

Returns:
whether debugging is enabled.
See Also:
setDebug(boolean)

setInlineCss

public void setInlineCss(boolean inlineCss)
Sets whether inline CSS may be generated.

This option configures whether CSS rules added to the inline stylesheet WApplication.getStyleSheet() are rendered.

Some pedantic accessibility guidelines may forbid inline CSS.

Note: some widgets, such as WTreeView, dynamically manipulate rules in this stylesheet, and will no longer work properly when inline CSS is disabled.

Parameters:
inlineCss -

isInlineCss

public boolean isInlineCss()
Returns whether inline CSS may be generated.

Returns:
whether inline CSS may be generated.
See Also:
setInlineCss(boolean)

setAjaxAgentList

public void setAjaxAgentList(java.util.ArrayList<java.lang.String> ajaxAgentList,
                             boolean isWhiteList)
Configures agents that may be served an AJAX version of the application.

When isWhiteList is true, the given list exhaustively indicates all user agents that will be served an AJAX version of the application. When isWhiteList is false, the given list excludes some user agents that may be served an AJAX version of the application.

Each entry in ajaxAgentList is a regular expression against which the browser-reported user agent is compared.

By default, JWt will serve an AJAX version when JavaScript and AJAX support are detected.

Parameters:
ajaxAgentList - a list of regular expressions that identify user agents
isWhiteList - whether the list is a white list or black list.

getAjaxAgentList

public java.util.ArrayList<java.lang.String> getAjaxAgentList()
Returns the list of user agents that are (not) considered for AJAX sessions.

Depending on the value of isAjaxAgentWhiteList(), the list is a white-list or a black-list.

Returns:
the list of user agents that are (not) considered for AJAX sessions.
See Also:
setAjaxAgentList(ArrayList, boolean), agentSupportsAjax(String)

isAjaxAgentWhiteList

public boolean isAjaxAgentWhiteList()
Returns whether the getAjaxAgentList() is a white list or black list.

Returns:
whether the getAjaxAgentList() is a white list or black list.
See Also:
setAjaxAgentList(ArrayList, boolean), agentSupportsAjax(String)

agentSupportsAjax

public boolean agentSupportsAjax(java.lang.String userAgent)
Returns whether the user agent should be considered as one with Ajax support.

Returns:
whether the user agent should be considered as one with Ajax support.
See Also:
setAjaxAgentList(ArrayList, boolean)

setBotList

public void setBotList(java.util.ArrayList<java.lang.String> botList)
Sets the list of bots.

JWt considers three types of sessions:

By default, JWt does a browser detection to distinguish between the first two: if a browser supports JavaScript (and has it enabled), and has an AJAX DOM API, then AJAX sessions are chosen, otherwise plain HTML sessions.

Here, you can specify user agents that should be should be treated as bots.

The default configuration sets the following list:


getBotList

public java.util.ArrayList<java.lang.String> getBotList()
Returns the list of user agents that are treated as bots.

Returns:
the list of user agents that are treated as bots.
See Also:
setBotList(ArrayList)

agentIsBot

public boolean agentIsBot(java.lang.String userAgent)
Returns whether the user agent is a bot.

See Also:
setBotList(ArrayList)

setFavicon

public void setFavicon(java.lang.String favicon)
Configures a path to a favicon. By default, a browser will fetch a favicon from "/favicon.ico".
Using this setting, you may provide a custom path to the favicon.

The default value is "".


getFavicon

public java.lang.String getFavicon()
Returns the path for the favicon

Returns:
the path for the favicon
See Also:
setFavicon(String)

setProgressiveBootstrap

public void setProgressiveBootstrap(boolean enable)
Sets whether the progressive bootstrap method is used.

Since JWt 2.99.4, a new bootstrap method has been added (initially proposed by Anthony roger Buck). While the default bootstrap already honors the principle of graceful degradation, this bootstrap implements this using the principle of progressive enhancement (and quite literally so).

This bootstrap method will initially assume that the user agent is a plain HTML user-agent and immediately create the application (with WEnvironment.hasAjax() always returning false). The initial response will contain the initial page suitable for a plain HTML user-agent.

JavaScript embedded in this page will sense for AJAX support and trigger a second request which progresses the application to an AJAX application (without repainting the user interface). To that extent, it will change WEnvironment.hasAjax() to return true, and invoke WApplication.enableAjax() which in turn propagates WWidget.enableAjax() through the widget hierarchy. This upgrade happens in the back-ground, unnoticed to the user.

This mitigates disadvantages associated with the default bootstrap, which implements a browser detection first after it starts the application:


progressiveBootstrap

public boolean progressiveBootstrap()
Returns whether the progressive bootstrap method is used.

Returns:
whether the progressive bootstrap method is used.
See Also:
setProgressiveBootstrap(boolean).

getSessionTimeout

public int getSessionTimeout()
Returns the session timeout.

Returns:
the session timeout.

getIndicatorTimeout

public int getIndicatorTimeout()
Returns the loading indicator timeout. When a response time for an AJAX call exceeds this time, a loading indicator is shown.

Returns:
the loading indicator timeout in milliseconds.

setIndicatorTimeout

public void setIndicatorTimeout(int timeout)
Sets the loading indicator timeout. When a response time for an AJAX call exceeds this time, a loading indicator is shown.

Parameters:
timeout - the timeout in milliseconds.

getBootstrapTimeout

public int getBootstrapTimeout()

getErrorReporting

public eu.webtoolkit.jwt.Configuration.ErrorReporting getErrorReporting()
Returns the error reporting mode.


setErrorReporting

public void setErrorReporting(eu.webtoolkit.jwt.Configuration.ErrorReporting err)
Set the error reporting mode.