The device-config Element"

From Documentation
m (correct highlight (via JWB))
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{ZKConfigurationReferencePageHeader}}
 
{{ZKConfigurationReferencePageHeader}}
  
__TOC__
 
It specifies a device. A device represents a client. Different clients have different implementation. Currently there are two types: <tt>ajax</tt> and <tt>mil</tt>. They represents the Web browsers with Ajax, and the mobile device with Mobile Interactive Language<ref>MIL is a ZK markup language used to communicate with the mobile devices.</ref>. It is used to create an instance returned by the <tt>getDevice</tt> method of the <tt>Desktop</tt> intereface.
 
  
The allowed child element is <tt>device-type</tt> , <tt>device-class</tt>, <tt>timeout-uri</tt>, and <tt>unavailable-message</tt>. You might have multiple <tt>device-config</tt> elements in one <tt>zk.xml</tt>.
+
It specifies a device. A device represents a client. Different clients have different implementation. Currently there are two types: <code>ajax</code> and <code>mil</code>. They represent the Web browsers with Ajax, and the mobile device with Mobile Interactive Language<ref>MIL is a ZK markup language used to communicate with the mobile devices.</ref>. It is used to create an instance returned by the <code>getDevice</code> method of the <code>Desktop</code> intereface.
 +
 
 +
The allowed child element is <code>device-type</code> , <code>device-class</code>, <code>timeout-uri</code>, and <code>unavailable-message</code>. You might have multiple <code>device-config</code> elements in one <code>zk.xml</code>.
  
 
<source lang="xml" >
 
