Syntax
package com.sap.nwce.ra.edm.managedbean; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.ejb.EJB; import javax.faces.context.FacesContext; import com.sap.nwce.ra.sedm.ejb.entity.Employee; import com.sap.nwce.ra.sedm.ejb.entity.Project; import com.sap.nwce.ra.sedm.ejb.service.ProjectFacadeLocal; public class ProjectMB { @EJB private ProjectFacadeLocal projectFacade; private String projectsPtrn = ""; private String employeesPtrn = ""; private HashMap<Integer, Employee> tempCurrProjEmplMap = new HashMap<Integer, Employee>(); private Project currentProject = new Project(); private Employee currentEmployee = new Employee(); public Project getCurrentProject() { return currentProject; } public String getProjectsPtrn() { return projectsPtrn; } public void setProjectsPtrn(String projectsPtrn) { this.projectsPtrn = projectsPtrn; } public String getEmployeesPtrn() { return employeesPtrn; } public void setEmployeesPtrn(String employeesPtrn) { this.employeesPtrn = employeesPtrn; } public List<Project> getProjects() { return projectFacade.findProjects(projectsPtrn); } public List<Employee> getEmployees() { return projectFacade.findEmployees(employeesPtrn); } public boolean getRenderEmployees() { return !currentProject.getEmployees().isEmpty(); } public String editProject() { String param = "currProjId"; String prjId = ogtainJSFParam(param); currentProject = projectFacade.getProjectById(Integer.parseInt(prjId)); populateTempEmpl(); return "editProject"; } public String editEmloyee() { String param = "emplId"; String emplId = ogtainJSFParam(param); currentEmployee = projectFacade.getEmployeeById(Integer.parseInt(emplId)); return "editEmployee"; } public String addTempEmployee() { String param = "emplID"; String emplId = ogtainJSFParam(param); Employee selectedEmpl = projectFacade.getEmployeeById(Integer.parseInt(emplId)); tempCurrProjEmplMap.put(selectedEmpl.getEmployeeId(), selectedEmpl); return "refreshSetEmployees"; } public String removeTempEmployee() { String param = "emplID"; String emplId = ogtainJSFParam(param); if (emplId != null){ Employee selectedEmpl = projectFacade.getEmployeeById(Integer.parseInt(emplId)); tempCurrProjEmplMap.remove(selectedEmpl.getEmployeeId()); } return "refreshSetEmployees"; } private String ogtainJSFParam(String param) { String emplId = null; FacesContext context = FacesContext.getCurrentInstance(); if (context.getExternalContext().getRequestParameterValuesMap().containsKey(param)) { emplId = context.getExternalContext().getRequestParameterValuesMap().get(param)[0]; } return emplId; } public boolean getDisableAddTempEmployee() { String param = "emplID"; String emplId = ogtainJSFParam(param); Employee selectedEmpl = projectFacade.getEmployeeById(Integer.parseInt(emplId)); return tempCurrProjEmplMap.containsKey(selectedEmpl.getEmployeeId()); } public boolean getDisableRemoveTempEmployee() { return !getDisableAddTempEmployee(); } public String projListNavigation() { return "listProjects"; } public String emplListNavigation() { return "listEmployees"; } public String navigationCancelTempEmpls() { tempCurrProjEmplMap.clear(); return "backToProjectEdit"; } public String navigationNewProject() { currentProject = new Project(); return "newProject"; } public String navigationNewEmployee() { currentEmployee = new Employee(); return "newEmployee"; } public String navigationSetEmployees() { return "setEmployees"; } public String navigationBackToProjectEdit() { populateTempEmpl(); return "backToProjectEdit"; } private void populateTempEmpl() { List<Employee> empls = currentProject.getEmployees(); for (Employee employee : empls) { tempCurrProjEmplMap.put(employee.getEmployeeId(), employee); } } public String createProject() { currentProject.setEmployees(getTempCurrProjEmployees()); projectFacade.saveProject(currentProject); return "listProjects"; } public String createEmloyee() { projectFacade.saveEmployee(currentEmployee); return "listEmployees"; } public List<Employee> getTempCurrProjEmployees() { return new ArrayList<Employee>(tempCurrProjEmplMap.values()); } public Employee getCurrentEmployee() { return currentEmployee; } public void setCurrentEmployee(Employee currentEmployee) { this.currentEmployee = currentEmployee; } }