Requirement Constraints

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

Thursday, 14 June 2012

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

Posted on 11:36 by Unknown
Summary
We will see how to fill the second combo box based on first combo box selection using MVC Data binding.

ZK Version : ZK 6

Project Name :ComboBoxTwoMVC

Project Structure
image

Demo.zul

   1: <?page title="new page title" contentType="text/html;charset=UTF-8"?>
   2: <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> 
   3: <zk>
   4:     <window id="myWin" title="new page title" border="normal" apply="mydomainUI.DemoCtrl">
   5:         Department:
   6:         <combobox  id="depart" width="200px" 
   7:             model="@{myWin$DemoCtrl.allDepartments}" selectedItem="@{myWin$DemoCtrl.selected}" >
   8:             <comboitem self="@{each='d'}" label="@{d.departName}"
   9:                 value="@{d.departCode}"    />
  10:         </combobox>
  11:         Users:
  12:         <combobox  id="users" width="200px" 
  13:             model="@{myWin$DemoCtrl.allUsers}">
  14:             <comboitem self="@{each='item'}" label="@{item.userName}"
  15:                 value="@{item.userCode}"    />
  16:         </combobox>
  17:     </window>
  18: </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: }

DemoCtrl.java


   1: package mydomainUI;
   2:  
   3: import java.util.ArrayList;
   4: import org.zkoss.zul.Combobox;
   5: import org.zkoss.zul.ListModelList;
   6:  
   7: import java.util.List;
   8:  
   9: import org.zkoss.zk.ui.Component;
  10: import org.zkoss.zk.ui.event.Event;
  11: import org.zkoss.zk.ui.util.GenericForwardComposer;
  12: import org.zkoss.zul.Messagebox;
  13: import domainDAO.DepartmentDAO;
  14: import domainDAO.usersDAO;
  15: import mydomain.Department;
  16: import mydomain.users;
  17:  
  18: @SuppressWarnings({ "rawtypes", "serial" })
  19: public class DemoCtrl extends GenericForwardComposer{
  20:  
  21:     private List<users> allUsers = new ArrayList<users>();
  22:     private Department selectedDepartment ;
  23:     private List<Department> allDepartments = new ArrayList<Department>();
  24:     private Combobox users;
  25:  
  26:     public List<users> getAllUsers() {
  27:         return allUsers;
  28:     }
  29:  
  30:     public void setAllUsers(List<users> allUsers) {
  31:         this.allUsers = allUsers;
  32:     }
  33:  
  34:     public List<Department> getAllDepartments() {
  35:         return allDepartments;
  36:     }
  37:  
  38:     
  39:     public void setAllDepartments(List<Department> allDepartments) {
  40:         this.allDepartments = allDepartments;
  41:     }
  42:  
  43:  
  44:     public Department getSelected() {
  45:         return selectedDepartment;
  46:     }
  47:  
  48:     public void setSelected(Department selectedDepartment) {
  49:         this.selectedDepartment = selectedDepartment;
  50:     }
  51:  
  52:     @SuppressWarnings("unchecked")
  53:     public void doAfterCompose(Component comp) throws Exception {
  54:         super.doAfterCompose(comp);
  55:         // Load the department first
  56:         allDepartments = new DepartmentDAO().getAllDepartments();
  57:     }
  58:     
  59:     public void onSelect$depart(Event evt)
  60:     {
  61:         allUsers = new usersDAO().getUsers(selectedDepartment.getDepartCode());
  62:         users.setModel(new ListModelList(allUsers));
  63:     }
  64:  
  65:  
  66: }








Now run the demo.zul file . Here is the output.

image
Email ThisBlogThis!Share to XShare to Facebook
Posted in ZK MVC Combox Box | 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