@ContextParam"

From Documentation
(no ContextType.[*]SCOPE)
(→‎Example: fix code typo)
Line 40: Line 40:
 
<source lang="java">
 
<source lang="java">
 
     @Init
 
     @Init
     public void init(@ContextParam(
+
     public void init(
 
             @ContextParam(ContextType.EXECUTION) Execution execution,
 
             @ContextParam(ContextType.EXECUTION) Execution execution,
 
             @ContextParam(ContextType.COMPONENT) Component component,
 
             @ContextParam(ContextType.COMPONENT) Component component,

Revision as of 08:33, 8 June 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.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

Last Update : 2012/06/08


Version Date Content
6.0.0 February 2012 The MVVM was introduced.




Last Update : 2012/06/08

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