Requirement Constraints

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

Thursday, 14 June 2012

MVVM Two combo Box – Fill second combo based on first combo selection

Posted on 07:09 by Unknown
Summary
We will see how to fill the second combo box based on first combo box selection using MVVM Data binding.

ZK Version : ZK 6

Project Name :ComboBoxTwoMVVM

 

Project Structure
image
Demo.zul
   1: <?page title="new page title" contentType="text/html;charset=UTF-8"?>
   2: <zk>
   3:     <window id="myWin" title="new page title" border="normal"
   4:         apply="org.zkoss.bind.BindComposer"
   5:         viewModel="@id('myvm') @init('mydomainUI.DemoVM')">
   6:  
   7:         Department:
   8:         <combobox model="@load(myvm.allDepartments)"
   9:             selectedItem="@bind(myvm.selectedDepartment)"
  10:             onSelect="@command('onSelectDepartment')">
  11:             <template name="model" var="p1">
  12:                 <comboitem label="@load(p1.departName)"
  13:                     value="@load(p1.departCode)" />
  14:             </template>
  15:         </combobox>
  16:  
  17:         Users:
  18:         <combobox model="@load(myvm.allUsers)">
  19:             <template name="model" var="p1">
  20:                 <comboitem label="@load(p1.userName)"
  21:                     value="@load(p1.userCode)" />
  22:             </template>
  23:         </combobox>
  24:         
  25:  
  26:     </window>
  27: </zk>

Department.java


   1: package mydomain;
   2:  
   3: public class Department {
   4:  
   5:     private String departCode;
   6:     private String departName;
   7:     
   8:     public String getDepartCode() {
   9:         return departCode;
  10:     }
  11:     public void setDepartCode(String departCode) {
  12:         this.departCode = departCode;
  13:     }
  14:     public String getDepartName() {
  15:         return departName;
  16:     }
  17:     public void setDepartName(String departName) {
  18:         this.departName = departName;
  19:     }
  20:     
  21: }



users.java

   1: package mydomain;
   2:  
   3: public class users {
   4:  
   5:     private String userCode;
   6:     private String userName;
   7:     private String userPassword;
   8:     private String active;
   9:     private String firstName;
  10:     private String lastName;
  11:     private String homePhone;
  12:     private String mobilePhone;
  13:  
  14:     public String getFirstName() {
  15:         return firstName;
  16:     }
  17:  
  18:     public void setFirstName(String firstName) {
  19:         this.firstName = firstName;
  20:     }
  21:  
  22:     public String getLastName() {
  23:         return lastName;
  24:     }
  25:  
  26:     public void setLastName(String lastName) {
  27:         this.lastName = lastName;
  28:     }
  29:  
  30:     public String getHomePhone() {
  31:         return homePhone;
  32:     }
  33:  
  34:     public void setHomePhone(String homePhone) {
  35:         this.homePhone = homePhone;
  36:     }
  37:  
  38:     public String getMobilePhone() {
  39:         return mobilePhone;
  40:     }
  41:  
  42:     public void setMobilePhone(String mobilePhone) {
  43:         this.mobilePhone = mobilePhone;
  44:     }
  45:  
  46:     public String getUserCode() {
  47:         return userCode;
  48:     }
  49:  
  50:     public void setUserCode(String userCode) {
  51:         this.userCode = userCode;
  52:     }
  53:  
  54:     public String getUserName() {
  55:         return userName;
  56:     }
  57:  
  58:     public void setUserName(String userName) {
  59:         this.userName = userName;
  60:     }
  61:  
  62:     public String getUserPassword() {
  63:         return userPassword;
  64:     }
  65:  
  66:     public void setUserPassword(String userPassword) {
  67:         this.userPassword = userPassword;
  68:     }
  69:  
  70:     public String getActive() {
  71:         return active;
  72:     }
  73:  
  74:     public void setActive(String active) {
  75:         this.active = active;
  76:     }
  77:  
  78: }


DepartmentDAO.java


   1: package domainDAO;
   2: import java.util.ArrayList;
   3: import java.util.List;
   4: import mydomain.Department;
   5:  
   6: public class DepartmentDAO {
   7:     
   8:     public List<Department> getAllDepartments() {
   9:  
  10:         List<Department> allDepartments = new ArrayList<Department>();
  11:  
  12:         Department d1 = new Department();
  13:         d1.setDepartName("Finance");
  14:         d1.setDepartCode("D101");
  15:         allDepartments.add(d1);
  16:  
  17:         d1 = new Department();
  18:         d1.setDepartName("Sales");
  19:         d1.setDepartCode("D102");
  20:         allDepartments.add(d1);
  21:         
  22:         return allDepartments;
  23:     }
  24:  
  25: }
