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