@ContextParam"
From Documentation
Tmillsclare (talk | contribs) m (→Description) |
Dennischen (talk | contribs) (→Syntax) |
||
Line 13: | Line 13: | ||
BIND_CONTEXT, //BindContext instance | BIND_CONTEXT, //BindContext instance | ||
BINDER, //Binder 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 | EXECUTION, //Execution instance | ||
COMPONENT, //Component instance of current binding | COMPONENT, //Component instance of current binding | ||
Line 20: | Line 22: | ||
DESKTOP, //Desktop instance of current component | DESKTOP, //Desktop instance of current component | ||
SESSION, //Session instance | SESSION, //Session instance | ||
− | APPLICATION | + | APPLICATION //Application instance |
} | } | ||
</source> | </source> | ||
− | |||
= Description = | = Description = |
Revision as of 10:49, 11 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(ContextType.APPLICATION_SCOPE) Map<?, ?> applicationScope,
@ContextParam(ContextType.SESSION_SCOPE) Map<?, ?> sessionScope,
@ContextParam(ContextType.DESKTOP_SCOPE) Map<?, ?> desktopScope,
@ContextParam(ContextType.PAGE_SCOPE) Map<?, ?> pageScope,
@ContextParam(ContextType.SPACE_SCOPE) Map<?, ?> spaceScope,
@ContextParam(ContextType.REQUEST_SCOPE) Map<?, ?> requestScope,
@ContextParam(ContextType.COMPONENT_SCOPE) Map<?, ?> componentScope,
@ContextParam(ContextType.EXECUTION) Execution execution,
@ContextParam(ContextType.COMPONENT) Component component,
@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. |