1 package com.panogenesis.webapp.action;
2
3 import java.io.PrintWriter;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.apache.commons.logging.Log;
11 import org.apache.commons.logging.LogFactory;
12 import com.panogenesis.webapp.listener.StartupListener;
13 import org.springframework.web.servlet.ModelAndView;
14 import org.springframework.web.servlet.mvc.Controller;
15
16
17 /***
18 * This class is used to reload the drop-downs initialized in the
19 * StartupListener.
20 *
21 * <p>
22 * <a href="ReloadController.java.html"><i>View Source</i></a>
23 * </p>
24 *
25 * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
26 */
27 public class ReloadController implements Controller {
28 private transient final Log log = LogFactory.getLog(UserController.class);
29
30 public ModelAndView handleRequest(HttpServletRequest request,
31 HttpServletResponse response)
32 throws Exception {
33 if (log.isDebugEnabled()) {
34 log.debug("Entering 'execute' method");
35 }
36
37 StartupListener.setupContext(request.getSession().getServletContext());
38
39 String referer = request.getHeader("Referer");
40
41 if (referer != null) {
42 log.info("reload complete, reloading user back to: " + referer);
43 List messages = new ArrayList();
44 messages.add("Reloading options completed successfully.");
45 request.getSession().setAttribute("messages", messages);
46 response.sendRedirect(response.encodeRedirectURL(referer));
47 return null;
48 } else {
49 response.setContentType("text/html");
50
51 PrintWriter out = response.getWriter();
52
53 out.println("<html>");
54 out.println("<head>");
55 out.println("<title>Context Reloaded</title>");
56 out.println("</head>");
57 out.println("<body bgcolor=\"white\">");
58 out.println("<script type=\"text/javascript\">");
59 out.println("alert('Context Reload Succeeded! Click OK to continue.');");
60 out.println("history.back();");
61 out.println("</script>");
62 out.println("</body>");
63 out.println("</html>");
64 }
65
66 return null;
67 }
68
69 }