首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

【zk开发】引语强化Composer

2012-08-29 
【zk开发】注解强化Composer?import java.text.DecimalFormatimport java.text.ParseExceptionimport java

【zk开发】注解强化Composer
?【zk开发】引语强化Composerimport java.text.DecimalFormat;import java.text.ParseException;import java.util.List;import org.zkoss.zk.ui.Component;import org.zkoss.zk.ui.util.GenericAutowireComposer;import org.zkoss.zkplus.databind.AnnotateDataBinder;import org.zkoss.zkplus.databind.DataBinder;import com.sun4love.common.web.zk.converter.SexRadiogroupConverter;/** * 注解绑定类 * <p> * 在GenericAutowireComposer基础上对注解进行增强, 因此你无需再页面上显式添加注解支持指令 * * <pre> * &lt;?init , null,null,null); * } * } * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如&lt;textbox value="@{user.name}"/&gt;中的value * @param expr * 表达式,例如,例如&lt;textbox value="@{user.name}"/&gt;中的user.name * @param loadWhenEvents * 加载bean到ui的时机,例如comp1.onClck、comp2、onBlur、comp3.onSelect, * 等同于&lt;textbox id=&quot;txtFullName&quot; * value=&quot;@{user.fullName, load-when= * 'txtLastName.onBlur'}&quot;/&gt;中的txtLastName.onBlur * @param saveWhenEvent * 保存ui value到bean的时机,例如comp3.onBlur, 等同于&lt;textbox * id=&quot;txtFullName&quot; value=&quot;@{user.fullName, * save-when= * 'txtFullName.onBlur',}&quot;/&gt;中的txtFullName.onBlur * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), * @param converter * 转换器,ui到bean之间的互相转换,类似hibernate jdbc type到db type或者struts中的转换器 * ,样例见{@link SexRadiogroupConverter} */protected void addBinding(Component comp, String attr, String expr,String loadWhenEvent, String saveWhenEvent, String access,String converter) {if (loadWhenEvent != null && "".equals(loadWhenEvent.trim())) {binder.addBinding(comp, attr, expr, (List) null, saveWhenEvent,access, converter);} else {binder.addBinding(comp, attr, expr, new String[] { loadWhenEvent },saveWhenEvent, access, converter);}}/** * 绑定bean到ui组件上 * <p> * 范例 * <hr /> * * <pre> * 页面 * &lt;window id=&quot;userWin&quot; apply=&quot;GenericDataBinderComposerChild&quot;&gt; * &lt;textbox id=&quot;txtFirstName&quot; /&gt; * &lt;textbox id=&quot;txtlastName&quot; /&gt; * &lt;label id=&quot;lblFullName&quot; /&gt; * &lt;/window&gt; * GenericDataBinderComposerChild类 * * public GenericDataBinderComposerChild extends GenericDataBinderComposer{ * private Textbox txtFirstName; * private Textbox txtLastName; * private Label lblFullName; * * public void doAfterCompose(Component comp) throws Exception { * super.doAfterCompose(comp); * binder.addBinding(txtFirstName, "value", "userWin$composer.user.firstName"); * binder.addBinding(txtLastName, "value", "userWin$composer.user.lastName"); * * //"txtLastName.onBlur"中的txtLastName是页面上&lt;textbox id=&quot;txtlastName&quot; /&gt; * //userWin$composer中的userWin是页面上window的id,$.composer是固定格式 * addBinding(lblFullName, "value", "userWin$composer.user.fullName","txtLastName.onBlur" , null,null,null); * } * } * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如&lt;textbox value="@{user.name}"/&gt;中的value * @param expr * 表达式,例如,例如&lt;textbox value="@{user.name}"/&gt;中的user.name * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), */protected void addBinding(Component comp, String attr, String expr,String access) {binder.addBinding(comp, attr, expr, (List) null, (List) null, access,null);}/** * 绑定bean到ui组件上 * <p> * 范例 * <hr /> * * <pre> * &lt;window id=&quot;userWin&quot; apply=&quot;GenericDataBinderComposerChild&quot;&gt; * &lt;textbox id=&quot;txtFirstName&quot; /&gt; * &lt;textbox id=&quot;txtlastName&quot; /&gt; * &lt;label id=&quot;lblFullName&quot; /&gt; * &lt;/window&gt; * GenericDataBinderComposerChild类 * * public GenericDataBinderComposerChild extends GenericDataBinderComposer{ * private Textbox txtFirstName; * private Textbox txtLastName; * private Label lblFullName; * * public void doAfterCompose(Component comp) throws Exception { * super.doAfterCompose(comp); * binder.addBinding(txtFirstName, "value", "userWin$composer.user.firstName"); * binder.addBinding(txtLastName, "value", "userWin$composer.user.lastName"); * * //"txtLastName.onBlur"中的txtLastName是页面上&lt;textbox id=&quot;txtlastName&quot; /&gt; * //userWin$composer中的userWin是页面上window的id,$.composer是固定格式 * addBinding(lblFullName, "value", "userWin$composer.user.fullName","txtLastName.onBlur" , null,null,null); * } * } * * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如&lt;textbox value="@{user.name}"/&gt;中的value * @param expr * 表达式,例如,例如&lt;textbox value="@{user.name}"/&gt;中的user.name * @param loadWhenEvents * 加载bean到ui的时机,例如comp1.onClck、comp2、onBlur、comp3.onSelect, * 等同于&lt;textbox id=&quot;txtFullName&quot; * value=&quot;@{user.fullName, load-when= * 'txtLastName.onBlur'}&quot;/&gt;中的txtLastName.onBlur * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), * @param converter * 转换器,ui到bean之间的互相转换,类似hibernate jdbc type到db type或者struts中的转换器 * ,样例见{@link SexRadiogroupConverter} */protected void addBinding(Component comp, String attr, String expr,String access, String converter) {binder.addBinding(comp, attr, expr, (List) null, (List) null, access,converter);}}

?

热点排行