1 package com.panogenesis.webapp.action;
2
3 import java.util.Locale;
4
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7
8 import org.apache.commons.lang.StringUtils;
9 import com.panogenesis.model.IssueStatus;
10 import com.panogenesis.service.IssueStatusManager;
11 import org.springframework.validation.BindException;
12 import org.springframework.web.servlet.ModelAndView;
13 import org.springframework.web.servlet.view.RedirectView;
14
15 public class IssueStatusFormController extends BaseFormController {
16 private IssueStatusManager issueStatusManager = null;
17
18 public void setIssueStatusManager(IssueStatusManager issueStatusManager) {
19 this.issueStatusManager = issueStatusManager;
20 }
21
22 protected Object formBackingObject(HttpServletRequest request)
23 throws Exception {
24 String id = request.getParameter("id");
25 IssueStatus issueStatus = null;
26
27 if (!StringUtils.isEmpty(id)) {
28 issueStatus = issueStatusManager.getIssueStatus(id);
29 } else {
30 issueStatus = new IssueStatus();
31 }
32
33 return issueStatus;
34 }
35
36 public ModelAndView onSubmit(HttpServletRequest request,
37 HttpServletResponse response, Object command,
38 BindException errors)
39 throws Exception {
40 if (log.isDebugEnabled()) {
41 log.debug("entering 'onSubmit' method...");
42 }
43
44 IssueStatus issueStatus = (IssueStatus) command;
45 boolean isNew = (issueStatus.getId() == null);
46 String success = getSuccessView();
47 Locale locale = request.getLocale();
48
49 if (request.getParameter("delete") != null) {
50 issueStatusManager.removeIssueStatus(issueStatus.getId().toString());
51
52 saveMessage(request, getText("issueStatus.deleted", locale));
53 } else {
54
55 issueStatusManager.saveIssueStatus(issueStatus);
56
57 String key = (isNew) ? "issueStatus.added" : "issueStatus.updated";
58 saveMessage(request, getText(key, locale));
59
60 if (!isNew) {
61 success = "editIssueStatus.html?id=" + issueStatus.getId();
62 }
63 }
64
65 return new ModelAndView(new RedirectView(success));
66 }
67 }