Requirement Constraints

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 2 June 2012

MVVM Examples–Example 1

Posted on 01:18 by Unknown
Example 1:
In this example, how we can convert MVC GenericForwardComposer into new MVVM + Data binding


ZK Docs
 http://books.zkoss.org/wiki/Small%20Talks/2011/November/Hello%20ZK%20MVVM

Step 1:

Create new ZK Project
image

Step 2:

Create Example1.zul file and its composer as shown
image
Example1.zul
<window apply="ex.myexample.HelloComposer">
    <label id="lbl" />
    <button id="btn" label="Show" />
</window>

HelloComposer.Java
package ex.myexample;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;

@SuppressWarnings("rawtypes")
public class HelloComposer extends GenericForwardComposer {
    /**
     *
     */
    private static final long serialVersionUID = -6397566602389346161L;
    private Label lbl;

    public void onClick$btn(Event event) {
        lbl.setValue("Hello World!");
    }
}

Step 3:

Run the Example1.zul file
image

Step 4:

Let us re write the same example using MVVM
Create Example2.zul and HelloViewVM.Java as shown
image
Example2.zul
<window apply="org.zkoss.bind.BindComposer" viewModel="@id('myvm') @init('ex.myexample.HelloViewVM')">
    <label value="@load(myvm.message)"/>
    <button label="Show" onClick="@command('showHello')"/>
</window>
HelloViewVM.Java
package ex.myexample;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;

public class HelloViewVM {
    private String message;

    public String getMessage() {
        return message;
    }

    @Command    
    @NotifyChange("message")
    public void showHello() {
        message = "Hello World!";
    }
}

Reference a ViewModel in a ZUL
We can bind ZK UI component to a ViewModel by setting its viewModel attribute, and that component becomes the Root View Component for the ViewModel. All child components of this Root View Component can acces the same ViewModel and its properties. To bind a ViewModel, we have to apply a composer called org.zkoss.bind.BindComposer, it will create a binder for the ViewModel and instantiate the ViewModel's class.
Then we set viewModel attribute with ViewModel's id in @id ZK Bind annotation and a ViewModel's full-qualified class name in @init . We use the id to reference ViewModel's properties, e.g. vm.name.
Email ThisBlogThis!Share to XShare to Facebook
Posted in ZK MVVM | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

Categories

  • Billing Process
  • C Workbook
  • C++ Workbook
  • Eclipse Tips
  • EDI 5010
  • EMR Appointment Features
  • EMR Labs Stuff
  • EMR PMS Links
  • EMR Use cases
  • EMR Vital Sign
  • Good Website Design
  • Hibernate Criteria Queries
  • Hibernate Introduction
  • Hibernate Introduction Setup
  • Hibernate Mapping
  • Hibernate POC
  • Hibernate Validator
  • Hibernate–Java Environment setup
  • HPI
  • Java
  • Maven
  • MU Certification
  • NPI
  • PQRS
  • Practice Management System
  • Spring Security
  • Tech Links
  • Today Tech Stuff
  • zk
  • ZK Hibernate
  • ZK 5 Databinding
  • ZK Application
  • ZK Calling Another ZUL
  • ZK CheckBox
  • ZK CreateComponents
  • ZK CSS
  • ZK extended Components
  • ZK Foreach
  • ZK Forum Posts
  • ZK Framework
  • ZK Hibernate Setup
  • ZK ID Space
  • ZK Include
  • ZK Installation
  • ZK iReport
  • ZK Layout
  • ZK Listitem Pagination
  • ZK Message Box
  • ZK MVC
  • ZK MVC Combox Box
  • ZK MVC CRUD Examples
  • ZK MVC Listbox
  • ZK MVVM
  • ZK MVVM Combo
  • ZK MVVM CRUD
  • ZK MVVM ListBox
  • ZK Spring
  • ZK TextBox

Blog Archive

  • ►  2013 (105)
    • ►  December (3)
    • ►  September (7)
    • ►  August (13)
    • ►  July (1)
    • ►  June (11)
    • ►  May (3)
    • ►  April (14)
    • ►  March (19)
    • ►  February (21)
    • ►  January (13)
  • ▼  2012 (177)
    • ►  December (1)
    • ►  November (13)
    • ►  October (19)
    • ►  September (24)
    • ►  August (26)
    • ►  July (6)
    • ▼  June (37)
      • Combo Box– Show images for Items based on some con...
      • ZK Border Layout–Another example
      • MVVM–List Item–Hibernate–MySQL–Part 3
      • C Workbook
      • MVVM Modal window–Pass Parameter and Return values
      • C++ Workbook
      • ZK Border Layout–Menu on the left and content on t...
      • MVVM–List Item–Hibernate–MySQL–Part 2
      • Charge Entry Screen
      • Practice management System– PMS–Billing
      • Phone Box–Using j Query and Extending ZK Textbox
      • MVC Two combo Box – Fill second combo based on fir...
      • MVVM Two combo Box – Fill second combo based on fi...
      • MVVM–List Item–Hibernate–MySQL–Part 1
      • MVC Combo Box Data binding
      • MVVM Combo Box Data binding
      • List Item Double click event on selected Item usin...
      • MVVM Example for Form Validation
      • List Item on Select, show more details by using se...
      • List item Change background color for some particu...
      • List Item Double click event on selected Item
      • ViewModel Class Java Annotation @Init, @NotifyChan...
      • ZK MVVM CRUD - Part 3
      • ZK MVVM CRUD - Part 2
      • Select only few columns in Hibernate create query API
      • ZK MVVM CRUD - Part 1
      • Java List and ArrayList
      • Annotate non persistent properties with the @Trans...
      • MVVM Example 3–List item
      • Tab box with tool bar CSS
      • Change the location of the label in radio element
      • Hibernate 4.1.1 will create the column if we missp...
      • MVC–CRUD Application with ZK 5 Data Binding
      • Hibernate–Java Environment setup
      • How to refer CSS File in ZK Style tag
      • MVVM Examples–Example 2
      • MVVM Examples–Example 1
    • ►  May (30)
    • ►  April (16)
    • ►  March (1)
    • ►  January (4)
  • ►  2011 (5)
    • ►  December (1)
    • ►  November (1)
    • ►  July (1)
    • ►  June (1)
    • ►  April (1)
  • ►  2010 (1)
    • ►  September (1)
Powered by Blogger.

About Me

Unknown
View my complete profile