Requirement Constraints

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

Tuesday, 5 June 2012

ZK MVVM CRUD - Part 1

Posted on 23:26 by Unknown

Step 1 :

Set up the ZK + Hibernate setup as explained in this post.

Step 2 :

Initial Project structure
image

Step 3:

Create Mysql Table as follows
CREATE TABLE `practice` (
`Practice_ID` BIGINT(20) NOT NULL AUTO_INCREMENT,
`PRACTICE_NAME` VARCHAR(255) DEFAULT NULL,
`NPI_NUMBER` VARCHAR(255) DEFAULT NULL,
`EMAIL` VARCHAR(255) DEFAULT NULL,
`ADDRESS1` VARCHAR(255) DEFAULT NULL,
`ADDRESS2` VARCHAR(255) DEFAULT NULL,
`CITY` VARCHAR(255) DEFAULT NULL,
`COUNTRY_GEO` VARCHAR(255) DEFAULT NULL,
`POSTAL_CODE` VARCHAR(255) DEFAULT NULL,
`POSTAL_CODE_EXT` VARCHAR(255) DEFAULT NULL,
`STATE_PROVINCE_GEO` VARCHAR(255) DEFAULT NULL,
`FAX_NUMBER` VARCHAR(255) DEFAULT NULL,
`OFFICE_EXT` VARCHAR(255) DEFAULT NULL,
`OFFICE_PHONE` VARCHAR(255) DEFAULT NULL,
`PracticeLoginURL` VARCHAR(25) NOT NULL,
`IS_ACTIVE` BIT(1) DEFAULT NULL,
`CREATED_BY` BIGINT(20) DEFAULT NULL,
`CREATE_TX_TIMESTAMP` DATETIME NOT NULL,
`UPDATE_BY` BIGINT(20) DEFAULT NULL,
`UPDATED_TX_TIMESTAMP` DATETIME DEFAULT NULL,
PRIMARY KEY (`Practice_ID`),
UNIQUE KEY `UniqueLoginURL` (`PracticeLoginURL`)
) ENGINE=INNODB DEFAULT CHARSET=utf8


Insert some records as follows

INSERT INTO practice(practice_name,city,POSTAL_CODE,STATE_PROVINCE_GEO)
VALUES('eCosmos','City1','1111','St1')

INSERT INTO practice(practice_name,city,POSTAL_CODE,STATE_PROVINCE_GEO,PracticeLoginURL)
VALUES('bPractice2','City2','2222','St2','url1')

INSERT INTO practice(practice_name,city,POSTAL_CODE,STATE_PROVINCE_GEO,PracticeLoginURL)
VALUES('cPractice2','City2','2222','St2','url2')

INSERT INTO practice(practice_name,city,POSTAL_CODE,STATE_PROVINCE_GEO,PracticeLoginURL)
VALUES('dPractice2','City2','2222','St2','url3')



Step 4:



Prepare the View Part in MVVM . i.e create the ZUL File as follows

image

Here is the source code for practiceList.zul file

<?page title="Practice List" contentType="text/html;charset=UTF-8"?>
<zk>

<window title="Practice List" border="normal">

<div>
<button label="Add Practice" />
</div>
<separator />
<groupbox height="40px">
<label value="Practice Name" />
<space />
<space />
<textbox id="practicefilter" cols="50" />
<button id="gobutton" label="Go" />
<space spacing="20px" />
<checkbox id="activechk" label="Show only active"
checked="true" />
<space spacing="20px" />
</groupbox>
<separator />
<listbox id="PracticeList">
<listhead sizable="true">
<listheader label="Practice Name" sort="auto" />
<listheader label="City" sort="auto" />
<listheader label="State" sort="auto" />
<listheader label="Zip Code" sort="auto" />
</listhead>
</listbox>
</window>
</zk>


Remember, we did not put any binding concept at this point , we will do it later stage. Now just run this zul file and check whether you get the following output

image

Step 5:


Now let us create Java Bean Pojo for Practice as shown

image

Here is the Code


package domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "practice")
public class Practice {

private Integer practiceID;
private String practiceName;
private String city;
private String ZipCode;
private String state;
private Integer isActive;

@Id
@GeneratedValue
@Column(name = "PRACTICE_ID")
public Integer getPracticeID() {
return practiceID;
}

public void setPracticeID(Integer practiceID) {
this.practiceID = practiceID;
}

@Column(name = "PRACTICE_NAME")
public String getPracticeName() {
return practiceName;
}

public void setPracticeName(String practiceName) {
this.practiceName = practiceName;
}

@Column(name = "CITY")
public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

@Column(name = "POSTAL_CODE")
public String getZipCode() {
return ZipCode;
}

public void setZipCode(String zipCode) {
ZipCode = zipCode;
}

@Column(name = "STATE_PROVINCE_GEO")
public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

@Column(name = "IS_ACTIVE")
public Integer getIsActive()
{
if (isActive== null)
return 1;
else
return isActive;
}

public void setIsActive(Integer isActive) {
this.isActive = isActive;
}

}



