Client Activity Watches"

From Documentation
Line 36: Line 36:
  
 
where <tt>ctl</tt> is a controller allowing you to have better control of the invocation sequence of the listeners, and <tt>arg0</tt> and others are the arguments that passed to <javadoc method="fire(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc> or <javadoc method="fireDown(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc>.
 
where <tt>ctl</tt> is a controller allowing you to have better control of the invocation sequence of the listeners, and <tt>arg0</tt> and others are the arguments that passed to <javadoc method="fire(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc> or <javadoc method="fireDown(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc>.
 +
 +
The controller has two methods: fire and fireDown (that have the signature of <javadoc method="fire(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc> or <javadoc method="fireDown(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc>), and one field: origin. The fire and fireDown methods are used to fore the other listeners (of the same client activity) to be invoked. If your listener doesn't call any of them, the other listeners are called in the same order of registration.
 +
 +
The origin field (<tt>ctl.origin</tt>) is the original object (usually a widget, <javadoc directory="jsdoc">zk.Widget</javadoc>) passed as the first argument when <javadoc method="fire(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc> or <javadoc method="fireDown(_global_.String, java.lang.Object, _global_.Map, java.lang.Object...)" directory="jsdoc">_global_.zWatch</javadoc> was called. In other words, it is the one causes the client activity. It is null if not available.
  
 
To unlisten, you could use <javadoc method="unlisten(_global_.Map)" directory="jsdoc">_global_.zWatch</javadoc> as follows:
 
To unlisten, you could use <javadoc method="unlisten(_global_.Map)" directory="jsdoc">_global_.zWatch</javadoc> as follows:

Revision as of 12:19, 1 December 2010


Client Activity Watches


In most cases, a widget or an application needs only to listen Event as described in the Client-side Event listening section. However, there are some activities not available as a DOM event (Event) or a ZK event (Event)[1], such as when a widget is becoming invisible, or a window is brought to top. This kind of activity can be listened by so-called watch (zWatch)

Notice that application developers rarely need to access it. It is more for component development.


  1. A ZK event is a wrapper of a DOM event to provide more functionality. A DOM event is caused by the browser, and is actually a wrapper class from jQuery to encapsulate the browser's incompatibility.

Listen and Unlisten

To add a watch (i.e., listen to a client activity), you could use zWatch.listen(Map) as follows:

zWatch.listen({
    onSize: this,
    onShow: this,
    onHide: [this, this._onHide]
});

As shown, the key of each entry in the given map is the name of the client activity (aka., the watch name), and the value could be one of the following:

  • An object that has a method with the same name. In the above case, this must have the onSize and onSHow methods
  • A two-element array, where the first element is the target, and the second is the method

The signature of the method is as follows.

function onWhatever(ctl, arg0, arg1...) {
}

where ctl is a controller allowing you to have better control of the invocation sequence of the listeners, and arg0 and others are the arguments that passed to zWatch.fire(String, Object, Map) or zWatch.fireDown(String, Object, Map).

The controller has two methods: fire and fireDown (that have the signature of zWatch.fire(String, Object, Map) or zWatch.fireDown(String, Object, Map)), and one field: origin. The fire and fireDown methods are used to fore the other listeners (of the same client activity) to be invoked. If your listener doesn't call any of them, the other listeners are called in the same order of registration.

The origin field (ctl.origin) is the original object (usually a widget, Widget) passed as the first argument when zWatch.fire(String, Object, Map) or zWatch.fireDown(String, Object, Map) was called. In other words, it is the one causes the client activity. It is null if not available.

To unlisten, you could use zWatch.unlisten(Map) as follows:

zWatch.unlisten({
    onSize: this,
    onShow: this,
    onHide: [this, this._onHide]
});

Client Activities

Here is the list of client activities that you could watch.

beforeSize

Called right before the browser window or the parent widget is resized.

beforeSize and onSize are fired when the browser window or a widget is resized. beforeSize is fired first, such that the listener could reset style's width or height and the the listener of onSize can change it to the correct size. Notice that it is a must for the TD/TR tag. Otherwise, the onSize's listener cannot change its width/height correctly.

Notice zWatch's fireDown must be used to fire this event, so only the listeners of descendants of the specified widget will be called.

onBindLevelChange

onHide

onFloatUp

onResponse

onScroll

onSend

onSize

onShow

Version History

Last Update : 2010/12/01


Version Date Content
     



Last Update : 2010/12/01

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