Managed Bean (ProjectMB) Source Code 
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;
}
}