Wire Event Listeners
From Documentation
To wire event listeners in a ViewModel like ZK Developer's Reference/MVC/Controller/Wire Event Listeners, we have to call Selectors.wireEventListeners() in the initial method. We then can use @Listen to declare a method as an event listener. We do not recommend this usage because it loses ViewModel an important advantage i.e. loose coupling with View. Please evaluate the trade-offs before using it.
Wire event listener in a ViewModel
public class SearchAutowireVM{
@Init
public void init(@ContextParam(ContextType.VIEW) Component view){
Selectors.wireEventListeners(view, this);
}
@Listen("onClick=#mybutton")
public void submit(MouseEvent event){
//handle events
}
}
- Selectors.wireEventListeners() 's first parameters is Root View Component which can be retrieved by @ContextParam.
Usage Changed in 6.0.2
As the mentioned same reason in previous section, the usage of wiring event listener is also changed. Hence, to wire event listeners in a ViewModel, you have to call Selectors.wireEventListeners() in a method with @AfterCompose as follows:
Wire event listener in a ViewModel
public class SearchAutowireVM{
@AfterCompose
public void afterCompose(@ContextParam(ContextType.VIEW) Component view){
Selectors.wireEventListeners(view, this);
}
@Listen("onClick=#mybutton")
public void submit(MouseEvent event){
//handle events
}
}
- Selectors.wireEventListeners() 's first parameters is Root View Component which can be retrieved by @ContextParam.
Version History
Version | Date | Content |
---|---|---|
6.0.0 | May 2012 | Supplement |
6.0.2 | July 2012 | The @AfterCompose was introduced. |