org.zkoss.zk.device
Interface Device

All Known Implementing Classes:
AjaxDevice, GenericDevice, XmlDevice

public interface Device

Represents a client device. For example, the HTML browsers with Ajax are called AjaxDevice, the XML output called org.zkoss.zml.device.XmlDevice, and the MIL device called org.zkoss.mil.device.MilDevice.

Note: the same device is shared by all desktops of the same device type.

Since:
2.4.0
Author:
tomyeh

Field Summary
static int RESEND
          Used with isSupported(int) to know whether the device supports the resend mechanism.
 
Method Summary
 void addEmbedded(java.lang.String content)
          Adds the content that shall be added to the output generated and sent to the client, when rending a desktop.
 java.lang.String getContentType()
          Returns the default content type (never null).
 java.lang.String getDocType()
          Returns the default doc type, or null if no doc type at all.
 java.lang.String getEmbedded()
          Returns the content that shall be embedded to the output being generated to the client, or null if no embedded content.
 java.lang.Class getServerPushClass()
          Returns the class that implements the server-push feature (ServerPush) for this device, or null if the default is used.
 java.lang.String getTimeoutURI()
          Deprecated. As of release 3.6.3, use Configuration.getTimeoutURI(java.lang.String) instead.
 java.lang.String getType()
          Returns the device type.
 java.lang.String getUnavailableMessage()
          Returns the unavailable message that is shown to the client if the client doesn't support this device.
 void init(java.lang.String deviceType, DeviceConfig config)
          Initializes the device.
 boolean isCacheable()
          Returns whether the output can be cached by the client.
 boolean isClient(java.lang.String userAgent, java.lang.String type)
          Tests if a client is the givent type.
 java.lang.Boolean isCompatible(java.lang.String userAgent)
          Returns whether this device supports the specified client.
 boolean isSupported(int func)
          Returns whether the specified function is supported.
 void sessionDidActivate(Desktop desktop)
          Notification that the desktop, which owns this device, has just been activated (aka., deserialized) by the Web container.
 void sessionWillPassivate(Desktop desktop)
          Notification that the desktop, which owns this device, is about to be passivated (aka., serialized) by the Web container.
 java.lang.Class setServerPushClass(java.lang.Class cls)
          Sets the class that implements the server-push feature (ServerPush) for this device, or null to use the default.
 java.lang.String setTimeoutURI(java.lang.String timeoutURI)
          Deprecated. As of release 3.6.3, use Configuration.setTimeoutURI(java.lang.String, java.lang.String, int) instead.
 java.lang.String setUnavailableMessage(java.lang.String unavailmsg)
          Sets the unavailable message that is shown to the client if the client doesn't support this device.
 

Field Detail

RESEND

static final int RESEND
Used with isSupported(int) to know whether the device supports the resend mechanism. In other words, whether the client will resend the request if the time specified in Configuration.getResendDelay() expires.

Since:
3.0.3
See Also:
Constant Field Values
Method Detail

isSupported

boolean isSupported(int func)
Returns whether the specified function is supported.

Parameters:
func - the function. It can be one of RESEND.
Since:
3.0.3

getType

java.lang.String getType()
Returns the device type.


isCacheable

boolean isCacheable()
Returns whether the output can be cached by the client.


getUnavailableMessage

java.lang.String getUnavailableMessage()
Returns the unavailable message that is shown to the client if the client doesn't support this device.

Returns:
the unavailable message, or null if no such message
Since:
2.4.0

setUnavailableMessage

java.lang.String setUnavailableMessage(java.lang.String unavailmsg)
Sets the unavailable message that is shown to the client if the client doesn't support this device.

Parameters:
unavailmsg - the unavailable message.
Returns:
the previous unavailable message, or null if not such message
Since:
2.4.0

getTimeoutURI

java.lang.String getTimeoutURI()
Deprecated. As of release 3.6.3, use Configuration.getTimeoutURI(java.lang.String) instead.


setTimeoutURI

java.lang.String setTimeoutURI(java.lang.String timeoutURI)
Deprecated. As of release 3.6.3, use Configuration.setTimeoutURI(java.lang.String, java.lang.String, int) instead.


isCompatible

java.lang.Boolean isCompatible(java.lang.String userAgent)
Returns whether this device supports the specified client.

Parameters:
userAgent - represents a client. For HTTP clients, It is the user-agent header.
Returns:
Boolean.TRUE if this device supports the specified client, Boolean.FALSE if cannot, or null if unknown.
Since:
3.5.0
See Also:
Execution.getUserAgent(), Devices.getDeviceByClient(java.lang.String)

getServerPushClass

java.lang.Class getServerPushClass()
Returns the class that implements the server-push feature (ServerPush) for this device, or null if the default is used.

Since:
3.0.0

setServerPushClass

java.lang.Class setServerPushClass(java.lang.Class cls)
Sets the class that implements the server-push feature (ServerPush) for this device, or null to use the default.

Default: PollingServerPush.

If ZK EE (with zkmax.jar) is loaded, the COMET-based server push (CometServerPush) is the default.

Returns:
the previous class, or null if not available.
Since:
3.0.0

getContentType

java.lang.String getContentType()
Returns the default content type (never null).

Since:
3.0.0

getDocType

java.lang.String getDocType()
Returns the default doc type, or null if no doc type at all.

Since:
3.0.0

addEmbedded

void addEmbedded(java.lang.String content)
Adds the content that shall be added to the output generated and sent to the client, when rending a desktop. What content can be embedded depends on the device. For Ajax devices, it can be anything that can be placed inside HTML HEAD, such as JavaScript codes.

As the method name suggests, the embedded contents are accumulated and all generated to the output.

Since:
3.0.6

getEmbedded

java.lang.String getEmbedded()
Returns the content that shall be embedded to the output being generated to the client, or null if no embedded content.

Since:
3.0.6

init

void init(java.lang.String deviceType,
          DeviceConfig config)
Initializes the device. A device is created for each desktop, and this method is called when it is associated to the desktop.

Parameters:
deviceType - the device type (never null)
config - the configuration to initialize the device (never null)
Since:
3.0.0

sessionWillPassivate

void sessionWillPassivate(Desktop desktop)
Notification that the desktop, which owns this device, is about to be passivated (aka., serialized) by the Web container.

Since:
2.4.0

sessionDidActivate

void sessionDidActivate(Desktop desktop)
Notification that the desktop, which owns this device, has just been activated (aka., deserialized) by the Web container.

Since:
2.4.0

isClient

boolean isClient(java.lang.String userAgent,
                 java.lang.String type)
Tests if a client is the givent type.

Parameters:
userAgent - represents a client.
type - the type of the browser.
Returns:
true if it matches, false if unable to identify. Note: the default identifies ie*, gecko*, safari, opera and hil. So, the implementation needs not to identify them (i.e., simply return false), though it is harmless to identify.
Since:
5.0.0


Copyright © 2005-2009 Potix Corporation. All Rights Reserved. SourceForge.net Logo