package org.zkoss.zktest.bind.issue; import org.zkoss.bind.BindContext; import org.zkoss.bind.Binder; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.Default; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Desktop; import org.zkoss.zul.Label; public class F00633 { String value1; public F00633(){ } public String getValue1() { return value1; } @NotifyChange public void setValue1(String value1) { this.value1 = value1; } @Command @NotifyChange("value1") public void cmd1(){ value1 ="doCommand1"; } @NotifyChange("value1") @Command public void cmd2(){ value1 ="doCommand2"; } @NotifyChange("value1") @Command public void cmd3(BindContext ctx, Binder binder){ //doCommand3 btn3 true value1 ="doCommand3 "+ctx.getComponent().getId()+" "+(binder.getViewModel()==this); } @NotifyChange("value1") @Command public void cmd4(@Default("3") Integer arg1,BindContext ctx, Binder binder,@Default("false") Boolean arg2, String arg3){ //doCommand4 3 false null btn4 true value1 ="doCommand4 "+arg1+" "+arg2+" "+arg3+" "+ctx.getComponent().getId()+" "+(binder.getViewModel()==this); } @NotifyChange("value1") @Command public void cmd5(@BindingParam("arg1") Integer arg1, BindContext ctx, Binder binder, @BindingParam("arg2") Boolean arg2, @BindingParam("arg3") String arg3) { //doCommand5 99 true XYZ btn5 true value1 = "doCommand5 " + arg1 + " " + arg2 + " " + arg3 + " " + ctx.getComponent().getId() + " " + (binder.getViewModel() == this); } @NotifyChange("value1") @Command public void cmd6(@BindingParam("arg1") @Default("9") Integer arg1, @ContextParam(ContextType.BIND_CONTEXT) BindContext ctx, @ContextParam(ContextType.BINDER) Binder binder, @BindingParam("arg2") @Default("true") Boolean arg2, @Default("ABCD") @BindingParam("arg3") String arg3) { //doCommand6 9 true ABCD btn6 true value1 = "doCommand6 " + arg1 + " " + arg2 + " " + arg3 + " " + ctx.getComponent().getId() + " " + (binder.getViewModel() == this); } @NotifyChange("value1") @Command({"cmd7","cmd8","cmd9"}) public void doCommandX(@BindingParam("arg1") @Default("9") Integer arg1, @BindingParam("arg2") @Default("true") Boolean arg2, @Default("ABCD") @BindingParam("arg3") String arg3, BindContext ctx) { //doCommandX 9 true XYZ cmd7 //doCommandX 22 true ABCD cmd8 //doCommandX 9 false EFG cmd9 value1 = "doCommandX " + arg1 + " " + arg2 + " " + arg3 +" "+ctx.getCommandName(); } @Command({"cmdA"}) public void doCommandA(@BindingParam("label") Label label, @BindingParam("unknow") Object obj) { StringBuffer sb = new StringBuffer(); sb.append("object is "); if(obj instanceof Component){ //object is btn10 sb.append(((Component)obj).getId()); }else if(obj instanceof Desktop){ //object is desktop sb.append("desktop"); } label.setValue(sb.toString()); } @NotifyChange("value1") @Command("create") public void onCreate(@BindingParam("label") Label label){ value1 = "onCreate 1"; label.setValue("onCreate 2"); } }