@ContextParam"
From Documentation
m (→Example) |
(no ContextType.[*]SCOPE) |
||
Line 40: | Line 40: | ||
<source lang="java"> | <source lang="java"> | ||
@Init | @Init | ||
− | public void init(@ContextParam( | + | public void init(@ContextParam( |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
@ContextParam(ContextType.EXECUTION) Execution execution, | @ContextParam(ContextType.EXECUTION) Execution execution, | ||
@ContextParam(ContextType.COMPONENT) Component component, | @ContextParam(ContextType.COMPONENT) Component component, | ||
+ | @ContextParam(ContextType.VIEW) Component view, | ||
@ContextParam(ContextType.SPACE_OWNER) IdSpace spaceOwner, | @ContextParam(ContextType.SPACE_OWNER) IdSpace spaceOwner, | ||
@ContextParam(ContextType.PAGE) Page page, | @ContextParam(ContextType.PAGE) Page page, |
Revision as of 01:57, 25 April 2012
Syntax
@ContextParam(ContextType.PAGE)
Enumeration of all context
enum ContextType {
BIND_CONTEXT, //BindContext instance
BINDER, //Binder instance
TRIGGER_EVENT, //Event that trigger the command (since 6.0.1)
COMMAND_NAME, //Command name (since 6.0.1)
EXECUTION, //Execution instance
COMPONENT, //Component instance of current binding
SPACE_OWNER, //IdSpance instance of spaceOwner of current component
VIEW, //the view component of binder
PAGE, //Page instance of current component
DESKTOP, //Desktop instance of current component
SESSION, //Session instance
APPLICATION //Application instance
}
Description
Target: A method's parameter (for initial and command methods)
Purpose: Tell binder to pass the context object with specified type.
The annotation is applied to initial (or command) method's parameter. Methods can get various ZK context object like: Page or Desktop by applying annotation on parameters.
Example
Retrieve various context object in a ViewModel
@Init
public void init(@ContextParam(
@ContextParam(ContextType.EXECUTION) Execution execution,
@ContextParam(ContextType.COMPONENT) Component component,
@ContextParam(ContextType.VIEW) Component view,
@ContextParam(ContextType.SPACE_OWNER) IdSpace spaceOwner,
@ContextParam(ContextType.PAGE) Page page,
@ContextParam(ContextType.DESKTOP) Desktop desktop,
@ContextParam(ContextType.SESSION) Session session,
@ContextParam(ContextType.APPLICATION) WebApp application,
@ContextParam(ContextType.BIND_CONTEXT) BindContext bindContext,
@ContextParam(ContextType.BINDER) Binder binder) {..}
The following is another example.
<vbox id="vbox" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('eg.ContextParamVM')">
<button id="cmd" label="cmd" onClick="@command('cmd')" />
</vbox>
A ViewModel used by above zul
public class ContextParamVM{
@Command
public void cmd(@ContextParam(ContextType.COMPONENT) Component component,
@ContextParam(ContextType.VIEW) Component view) {
}
}
- In above example, the variable component is a Button object and view is a Vbox object.
Version History
Version | Date | Content |
---|---|---|
6.0.0 | February 2012 | The MVVM was introduced. |