View Javadoc

1   package com.panogenesis.webapp.action;
2   
3   import java.util.Date;
4   import java.util.Locale;
5   
6   import javax.servlet.http.HttpServletRequest;
7   import javax.servlet.http.HttpServletResponse;
8   
9   import org.apache.commons.lang.StringUtils;
10  
11  import com.panogenesis.model.Component;
12  import com.panogenesis.model.ProjectVersion;
13  import com.panogenesis.service.ProjectVersionManager;
14  import org.springframework.validation.BindException;
15  import org.springframework.web.servlet.ModelAndView;
16  import org.springframework.web.servlet.view.RedirectView;
17  
18  public class ProjectVersionFormController extends BaseFormController {
19      private ProjectVersionManager projectVersionManager = null;
20  
21      public void setProjectVersionManager(ProjectVersionManager projectVersionManager) {
22          this.projectVersionManager = projectVersionManager;
23      }
24      /***
25       * Default behavior for FormControllers - redirect to the successView
26       * when the cancel button has been pressed.
27       */
28      public ModelAndView processFormSubmission(HttpServletRequest request,
29                                                HttpServletResponse response,
30                                                Object command,
31                                                BindException errors)
32      throws Exception {
33          if (request.getParameter("cancel") != null) {
34              return new ModelAndView(new RedirectView("editProject.html?id=" + request.getSession().getAttribute("current_project_id")));
35          }
36          return super.processFormSubmission(request, response, command, errors);
37      }
38  
39      protected Object formBackingObject(HttpServletRequest request)
40      throws Exception {
41      	
42          String id = request.getParameter("id");
43  /*        
44          if (!StringUtils.isEmpty(id)){
45          	request.getSession().setAttribute("current_version_id", id);
46          }
47  */
48          log.debug("VersionFormController  - entering 'formBackingObject' method - version id:" + id);
49          ProjectVersion projectVersion = null;
50          
51  //        String hold_id = (String)request.getSession().getAttribute("current_version_id");
52          if (!StringUtils.isEmpty(id)) {
53          	 log.debug("VersionFormController  - entering 'formBackingObject' method - hold id:" + id);
54          	 projectVersion = projectVersionManager.getProjectVersion(id);
55          } else {
56          	 log.debug("VersionFormController  NEW COMPONENT- entering 'formBackingObject' method - hold id:" + id);
57          	 projectVersion = new ProjectVersion();
58          }
59      	
60          return projectVersion;
61      }
62  
63      public ModelAndView onSubmit(HttpServletRequest request,
64                                   HttpServletResponse response, Object command,
65                                   BindException errors)
66      throws Exception {
67          if (log.isDebugEnabled()) {
68              log.debug("entering ProjectVersionFormController 'onSubmit' method...");
69          }
70  
71  
72          String project_id = (String)request.getSession().getAttribute("current_project_id");
73         
74          ProjectVersion projectVersion = (ProjectVersion) command;
75          String current_version_id = (String)request.getParameter("id");
76          boolean isNew = ( projectVersion.getId()== null);
77          String success = getSuccessView();
78          Locale locale = request.getLocale();
79  
80          if (request.getParameter("delete") != null) {
81              projectVersionManager.removeProjectVersion(projectVersion.getId().toString());
82  
83              saveMessage(request, getText("projectVersion.deleted", locale));
84          } else {
85          	
86              log.debug("current project id is " + project_id);
87              log.debug("component project id is " + projectVersion.getProjectId());
88              log.debug("isNew ? :  " + isNew);
89          	if (isNew){
90          		log.debug("setting new component information (proj id): " + project_id);
91          		projectVersion.setCreateDate(new Date());
92          		projectVersion.setProjectId(new Integer(project_id));
93          	}
94          	projectVersion.setLastModified(new Date());
95          	
96              projectVersionManager.saveProjectVersion(projectVersion);
97  
98              String key = (isNew) ? "projectVersion.added" : "projectVersion.updated";
99              saveMessage(request, getText(key, locale));
100 
101             if (!isNew) {
102                 success = "editProjectVersion.html?id=" + projectVersion.getId();
103             }
104         }
105 
106         return new ModelAndView(new RedirectView("editProject.html?id=" + project_id));
107     }
108 }