Summary
We will see how to fill the second combo box based on first combo box selection using MVC Data binding.
Project Structure 
 
Now run the demo.zul file . Here is the output.

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 

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>
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: }
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: }
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: }
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: }
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: }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.
 
 
 
 
 
 
0 comments:
Post a Comment