package org.zkoss.zktest.bind.issue;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.bind.BindUtils;
import org.zkoss.bind.GlobalCommandEvent;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.GlobalCommand;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zkmax.ui.select.annotation.Subscribe;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Label;
public class F01046PublicEvent {
static public class VM {
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@GlobalCommand("sayHello")
@NotifyChange("message")
public void sayHello(@BindingParam("param")String param){
message = "Hello "+param;
}
}
static public class Composesr extends SelectorComposer<Component>{
@Wire("#msg2")
Label msg2;
@Subscribe("myqueue")
public void sayHi(Event evt){
if(evt instanceof GlobalCommandEvent){
if("sayHi".equals(((GlobalCommandEvent)evt).getCommand())){
String param = (String)((GlobalCommandEvent)evt).getArgs().get("param");
msg2.setValue("Hello "+param);
}
}
}
@Listen("onClick=#btn2")
public void click(){
Map args = new HashMap();
args.put("param", "i am a composer");
BindUtils.postGlobalCommand("myqueue", null, "sayHello", args);
}
}
}