usersDAO.java


   1: package domainDAO;
   2:  
   3: import java.util.ArrayList;
   4: import java.util.List;
   5: import mydomain.users;
   6:  
   7: public class usersDAO {
   8:  
   9:     public List<users> getUsers(String departMentCode) {
  10:  
  11:         if (departMentCode == "D101")
  12:             return getFinanceUsers();
  13:  
  14:         if (departMentCode == "D102")
  15:             return getSalesUsers();
  16:  
  17:         return null;
  18:     }
  19:  
  20:     public List<users> getFinanceUsers() {
  21:  
  22:         List<users> allUsers = new ArrayList<users>();
  23:  
  24:         users u1 = new users();
  25:         u1.setUserName("John");
  26:         u1.setUserCode("User101");
  27:         u1.setUserPassword("xxxxx");
  28:         u1.setFirstName("JohnFirstName");
  29:         u1.setLastName("JohnLastName");
  30:         u1.setHomePhone("1111111111");
  31:         u1.setMobilePhone("222222");
  32:         u1.setActive("Y");
  33:         allUsers.add(u1);
  34:  
  35:         u1 = new users();
  36:         u1.setUserName("Robert");
  37:         u1.setUserCode("User102");
  38:         u1.setUserPassword("xxxxx");
  39:         u1.setActive("Y");
  40:         u1.setFirstName("RobertFirstName");
  41:         u1.setLastName("RobertLastName");
  42:         u1.setHomePhone("53534343");
  43:         u1.setMobilePhone("4534343");
  44:         allUsers.add(u1);
  45:  
  46:         return allUsers;
  47:     }
  48:  
  49:     public List<users> getSalesUsers() {
  50:  
  51:         List<users> allUsers = new ArrayList<users>();
  52:  
  53:         users u1 = new users();
  54:         u1.setUserName("Sean");
  55:         u1.setUserCode("User105");
  56:         u1.setUserPassword("xxxxx");
  57:         u1.setFirstName("SeanFirstName");
  58:         u1.setLastName("SeanLastName");
  59:         u1.setHomePhone("1111111111");
  60:         u1.setMobilePhone("222222");
  61:         u1.setActive("Y");
  62:         allUsers.add(u1);
  63:  
  64:         u1 = new users();
  65:         u1.setUserName("Marry");
  66:         u1.setUserCode("User112");
  67:         u1.setUserPassword("xxxxx");
  68:         u1.setActive("Y");
  69:         u1.setFirstName("MarryFirstName");
  70:         u1.setLastName("MarryLastName");
  71:         u1.setHomePhone("53534343");
  72:         u1.setMobilePhone("4534343");
  73:         allUsers.add(u1);
  74:  
  75:         return allUsers;
  76:     }
  77:  
  78: }

DemoVM.java


   1: package mydomainUI;
   2:  
   3: import java.util.ArrayList;
   4: import java.util.List;
   5: import org.zkoss.bind.annotation.Command;
   6: import org.zkoss.bind.annotation.Init;
   7: import org.zkoss.bind.annotation.NotifyChange;
   8: import org.zkoss.zul.Messagebox;
   9:  
  10: import domainDAO.DepartmentDAO;
  11: import domainDAO.usersDAO;
  12:  
  13: import mydomain.Department;
  14: import mydomain.users;
  15:  
  16: public class DemoVM {
  17:  
  18:     private List<users> allUsers = new ArrayList<users>();
  19:     private Department selectedDepartment = new Department();
  20:     private List<Department> allDepartments = new ArrayList<Department>();
  21:  
  22:     public List<users> getAllUsers() {
  23:         return allUsers;
  24:     }
  25:  
  26:     public void setAllUsers(List<users> allUsers) {
  27:         this.allUsers = allUsers;
  28:     }
  29:  
  30:     public List<Department> getAllDepartments() {
  31:         return allDepartments;
  32:     }
  33:  
  34:     public void setAllDepartments(List<Department> allDepartments) {
  35:         this.allDepartments = allDepartments;
  36:     }
  37:  
  38:     public Department getSelectedDepartment() {
  39:         return selectedDepartment;
  40:     }
  41:  
  42:     public void setSelectedDepartment(Department selectedDepartment) {
  43:         this.selectedDepartment = selectedDepartment;
  44:     }
  45:  
  46:     @Init
  47:     public void initSetup() {
  48:         // Load the department first
  49:         allDepartments = new DepartmentDAO().getAllDepartments();
  50:  
  51:     }
  52:     
  53:     @Command
  54:     @NotifyChange("allUsers")
  55:     public void onSelectDepartment()
  56:     {
  57:         allUsers = new usersDAO().getUsers(selectedDepartment.getDepartCode());
  58:     }
  59: }

Now run demo.zul file:Output
image

Download the source as war file

Email ThisBlogThis!Share to XShare to Facebook
Posted in ZK MVVM Combo | 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 270–5010 Documentation - ISA – Interchange Control Header
    ISA – Interchange Control Header ISA – Interchange Control Header   The ISA is a fixed record length segment and all positions within ea...
  • Understanding EDI Structure
    EDI Structure Primary Levels are 1. Interchange Envelops 2. Functional Group 3. Transaction set Data Element A data element is equival...
  • ZK ListBox
    Let us first design a simple  static list box with crud Buttons as last column. Here is the code <?page title="Practice List" c...
  • EDI Instructions
    HIPAA Compliant Codes All the Health care EDI Transaction set should use only the following HIPAA Compliant Codes Physicians Current Pro...
  • List Item Connected with Hibernate and Search Parameter
      Summary This example contains one list box with First name and Last Name as search Field. If the user do not give any values for first n...
  • Physician Quality Reporting System - PQRS
    Let me just summarized the information which i understood clearly about PQRS . The following information are taken from different websites a...
  • EDI 270 - 5010 Health Care Eligibility/Benefit Inquiry
    If you are new to Medical Billing, then please read this article first . If you are new to EDI, then  read the following articles 1. What i...
  • Types of Reimbursement
    Fee-For-Service Fee-for-service is a method of payment where the provider is paid a fee for each procedure performed and billed.Most payer ...
  • 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...

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