From Documentation

Stop.png This article is out of date, please refer to zk-mvvm-book/8.0/syntax/viewmodel/parameters/contextparam for more up to date information.



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


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.


Retrieve various context object in a ViewModel

    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')" />

A ViewModel used by above zul

public class ContextParamVM{
	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.

Last Update : 2022/07/08

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