package org.appfuse.webapp.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.appfuse.Constants;
import org.appfuse.model.Education;
import org.appfuse.service.ResumeManager;
import org.appfuse.webapp.form.EducationForm;
public final class EducationAction extends BaseAction {
private Log log = LogFactory.getLog(EducationAction.class);
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'edit' method");
}
EducationForm educationForm = (EducationForm) form;
if ((educationForm.getId() == null) ||
"".equals(educationForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "education.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
Education ed = (Education) mgr.getEducation(educationForm.getId());
educationForm = (EducationForm) convert(ed);
request.setAttribute(Constants.EDUCATION_KEY,
convertDates(ed, educationForm));
List schools = mgr.getSchools(educationForm.getResumeId());
request.setAttribute(Constants.SCHOOLS, schools);
request.setAttribute("menuUrl", "schools.do");
return mapping.findForward("edit");
}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'delete' method");
}
EducationForm educationForm = (EducationForm) form;
if ((educationForm.getId() == null) ||
"".equals(educationForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "education.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.removeObject(convert(educationForm));
ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("education.deleted"));
saveMessages(request, messages);
return setupList(mapping, request, educationForm.getResumeId());
}
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'save' method");
}
EducationForm educationForm = (EducationForm) form;
boolean isNew = ("".equals(educationForm.getId()));
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.saveObject(convert(educationForm));
ActionMessages messages = new ActionMessages();
String msg = (isNew) ? "education.added" : "education.updated";
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(msg, educationForm.getName()));
saveMessages(request, messages);
removeFormBean(mapping, request);
return setupList(mapping, request, educationForm.getResumeId());
}
public ActionForward search(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'search' method");
}
EducationForm education = (EducationForm) form;
String resumeId = education.getResumeId();
return setupList(mapping, request, resumeId);
}
public ActionForward setupList(ActionMapping mapping,
HttpServletRequest request, String resumeId)
throws Exception {
if (resumeId == null) {
resumeId = getResumeId(request);
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
List schools = mgr.getSchools(resumeId);
request.setAttribute(Constants.SCHOOLS, schools);
EducationForm educationForm = new EducationForm();
educationForm.setResumeId(resumeId);
request.setAttribute(Constants.EDUCATION_KEY, educationForm);
request.setAttribute(Constants.RESUME_KEY, mgr.getResume(resumeId));
request.setAttribute("menuUrl", "schools.do");
return mapping.findForward("edit");
}
}