View Javadoc
1   /*
2    * Created on May 13, 2005
3    *
4    * The default MVC controller for Project Mindoro.
5    */
6   package net.sf.mindoro.web;
7   
8   import java.util.ArrayList;
9   import java.util.Date;
10  import java.util.Hashtable;
11  import java.util.Iterator;
12  import java.util.List;
13  import java.util.Map;
14  
15  import javax.servlet.http.HttpServletRequest;
16  import javax.servlet.http.HttpServletResponse;
17  
18  import net.sf.mindoro.domain.ProjectsFacade;
19  import net.sf.mindoro.model.Project;
20  
21  import org.apache.commons.lang.builder.ToStringBuilder;
22  import org.apache.commons.logging.Log;
23  import org.apache.commons.logging.LogFactory;
24  import org.springframework.web.servlet.ModelAndView;
25  import org.springframework.web.servlet.mvc.AbstractController;
26  
27  /***
28   * The default MVC controller for Project Mindoro.
29   * 
30   * @author aisrael
31   */
32  public final class DefaultController extends AbstractController {
33  
34      private static final Log log = LogFactory.getLog(DefaultController.class);
35  
36      private final ProjectsFacade projectsFacade;
37  
38      /***
39       * @param projectsFacade ProjectsFacade
40       */
41      public DefaultController(final ProjectsFacade projectsFacade) {
42          this.projectsFacade = projectsFacade;
43      }
44  
45      /***
46       * (non-Javadoc)
47       * 
48       * @see org.springframework.web.servlet.mvc.AbstractController#handleRequestInternal(
49       *      javax.servlet.http.HttpServletRequest,
50       *      javax.servlet.http.HttpServletResponse)
51       */
52      protected ModelAndView handleRequestInternal(final HttpServletRequest request,
53              final HttpServletResponse response) throws Exception {
54          log.debug(this.getClass().getName() + ".handleRequestInternal() called...");
55          log.debug(new ToStringBuilder(request).append("cookies", request.getCookies()).append("method",
56                  request.getMethod()).toString());
57          final Map map = new Hashtable();
58          map.put("now", new Date());
59          final String modelName;
60          if ("/users.html".equals(request.getServletPath())) {
61              final String[] users = new String[] { "system", "aisrael" };
62              map.put("users", users);
63              modelName = "users";
64          } else if ("/projects.html".equals(request.getServletPath())) {
65              final List projects = projectsFacade.listProjects();
66              final ArrayList projectNames = new ArrayList(projects.size());
67              for (final Iterator i = projects.iterator(); i.hasNext();) {
68                  final Project project = (Project) i.next();
69                  projectNames.add(project.getName());
70              }
71              map.put("projects", projectNames);
72              modelName = "projects";
73          } else {
74              final Map properties = WebUtil.getRequestProperties(request);
75              map.put("properties", properties);
76              modelName = "welcome";
77          }
78          return new ModelAndView(modelName, map);
79      }
80  }