📄 employeemanagebean.java
字号:
/*$Id: EmployeeManageBean.java,v 1.1 2008/07/15 03:38:23 liqi Exp $ *-------------------------------------- * Apusic (Kingdee Middleware) *--------------------------------------- * Copyright By Apusic ,All right Reserved * author date comment * chenhongxin 2008-4-14 Created*/package org.operamasks.example.ejb.hr.litebean.module;import java.util.ArrayList;import java.util.List;import java.util.UUID;import javax.faces.model.SelectItem;import org.operamasks.example.ejb.hr.entity.Department;import org.operamasks.example.ejb.hr.entity.Employee;import org.operamasks.example.ejb.hr.entity.Rank;import org.operamasks.example.ejb.hr.service.ServiceBean;import org.operamasks.faces.annotation.Accessible;import org.operamasks.faces.annotation.Action;import org.operamasks.faces.annotation.Bind;import org.operamasks.faces.annotation.DataModel;import org.operamasks.faces.annotation.ManagedBean;import org.operamasks.faces.annotation.ManagedBeanScope;import org.operamasks.faces.annotation.ManagedProperty;import org.operamasks.faces.annotation.Required;import org.operamasks.faces.annotation.SelectItems;import org.operamasks.faces.component.grid.impl.UIDataGrid;import org.operamasks.faces.component.layout.impl.UIWindow;/** * 职员管理页面的托管Bean * @author chenhongxin */@ManagedBean(name="module.employeeManageBean", scope=ManagedBeanScope.SESSION)public class EmployeeManageBean extends BeforeRenderBaseBean { /** * 操作记录标识 */ private Operation curOperation = Operation.NOTHING; /** * 注入服务提供Bean,该Bean提供各种的业务操作对象 */ @ManagedProperty("#{serviceBean}") private ServiceBean service; /** * 绑定明细编辑框里的职员名称输入域,并指定Required验证失败的提示信息 */ @Bind(id="employeeName", attribute="value") @Required(message = "#{this.getMessages().get('required')}") private String employeeName; /** * 绑定页面的Window组件 */ @Bind(id="detailDialog", attribute="binding") private UIWindow detailDialog; /** * 绑定页面的DataGrid组件 */ @Bind(id="employeeDataGrid", attribute="binding") private UIDataGrid employeeDataGrid; /** * 职级Combo下拉的子项 */ @Accessible private SelectItem[] rankItems = new SelectItem[0]; /** * 绑定职级Combo,指定下拉子项为rankItems和Required验证失败的错误提示 */ @Bind(id="rankCombo") @SelectItems(source="#{this.rankItems}") @Required(message = "#{this.getMessages().get('required')}") private String rankCombo; /** * 部门Combo下拉的子项 */ @Accessible private SelectItem[] departmentItems = new SelectItem[0]; /** * 绑定部门Combo,指定下拉子项为departmentItems和Required验证失败的错误提示 */ @Bind(id="departmentCombo") @SelectItems(source="#{this.departmentItems}") @Required(message = "#{this.getMessages().get('required')}") private String departmentCombo; /** * DataGrid绑定数据的获取 * @return 绑定数据的List集合 */ @DataModel(id="employeeDataGrid") private List<Employee> getEmployeeDataGridValues() { return service.getEmployeeService().listEmployee(); } /** * 初始化RankCombo和DepartmentCombo */ private void initCombo() { List<Rank> ranks = service.getRankService().listRank(); List<SelectItem> tmpList = new ArrayList<SelectItem>(); for(Rank rank : ranks) { tmpList.add(new SelectItem(rank.getId(), rank.getName())); } rankItems = tmpList.toArray(new SelectItem[0]); List<Department> departments = service.getDepartmentService().listDepartment(); tmpList = new ArrayList<SelectItem>(); for(Department department : departments) { tmpList.add(new SelectItem(department.getId(), department.getName())); } departmentItems = tmpList.toArray(new SelectItem[0]); } /** * 绑定添加按钮的点击击事件 */ @Action(id="add") public void add() { initCombo(); employeeName = ""; curOperation = Operation.ADD; detailDialog.show(); } /** * 绑定修改按钮的点击事件 */ @Action(id="modify") public void modify() { Employee selectedEmployee = (Employee)employeeDataGrid.getSelectedRowData(); if(selectedEmployee != null) { initCombo(); rankCombo = selectedEmployee.getRank().getId(); departmentCombo = selectedEmployee.getDepartment().getId(); employeeName = selectedEmployee.getName(); curOperation = Operation.MODIFY; detailDialog.show(); } } /** * 绑定删除按钮的点击事件 */ @Action(id="del") public void del() { Employee selectedEmployee = (Employee)employeeDataGrid.getSelectedRowData(); if(selectedEmployee != null) { service.getEmployeeService().removeEmployee(selectedEmployee); employeeDataGrid.reload(); } curOperation = Operation.NOTHING; } /** * 绑定取消按钮的点击事件,使用immediate=true跳过数据验证 */ @Action(id="cancel", immediate=true) public void cancel() { employeeName = ""; rankCombo = ""; departmentCombo = ""; rankItems = new SelectItem[0]; departmentItems = new SelectItem[0]; curOperation = Operation.NOTHING; detailDialog.close(); } /** * 绑定确定按钮的点击事件 */ @Action(id="ok") public void ok(){ Rank rank = service.getRankService().findById(rankCombo); Department department = service.getDepartmentService().findById(departmentCombo); if(rank != null && department != null) { if(curOperation == Operation.ADD) { Employee newOne = new Employee(); newOne.setId(UUID.randomUUID().toString()); newOne.setName(employeeName); newOne.setRank(rank); newOne.setDepartment(department); service.getEmployeeService().createEmployee(newOne); //由于是双向一对多关联,所以必须同时更新一的那方 rank.getEmployees().add(newOne); service.getRankService().modifyRank(rank); department.getEmployees().add(newOne); service.getDepartmentService().modifyDepartment(department); employeeDataGrid.reload(); } else if(curOperation == Operation.MODIFY) { Employee selectedEmployee = (Employee)employeeDataGrid.getSelectedRowData(); if(selectedEmployee != null) { selectedEmployee.setName(employeeName); selectedEmployee.setRank(rank); selectedEmployee.setDepartment(department); service.getEmployeeService().modifyEmployee(selectedEmployee); employeeDataGrid.reload(); } } } cancel(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -