Controller"

From Documentation
m
Line 13: Line 13:
 
=Custom Controller=
 
=Custom Controller=
  
A custom controller is also know as a composer (in ZK).
+
A custom controller is also know as a composer (in ZK).  To implement a composer, you could extend from <javadoc>org.zkoss.zk.ui.util.GenericForwardComposer</javadoc>, or implement <javadoc type="interface">org.zkoss.zk.ui.util.Composer</javadoc> from scratch. Then, specify it in the element it wants to handle in a ZUML document.
  
To implement a custom controller, you could extend from <javadoc>org.zkoss.zk.ui.util.GenericForwardComposer</javadoc>, or implement <javadoc type="interface">org.zkoss.zk.ui.util.Composer</javadoc> from scratch. Then, specify it in the element it wants to handle in a ZUML document.
+
To implement the ''logic'' to glue UI and data, a composer usually do:
 +
 
 +
#Post-process components after ZK Loader renders a ZUML document. It can be done by overriding <javadoc method="doAfterCompose(org.zkoss.zk.ui.Component)">org.zkoss.zk.ui.util.Composer</javadoc>.
 +
#Handle events and manipulate components if necessary.
 +
 
 +
In additions, a composer can be used to involve the lifecycle of ZK Loader for doing:
 +
 
 +
#Exception handling
 +
#Instantiation monitoring and filtering
 +
 
 +
A composer be configured as page-level or system-level, such that it will be called when ZK Loader has processed a ZUML document.
 +
 
 +
=GenericForwardComposer=
 +
 
 +
=Composer with More Control=
 +
 
 +
=Page-level Composer=
 +
 
 +
=System-level Composer=
  
 
=Version History=
 
=Version History=

Revision as of 08:16, 11 November 2010

The controller is a Java program that is used to glue UI (view) and Data (model) together.

For a simple UI, there is no need of controller. For example, the data of a Listbox could be abstracted by implementing ListModel.

For typical database access, the glue logic (i.e., control) can be handled by a generic feature called Data Binding. In other words, the read and write operations can be handled automatically by a generic Data Binding, and you don't need to write the glue logic at all.

In this section we will discuss how to implement a custom controller (aka., a composer).



Custom Controller

A custom controller is also know as a composer (in ZK). To implement a composer, you could extend from GenericForwardComposer, or implement Composer from scratch. Then, specify it in the element it wants to handle in a ZUML document.

To implement the logic to glue UI and data, a composer usually do:

  1. Post-process components after ZK Loader renders a ZUML document. It can be done by overriding Composer.doAfterCompose(Component).
  2. Handle events and manipulate components if necessary.

In additions, a composer can be used to involve the lifecycle of ZK Loader for doing:

  1. Exception handling
  2. Instantiation monitoring and filtering

A composer be configured as page-level or system-level, such that it will be called when ZK Loader has processed a ZUML document.

GenericForwardComposer

Composer with More Control

Page-level Composer

System-level Composer

Version History

Last Update : 2010/11/11

Version Date Content
     



Last Update : 2010/11/11

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