<source lang="xml" >
Line 10: Line 10:
 
     <device-type>ajax</device-type>
 
     <device-type>ajax</device-type>
 
     <device-class>my.MyAjaxDevice</device-class>
 
     <device-class>my.MyAjaxDevice</device-class>
    <timeout-uri>/my-timeout.zul</timeout-uri>
 
 
     <server-push-class>my.ServerPush</server-push-class>
 
     <server-push-class>my.ServerPush</server-push-class>
 
     <unavailable-message><![CDATA[
 
     <unavailable-message><![CDATA[
Line 26: Line 25:
  
  
'''Note:''' Unlike most other configurations defined in <tt>WEB-INF/zk.xml</tt>, the definitions defined in <tt>device-config</tt> are applied to all Web applications sharing the same <tt>zk.jar</tt>. Refer to the <tt>zscript-config</tt> element for more information.
+
'''Note:''' Unlike most other configurations defined in <code>WEB-INF/zk.xml</code>, the definitions defined in <code>device-config</code> are applied to all Web applications sharing the same <code>zk.jar</code>. Refer to the <code>zscript-config</code> element for more information.
  
  
Line 33: Line 32:
  
  
 
+
{{ZKConfigurationReferenceHeadingToc}}
== The device-class Element ==
 
[Optional]
 
 
 
It specifies the implementation class. The class must implement the <javadoc type="interface">org.zkoss.zk.device.Device</javadoc> interface. Instead of implementing it from scratch, you can derive from the proper implementation, such as <tt>AjaxDevice</tt> and <tt>MilDevice</tt>.
 
 
 
== The device-type Element ==
 
[Required]
 
 
 
It specifies the device type. The previous implementation with the same device type will be replaced if any.
 
 
 
== The embed Element ==
 
[Optional][Multiple]
 
 
 
It specifies the content that shall be added to the output generated and sent to the client when rendering a desktop. The syntax of the content depends on the client. For Ajax clients, it can be any tags that can be placed inside HTML <tt>HEAD</tt> tag, such as <tt>SCRIPT</tt>, <tt>META</tt> and others.
 
 
 
For example, if you want to show the progress bar in the center of the browser window, you can specify the following in <tt>zk.xml</tt>.
 
 
 
<source lang="xml" >
 
<device-config>
 
<device-type>ajax</device-type>
 
<embed><![CDATA[
 
<script type="text/javascript">
 
    AU_progressbar = function (id, msg) {
 
        Boot_progressbox(id, msg, 0, 0, true, true);
 
    };
 
</script>
 
    ]]></embed>
 
</device-config>
 
</source>
 
 
 
 
 
You can specify multiple <tt>embed</tt> elements and their content be concatenated together.
 
 
 
== The server-push-class Element ==
 
[Optional][Default: ''depends on device and what edition you use'']
 
 
 
It specifies which class used to implement the server-push feature. The class must have a default constructor (without any argument), and implement the <javadoc type="interface">org.zkoss.zk.ui.sys.ServerPush</javadoc> interface.
 
 
 
<source lang="xml" >
 
<device-config>
 
    <device-type>ajax</device-type>
 
    <server-push-class>my.ServerPush</server-push-class>
 
</device-config>
 
</source>
 
 
 
In addition to configuring the application's default implementation, you can choose an implement for a particular class by use of <javadoc method="enableServerPush(org.zkoss.zk.ui.sys.ServerPush)">org.zkoss.zk.ui.sys.DesktopCtrl</javadoc>. For example,
 
 
 
<source lang="java">
 
((DesktopCtrl)desktop).enableServerPush(new org.zkoss.zk.ui.impl.PollingServerPush());
 
</source>
 
 
 
== The timeout-uri Element ==
 
[Optional]
 
[Default: ''null'']
 
[Deprecated since 3.6.3, use [[ZK Configuration Reference/zk.xml/The session-config Element#The timeout-uri Element | session-config]] instead]
 
 
 
It specifies the target URI that will be used to redirect users to, when the desktop no longer exists – it is usually caused by session timeout. If this element is omitted, an error message will be shown up at the browser to alert users for what happens.
 
 
 
To reload the same URI again, you can specify an ''empty'' content as follows.
 
 
 
<source lang="xml" >
 
<device-config>
 
    <device-type>ajax</device-type>
 
    <timeout-uri></timeout-uri>
 
</device-config>
 
</source>
 
 
 
== The unavailable-message Element ==
 
[Optional][Default: ''depends on device'']
 
 
 
It specifies the message that will be displayed if the client doesn't support this device.
 
 
 
==Version History==
 
 
 
{| border='1px' | width="100%"
 
! Version !! Date !! Content
 
|-
 
| &nbsp;
 
| &nbsp;
 
| &nbsp;
 
|}
 
  
 
{{ZKConfigurationReferencePageFooter}}
 
{{ZKConfigurationReferencePageFooter}}

Latest revision as of 10:19, 19 January 2022


The device-config Element



It specifies a device. A device represents a client. Different clients have different implementation. Currently there are two types: ajax and mil. They represent the Web browsers with Ajax, and the mobile device with Mobile Interactive Language[1]. It is used to create an instance returned by the getDevice method of the Desktop intereface.

The allowed child element is device-type , device-class, timeout-uri, and unavailable-message. You might have multiple device-config elements in one zk.xml.

 <device-config>
     <device-type>ajax</device-type>
     <device-class>my.MyAjaxDevice</device-class>
     <server-push-class>my.ServerPush</server-push-class>
     <unavailable-message><![CDATA[
 <p style="color:red">Sorry, JavaScript must be enabled in order for you to use KillApp.</p>
     ]]></unavailable-message>
     <embed><![CDATA[
 <script type="text/javascript">
     AU_progressbar = function (id, msg) {
         Boot_progressbox(id, msg, 0, 0, true, true);
     };
 </script>
     ]]></embed>
 </device-config>


Note: Unlike most other configurations defined in WEB-INF/zk.xml, the definitions defined in device-config are applied to all Web applications sharing the same zk.jar. Refer to the zscript-config element for more information.


Notes

  1. MIL is a ZK markup language used to communicate with the mobile devices.





Last Update : 2022/01/19

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.