⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 employeemanagebean.java

📁 HR系统模拟企业对内部职员的管理
💻 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 + -