1
2
3
4
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 }