Wire Event Listeners"

From Documentation
Line 2: Line 2:
  
  
 
To wire event listeners in a ViewModel like [[ZK Developer's Reference/MVC/Controller/Wire Event Listeners]], we have to call <tt> Selectors.wireEventListeners() </tt> in the initial method. We then can use <tt> @Listen</tt> to declare a method as an event listener.  '''We do not recommend this usage''' because it loses <b>ViewModel</b> an important advantage i.e.  loose coupling with View. '''Please evaluate the trade-offs before using it.'''
 
 
<!--
 
 
  since 6.0.2
 
  since 6.0.2
  
  
 
To wire event listeners in a ViewModel like [[ZK Developer's Reference/MVC/Controller/Wire Event Listeners]], we have to call <tt> Selectors.wireEventListeners() </tt> in a method with <tt>@AfterCompose</tt>. We then can use <tt> @Listen</tt> to declare a method as an event listener.  '''We do not recommend this usage''' because it loses <b>ViewModel</b> an important advantage: loose coupling with View. '''Please evaluate the trade-offs before using it.'''
 
To wire event listeners in a ViewModel like [[ZK Developer's Reference/MVC/Controller/Wire Event Listeners]], we have to call <tt> Selectors.wireEventListeners() </tt> in a method with <tt>@AfterCompose</tt>. We then can use <tt> @Listen</tt> to declare a method as an event listener.  '''We do not recommend this usage''' because it loses <b>ViewModel</b> an important advantage: loose coupling with View. '''Please evaluate the trade-offs before using it.'''
-->
+
 
  
 
''' Wire event listener in a ViewModel '''
 
''' Wire event listener in a ViewModel '''
Line 17: Line 13:
 
public class SearchAutowireVM{
 
public class SearchAutowireVM{
  
@Init
+
@AfterCompose
public void init(@ContextParam(ContextType.VIEW) Component view){
+
public void afterCompose(@ContextParam(ContextType.VIEW) Component view){
 
Selectors.wireEventListeners(view, this);
 
Selectors.wireEventListeners(view, this);
 
}
 
}
Line 32: Line 28:
 
* <tt> Selectors.wireEventListeners()</tt> 's first parameters is Root View Component which can be retrieved by <tt>@ContextParam</tt>.
 
* <tt> Selectors.wireEventListeners()</tt> 's first parameters is Root View Component which can be retrieved by <tt>@ContextParam</tt>.
  
= 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 <tt> Selectors.wireEventListeners() </tt> in a method with <tt>@AfterCompose</tt> as follows:
 
 
''' Wire event listener in a ViewModel '''
 
<source lang="java" high="3,4,5,8">
 
 
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
 
}
 
}
 
 
</source>
 
  
* <tt> Selectors.wireEventListeners()</tt> 's first parameters is Root View Component which can be retrieved by <tt>@ContextParam</tt>.
 
  
 
=Version History=
 
=Version History=

Revision as of 01:36, 30 July 2012


Wire Event Listeners



since 6.0.2


To wire event listeners in a ViewModel like ZK Developer's Reference/MVC/Controller/Wire Event Listeners, we have to call Selectors.wireEventListeners() in a method with @AfterCompose. 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: loose coupling with View. Please evaluate the trade-offs before using it.


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

Last Update : 2012/07/30


Version Date Content
6.0.0 May 2012 Supplement
6.0.2 July 2012 The @AfterCompose was introduced.




Last Update : 2012/07/30

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.