Package org.zkoss.zk.device
Class GenericDevice
- java.lang.Object
-
- org.zkoss.zk.device.GenericDevice
-
- All Implemented Interfaces:
Device
- Direct Known Subclasses:
AjaxDevice
,XmlDevice
public abstract class GenericDevice extends java.lang.Object implements Device
A skeletal implementation ofDevice
.- Since:
- 3.0.0
- Author:
- tomyeh
-
-
Constructor Summary
Constructors Constructor Description GenericDevice()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
getDocType()
Returns null to indicate not to generate <!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
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 type, DeviceConfig config)
Initializes the device.boolean
isCacheable()
Return true to indicate it is cacheable.java.lang.Boolean
isCompatible(java.lang.String userAgent)
Returns null to indicate unknown.boolean
isSupported(int func)
Returns whether the specified function is supported.java.lang.Object[]
matches(java.lang.String userAgent)
Returns the name and version of the client if the given user agent matches this client, or null if not matched or it is a standard browser request.java.lang.String
packageToPath(java.lang.String pkg)
Converts a package to an absolute path that can be accessible by the class loader (classpath).void
reloadMessages(java.util.Locale locale)
Reloads the client-side messages in the specified locale.void
sessionDidActivate(Desktop desktop)
Notification that the desktop, which owns this device, has just been activated (a.k.a., deserialized) by the Web container.void
sessionWillPassivate(Desktop desktop)
Notification that the desktop, which owns this device, is about to be passivated (a.k.a., 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
setUnavailableMessage(java.lang.String msg)
Sets the unavailable message that is shown to the client if the client doesn't support this device.java.lang.String
toAbsolutePath(java.lang.String path)
Converts a relative path to an absolute path that can be accessible by the class loader (classpath).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.zkoss.zk.device.Device
getContentType
-
-
-
-
Method Detail
-
isSupported
public boolean isSupported(int func)
Description copied from interface:Device
Returns whether the specified function is supported.- Specified by:
isSupported
in interfaceDevice
- Parameters:
func
- the function.
-
getType
public java.lang.String getType()
Description copied from interface:Device
Returns the device type.
-
isCacheable
public boolean isCacheable()
Return true to indicate it is cacheable.- Specified by:
isCacheable
in interfaceDevice
-
isCompatible
public java.lang.Boolean isCompatible(java.lang.String userAgent)
Returns null to indicate unknown. Deriving should override it to provide more precise information.- Specified by:
isCompatible
in interfaceDevice
- 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.
- See Also:
Execution.getUserAgent()
,Devices.getDeviceByClient(java.lang.String)
-
getUnavailableMessage
public java.lang.String getUnavailableMessage()
Description copied from interface:Device
Returns the unavailable message that is shown to the client if the client doesn't support this device.- Specified by:
getUnavailableMessage
in interfaceDevice
- Returns:
- the unavailable message, or null if no such message
-
setUnavailableMessage
public java.lang.String setUnavailableMessage(java.lang.String msg)
Description copied from interface:Device
Sets the unavailable message that is shown to the client if the client doesn't support this device.- Specified by:
setUnavailableMessage
in interfaceDevice
- Parameters:
msg
- the unavailable message.- Returns:
- the previous unavailable message, or null if not such message
-
setServerPushClass
public java.lang.Class setServerPushClass(java.lang.Class cls)
Description copied from interface:Device
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.- Specified by:
setServerPushClass
in interfaceDevice
- Returns:
- the previous class, or null if not available.
-
getServerPushClass
public java.lang.Class getServerPushClass()
Description copied from interface:Device
Returns the class that implements the server-push feature (ServerPush
) for this device, or null if the default is used.- Specified by:
getServerPushClass
in interfaceDevice
-
getDocType
public java.lang.String getDocType()
Returns null to indicate not to generate <!DOCTYPE> at all.- Specified by:
getDocType
in interfaceDevice
-
addEmbedded
public void addEmbedded(java.lang.String content)
Description copied from interface:Device
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.
- Specified by:
addEmbedded
in interfaceDevice
-
getEmbedded
public java.lang.String getEmbedded()
Description copied from interface:Device
Returns the content that shall be embedded to the output being generated to the client, or null if no embedded content.- Specified by:
getEmbedded
in interfaceDevice
-
matches
public java.lang.Object[] matches(java.lang.String userAgent)
Returns the name and version of the client if the given user agent matches this client, or null if not matched or it is a standard browser request.This implementation always returns null. That is, it assumes the client is a standard browser.
-
reloadMessages
public void reloadMessages(java.util.Locale locale) throws java.io.IOException
Reloads the client-side messages in the specified locale.Default: throw UnsupportedOperationException.
- Specified by:
reloadMessages
in interfaceDevice
- Parameters:
locale
- the locale. If null,Locales.getCurrent()
is assumed.- Throws:
java.io.IOException
- Since:
- 5.0.4
-
packageToPath
public java.lang.String packageToPath(java.lang.String pkg)
Converts a package to an absolute path that can be accessible by the class loader (classpath).Default: throw UnsupportedOperationException.
- Specified by:
packageToPath
in interfaceDevice
- Since:
- 5.0.4
-
toAbsolutePath
public java.lang.String toAbsolutePath(java.lang.String path)
Converts a relative path to an absolute path that can be accessible by the class loader (classpath).Default: throw UnsupportedOperationException.
- Specified by:
toAbsolutePath
in interfaceDevice
- Parameters:
path
- the path (never null). It is assumed to be a relative path if not starting with '/' or '~'.- Since:
- 5.0.4
-
init
public void init(java.lang.String type, DeviceConfig config)
Description copied from interface:Device
Initializes the device. A device is created for each desktop, and this method is called when it is associated to the desktop.
-
sessionWillPassivate
public void sessionWillPassivate(Desktop desktop)
Description copied from interface:Device
Notification that the desktop, which owns this device, is about to be passivated (a.k.a., serialized) by the Web container.- Specified by:
sessionWillPassivate
in interfaceDevice
-
sessionDidActivate
public void sessionDidActivate(Desktop desktop)
Description copied from interface:Device
Notification that the desktop, which owns this device, has just been activated (a.k.a., deserialized) by the Web container.- Specified by:
sessionDidActivate
in interfaceDevice
-
-