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.service.ResumeManager;
import org.appfuse.webapp.form.ResumeSkillForm;
public final class ResumeSkillAction extends BaseAction {
private Log log = LogFactory.getLog(ResumeSkillAction.class);
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'edit' method");
}
ResumeSkillForm skillForm = (ResumeSkillForm) form;
if ((skillForm.getId() == null) || "".equals(skillForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "resumeSkillForm.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
request.setAttribute(Constants.RESUME_SKILL_KEY,
mgr.getResumeSkill(skillForm.getId()));
List skills = mgr.getResumeSkills(skillForm.getResumeId());
request.setAttribute(Constants.RESUME_SKILLS, skills);
request.setAttribute("menuUrl", "resumeSkills.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");
}
ResumeSkillForm skillForm = (ResumeSkillForm) form;
if ((skillForm.getId() == null) || "".equals(skillForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "resumeSkillForm.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.removeObject(convert(skillForm));
ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("skill.deleted"));
saveMessages(request, messages);
return setupList(mapping, request, skillForm.getResumeId());
}
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'save' method");
}
ResumeSkillForm skillForm = (ResumeSkillForm) form;
boolean isNew = ("".equals(skillForm.getId()));
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.saveObject(convert(skillForm));
ActionMessages messages = new ActionMessages();
String msg = (isNew) ? "skill.added" : "skill.updated";
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(msg, skillForm.getName()));
saveMessages(request, messages);
removeFormBean(mapping, request);
return setupList(mapping, request, skillForm.getResumeId());
}
public ActionForward search(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'search' method");
}
ResumeSkillForm skill = (ResumeSkillForm) form;
String resumeId = skill.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 skills = mgr.getResumeSkills(resumeId);
request.setAttribute(Constants.RESUME_SKILLS, skills);
ResumeSkillForm skillForm = new ResumeSkillForm();
skillForm.setResumeId(resumeId);
request.setAttribute(Constants.RESUME_SKILL_KEY, skillForm);
request.setAttribute(Constants.RESUME_KEY, mgr.getResume(resumeId));
request.setAttribute("menuUrl", "resumeSkills.do");
return mapping.findForward("edit");
}
}