Since we are done with Mapping class, we need tell this to hibernate. Let us do this in the hibernate.cfg.xml

Now go back to hibernate.cfg.xml, add the following line for the mapping class section


<!-- Mapping Classes -->
    <mapping class="domain.Practice" />


Step 6:


Now let us create our DAO Class. Please remember still we didn't touch the MVVM + Data binding. Just we are going reverse and keep every thing is ready before we connect our VIEW with MVVM Data binding

Let us create our practiceDAO Class as shown

image

package DomainDAO;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import domain.Practice;

import HibernateUtilities.HibernateUtil;

public class practiceDAO {

public List<Practice> getListingItems() {

List<Practice> practiceListing = null;

try {
Session session = HibernateUtil.beginTransaction();
Query q1 = session.createQuery("from Practice ");
practiceListing = q1.list();
HibernateUtil.CommitTransaction();
} catch (RuntimeException e) {
if (HibernateUtil.getSession().getTransaction() != null) {
HibernateUtil.rollbackTransaction();
}
e.printStackTrace();
}
return practiceListing;
}
}


Step 7:


Now let us move to MVVM. Now we will create ViewModel as shown here.

image

Here is the code PracticeListVM


package UIVMs;

import domain.Practice;
import java.util.List;
import DomainDAO.practiceDAO;
public class PracticeListVM {

private List<Practice> AllPracticeInDB = null;
public List<Practice> getprlist() {
AllPracticeInDB= new practiceDAO().getListingItems();
return AllPracticeInDB;
}
}




Step 8:


Now let us modify our view practiceList.zul to take care of MVVM + New data binding

<?page title="Practice List" contentType="text/html;charset=UTF-8"?>
<zk>

<window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('UIVMs.PracticeListVM')">
<div>
<button label="Add Practice" />
</div>
<separator />
<groupbox height="40px">
<label value="Practice Name" />
<space />
<space />
<textbox id="practicefilter" cols="50" />
<button id="gobutton" label="Go" />
<space spacing="20px" />
<checkbox id="activechk" label="Show only active"
checked="true" />
<space spacing="20px" />
</groupbox>
<separator />
<listbox id="PracticeList" model="@load(vm.prlist)">
<listhead sizable="true">
<listheader label="Practice Name" sort="auto" />
<listheader label="City" sort="auto" />
<listheader label="State" sort="auto" />
<listheader label="Zip Code" sort="auto" />
</listhead>
<template name="model" var="p1">
<listitem>
<listcell label="@load(p1.practiceName)" />
<listcell label="@load(p1.city)" />
<listcell label="@load(p1.state)" />
<listcell label="@load(p1.zipCode)" />
</listitem>
</template>

</listbox>
</window>
</zk>


Step 9:


Now run our practiceList.zul file , you should get the following output

image

Next Part 2


Email ThisBlogThis!Share to XShare to Facebook
Posted in ZK MVVM CRUD | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • ZK Example for inline Editing with Add New and Delete
    I am quite impressed on this demo from ZK . But adding new record and delete existing record is missing as part of typical CRUD. So i thoug...
  • EDI 5010 Documentation 837 Professional - Loop 2010BB Payer Name
    2010BB Payer Name          In this loop, all the information will be taken from Insurance master screen. Take a look of our sample screen...
  • EDI 5010 Documentation–837 - BHT - Beginning of Hierarchical Transaction
    BHT – Beginning of Hierarchical Transaction Loop Seg ID Segment Name Format Length Ref# Req Value   BHT Beginning of Hier...
  • Hibernate Validator Example 2
    In this example, we will see some more validation constraints such as @email, @past, @length, etc. And also we will also define custom error...
  • ZK Passing Parameter between two files using MVVM–Part 1
    Overview This is the first series of articles about Passing parameter between two zul files using MVVM Design pattern .This article will fo...
  • MVVM Command annotation and Notify change example
    Here is an example, how to pass parameter on a zul through MVVM Command binding annotation. ZK URL http://books.zkoss.org/wiki/ZK%20Develo...
  • History of Present Illness
    HPI - One of the main component of Clinical History. What is an HPI ? The history of present illness (HPI) is a chronological description...
  • Patient Demographics
    Patient browse (search) is the key element for any EMR / PMS Software. In my past 15 years experience, i involved more than 5 times in desig...
  • ViewModel Class Java Annotation @Init, @NotifyChange, @Command
    In following sections we'll list all syntaxes that can be used in implementing a ViewModel and applying ZK bind annotation. The ZK binde...
  • Good Website Design Links
    Form Design Label Placement in Forms International Address Fields in Web Forms 40 Eye-Catching Registration Pages blog-comment-form-...

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