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.Membership;
import org.appfuse.service.ResumeManager;
import org.appfuse.webapp.form.MembershipForm;
public final class MembershipAction extends BaseAction {
private Log log = LogFactory.getLog(MembershipAction.class);
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'edit' method");
}
MembershipForm membershipForm = (MembershipForm) form;
if ((membershipForm.getId() == null) || "".equals(membershipForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "membership.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
Membership mem = (Membership) mgr.getMembership(membershipForm.getId());
membershipForm = (MembershipForm) convert(mem);
membershipForm = (MembershipForm) convertDates(mem, membershipForm);
request.setAttribute(Constants.MEMBERSHIP_KEY, membershipForm);
request.setAttribute(Constants.MEMBERSHIPS,
mgr.getMemberships(membershipForm.getResumeId()));
request.setAttribute("menuUrl", "memberships.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");
}
MembershipForm membershipForm = (MembershipForm) form;
if ((membershipForm.getId() == null) || "".equals(membershipForm.getId())) {
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("errors.required", "membership.id"));
saveErrors(request, errors);
return mapping.getInputForward();
}
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.removeObject(convert(membershipForm));
ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("membership.deleted"));
saveMessages(request, messages);
return setupList(mapping, request, membershipForm.getResumeId());
}
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'save' method");
}
MembershipForm membershipForm = (MembershipForm) form;
boolean isNew = ("".equals(membershipForm.getId()));
ResumeManager mgr = (ResumeManager) getBean("resumeManager");
mgr.saveObject(convert(membershipForm));
ActionMessages messages = new ActionMessages();
String msg = (isNew) ? "membership.added" : "membership.updated";
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(msg, membershipForm.getOrganizationName()));
saveMessages(request, messages);
removeFormBean(mapping, request);
return setupList(mapping, request, membershipForm.getResumeId());
}
public ActionForward search(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("Entering 'search' method");
}
MembershipForm membership = (MembershipForm) form;
String resumeId = membership.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 memberships = mgr.getMemberships(resumeId);
request.setAttribute(Constants.MEMBERSHIPS, memberships);
MembershipForm membershipForm = new MembershipForm();
membershipForm.setResumeId(resumeId);
request.setAttribute(Constants.MEMBERSHIP_KEY, membershipForm);
request.setAttribute(Constants.RESUME_KEY, mgr.getResume(resumeId));
request.setAttribute("menuUrl", "memberships.do");
return mapping.findForward("edit");
}
}