org.zkoss.zkplus.databind
Class AnnotateDataBinder

java.lang.Object
  extended by org.zkoss.zkplus.databind.DataBinder
      extended by org.zkoss.zkplus.databind.AnnotateDataBinder

public class AnnotateDataBinder
extends DataBinder

The DataBinder that reads ZUML annotations to create binding info. The ZUML page must declare the XML namespace, xmlns:a="http://www.zkoss.org/2005/zk/annotation", to use the ZUML annotations. The annotation is declared before each Component or specified directly on the Component attributes. For example, the following annotation associates the attibute "value" of the component "textbox" to the bean's value "person.address.city".

 <a:bind value="person.address.city"/>
 <textbox/>
 

Or since ZK 2.4 you can annotate directly on the attribute "value" of the component "textbox" like this.

 <textbox value="@{person.address.city}"/>
 

The @{...} pattern tells the ZUML parser that this is for annotation.

The AnnotateDataBinder knows "a:bind" annotation only. The complete format is like this if you declared it before the Component.

 <a:bind attrY="bean's value;[tag:expression]..."/>
 <componentX/>
 

You can also specify directly on the Component attribute, the complete format is like this:

 <componentX attrY="@{bean's value,[tag='expression']...}"/>
 

This associates the componentX's attribute attrY to the bean's value. The bean's value is something in the form of beanid.field1.field2... You can either call DataBinder.bindBean(java.lang.String, java.lang.Object) to bind the beanid to a real bean object or you can neglect it and this DataBinder would try to find it from the variables map via (Component.getVariable(java.lang.String, boolean) method. That is, all those variables defined in zscript are accessible by this DataBinder. Note that you can choose either two formats of annotaion as your will and you can even hybrid them together though it is generaly not a good practice.

The tag:expression or tag='expression' is a generic form to bind more metainfo to the attrY of the componentX. The currently supported tag includes "load-when", "save-when", "access", and "converter"

Since:
2.4.0 Supporting @{...} annotations., 3.0.0 Supporting multiple events of save-when tag and validation phase.
Author:
Henri Chen
See Also:
AnnotateDataBinderInit, DataBinder

Field Summary
 
Fields inherited from class org.zkoss.zkplus.databind.DataBinder
_collectionItemMap, NULLIFY, TEMPLATE, TEMPLATEMAP, VARNAME
 
Constructor Summary
AnnotateDataBinder(org.zkoss.zk.ui.Component comp)
          Constructor that read all binding annotations in the components inside the specified component (inclusive).
AnnotateDataBinder(org.zkoss.zk.ui.Component[] comps)
          Constructor that read all binding annotations of the given components array.
AnnotateDataBinder(org.zkoss.zk.ui.Component[] comps, boolean defaultConfig)
          Constructor that read all binding annotations of the given component array.
AnnotateDataBinder(org.zkoss.zk.ui.Component comp, boolean defaultConfig)
          Constructor that read all binding annotations in the components inside the specified component (inclusive).
AnnotateDataBinder(org.zkoss.zk.ui.Desktop desktop)
          Constructor that read all binding annotations of the components inside the specified desktop.
AnnotateDataBinder(org.zkoss.zk.ui.Desktop desktop, boolean defaultConfig)
          Constructor that read all binding annotations of the components inside the specified desktop.
AnnotateDataBinder(org.zkoss.zk.ui.Page page)
          Constructor that read all binding annotations of the components inside the specified page.
AnnotateDataBinder(org.zkoss.zk.ui.Page page, boolean defaultConfig)
          Constructor that read all binding annotations of the components inside the specified page.
 
Method Summary
 
Methods inherited from class org.zkoss.zkplus.databind.DataBinder
addBinding, addBinding, addBinding, addBinding, addBinding, addCollectionItem, bindBean, existBinding, existsBindings, getBinding, getBindingCollectionItem, getBindings, init, isDefaultConfig, loadAll, loadAttribute, loadComponent, loadPropertyAnnotation, removeBinding, saveAll, saveAttribute, saveComponent, setDefaultConfig, setupTemplateComponent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Desktop desktop)
Constructor that read all binding annotations of the components inside the specified desktop.

Parameters:
desktop - the ZUML desktop.

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Page page)
Constructor that read all binding annotations of the components inside the specified page.

Parameters:
page - the ZUML page.

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Component comp)
Constructor that read all binding annotations in the components inside the specified component (inclusive).

Parameters:
comp - the ZUML component.

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Component[] comps)
Constructor that read all binding annotations of the given components array.

Parameters:
comps - the Component array.
Since:
3.0.0

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Desktop desktop,
                          boolean defaultConfig)
Constructor that read all binding annotations of the components inside the specified desktop.

Parameters:
desktop - the ZUML desktop.
defaultConfig - whether load default binding configuration defined in lang-addon.xml

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Page page,
                          boolean defaultConfig)
Constructor that read all binding annotations of the components inside the specified page.

Parameters:
page - the ZUML page.
defaultConfig - whether load default binding configuration defined in lang-addon.xml

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Component[] comps,
                          boolean defaultConfig)
Constructor that read all binding annotations of the given component array.

Parameters:
comps - the Component array
defaultConfig - whether load default binding configuration defined in lang-addon.xml
Since:
3.0.0

AnnotateDataBinder

public AnnotateDataBinder(org.zkoss.zk.ui.Component comp,
                          boolean defaultConfig)
Constructor that read all binding annotations in the components inside the specified component (inclusive).

Parameters:
comp - the ZUML component.
defaultConfig - whether load default binding configuration defined in lang-addon.xml


Copyright © 2005-2007 Potix Corporation. All Rights Reserved.