1
2
3
4
5
6
7
8 package com.buckosoft.PicMan.web;
9
10 import java.io.IOException;
11 import java.io.OutputStream;
12 import java.io.UnsupportedEncodingException;
13
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16
17 import org.apache.commons.logging.Log;
18 import org.apache.commons.logging.LogFactory;
19 import org.dom4j.Document;
20 import org.dom4j.io.OutputFormat;
21 import org.dom4j.io.XMLWriter;
22 import org.springframework.web.servlet.ModelAndView;
23 import org.springframework.web.servlet.mvc.Controller;
24
25 import com.buckosoft.BSAccount.web.BSAccountPageController;
26 import com.buckosoft.BSAccount.web.BSAccountUserWebSession;
27 import com.buckosoft.PicMan.business.PicManFacade;
28 import com.buckosoft.PicMan.dom.MosaicManDom;
29 import com.buckosoft.PicMan.domain.User;
30
31
32
33
34
35
36 public class MosaicDisplayAjaxController extends BSAccountPageController implements Controller {
37 private final static boolean DEBUG = false;
38 private final static boolean DEBUGLOTS = false;
39 protected final Log logger = LogFactory.getLog(getClass());
40
41 private PicManFacade pmf;
42
43
44
45
46 public void setPicMan(PicManFacade pmf) { this.pmf = pmf; }
47
48
49
50
51
52
53
54 public ModelAndView handleRequest(HttpServletRequest request,
55 HttpServletResponse response) {
56 if (DEBUGLOTS)
57 logger.info("XML MosaicDisplay Request");
58
59 response.setContentType("text/xml");
60 response.addHeader("Cache-Control", "max-age=0");
61 response.addHeader("Cache-Control", "no-cache");
62 response.addHeader("expires", "0");
63 response.addHeader("Expires", "Tue, 01 Jan 1980 1:00:00 GMT");
64 response.addHeader("Pragma", "no-cache");
65
66 User user = null;
67 BSAccountUserWebSession userWebSession = this.bsAccountMan.getUserWebSession(request);
68 if (userWebSession != null)
69 user = (User)userWebSession.getUser();
70 String outputMosaic = request.getParameter("outputMosaic");
71 if (outputMosaic != null) {
72 if (DEBUG)
73 logger.info("OutputMosaic");
74 pmf.getMosaicMan().outputMosaicFile();
75 }
76 try {
77 Document dom = MosaicManDom.createDocument(pmf, user);
78 OutputStream stream = response.getOutputStream();
79 OutputFormat outformat = OutputFormat.createPrettyPrint();
80 outformat.setEncoding("ISO-8859-1");
81 XMLWriter writer = new XMLWriter(stream, outformat);
82 writer.write(dom);
83 writer.flush();
84 } catch (UnsupportedEncodingException e) {
85 logger.warn(e);
86 } catch (IOException e) {
87 logger.warn(e);
88 }
89 return null;
90 }
91 }
92