@ContextParam"

From Documentation
Line 28: Line 28:
  
 
= Description =
 
= Description =
'''Target:''' A method's parameter (initial method and command method)
+
'''Target:''' A method's parameter (for initial and command methods)
  
 
'''Purpose:''' Tell binder to pass the context object with specified type.
 
'''Purpose:''' Tell binder to pass the context object with specified type.
  
The annotation is applied to initial method's (or command method's) parameter. Methods can get various ZK context object like: Page or Desktop by applying annotation on parameters.
+
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 =
 
= Example =

Revision as of 04:53, 10 February 2012


Syntax

@ContextParam(ContextType.PAGE)

Enumeration of all context

enum ContextType {
    BIND_CONTEXT,	//BindContext instance
    BINDER,			//Binder instance
    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

Last Update : 2012/02/10


Version Date Content
6.0.0 February 2012 The MVVM was introduced.




Last Update : 2012/02/10

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