Tuesday, 24 April 2012

ZK MVC Using .GenericComposer utility class


This is the second post in a series of ZK MVC




This post is continuation of previous post

ZK Documentation is here
http://books.zkoss.org/wiki/Small_Talks/2008/August/ZK_MVC_Made_Easy

Now we will use Genericcomposer class to reduce some code from my previous post



Here is my zul file

<?page title="Example7" contentType="text/html;charset=UTF-8"?>
<zk>
<label
value=" http://books.zkoss.org/wiki/Small_Talks/2008/August/ZK_MVC_Made_Easy.
org.zkoss.zk.ui.util.GenericComposer utility class"
style="font-size : 18px;font-family: verdana,arial,sans-serif;" />
<separator />
<window title="MVC Pattern using org.zkoss.zk.ui.util.GenericComposer utility class" border="normal" width="300px"  apply="com.me.Example7">
<grid>
<columns>
<column label="" />
<column label="" />
</columns>
<rows>
<row>
First Name :
<textbox id="firstName" />
</row>
<row>
Last Name :
<textbox id="lastName" />
</row>
<row>
Address :
<textbox id="address" />
</row>
<row>
<button id="Clear" label="Clear" forward="onClick=onClear_btn"/>
</row>

</rows>
</grid>
</window>
</zk>


Here is my Composer



package com.me;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericComposer;
import org.zkoss.zul.Textbox;

@SuppressWarnings("rawtypes")
public class Example7 extends GenericComposer {

/**
*
*/
private static final long serialVersionUID = 1L;
private Textbox firstName;
private Textbox lastName;
private Textbox address;

public void doAfterCompose(Component comp) throws Exception {
/**
* Dont forget to call super doaftercomposer. By calling this, it will add the event listner for us
*/
super.doAfterCompose(comp);
// locate ZK components
firstName = (Textbox) comp.getFellow("firstName");
lastName = (Textbox) comp.getFellow("lastName");
address = (Textbox) comp.getFellow("address");

// all addEventListener and new EventListener() codes are removed
}

public void onClear_btn(Event event) {
firstName.setValue("");
lastName.setValue("");
address.setValue("");
}
}

Here is the demo with source code download.......

No comments:

Post a Comment