1
2
3
4
5
6
7
8 package com.buckosoft.PicMan.web;
9
10 import java.io.File;
11 import java.io.IOException;
12 import java.io.OutputStream;
13 import java.io.UnsupportedEncodingException;
14 import java.util.List;
15
16 import javax.servlet.http.HttpServletRequest;
17 import javax.servlet.http.HttpServletResponse;
18
19 import org.apache.commons.logging.Log;
20 import org.apache.commons.logging.LogFactory;
21 import org.dom4j.Document;
22 import org.dom4j.io.OutputFormat;
23 import org.dom4j.io.XMLWriter;
24 import org.springframework.web.servlet.ModelAndView;
25 import org.springframework.web.servlet.mvc.Controller;
26
27 import com.buckosoft.BSAccount.web.BSAccountPageController;
28 import com.buckosoft.BSAccount.web.BSAccountUserWebSession;
29 import com.buckosoft.PicMan.business.PicManFacade;
30 import com.buckosoft.PicMan.dom.FilesInDirCountDom;
31 import com.buckosoft.PicMan.dom.ImportPicsDom;
32 import com.buckosoft.PicMan.dom.MosaicManDom;
33 import com.buckosoft.PicMan.domain.User;
34
35
36
37
38
39
40 public class ImportPicsAjaxController extends BSAccountPageController implements Controller {
41 private static boolean DEBUG = true;
42 private final static boolean DEBUGLOTS = true;
43 protected final Log log = LogFactory.getLog(getClass());
44
45 private PicManFacade pmf;
46
47
48
49 public void setPicMan(PicManFacade pmf) { this.pmf = pmf; }
50
51
52
53
54 public void setDEBUG(boolean debugFlag) {
55 DEBUG = debugFlag;
56 }
57
58
59
60
61
62
63 public ModelAndView handleRequest(HttpServletRequest request,
64 HttpServletResponse response) {
65 String v;
66 String s;
67 if (DEBUGLOTS)
68 log.info("XML Import Pics Request");
69
70 response.setContentType("text/xml");
71 response.addHeader("Cache-Control", "max-age=0");
72 response.addHeader("Cache-Control", "no-cache");
73 response.addHeader("expires", "0");
74 response.addHeader("Expires", "Tue, 01 Jan 1980 1:00:00 GMT");
75 response.addHeader("Pragma", "no-cache");
76
77 User user = null;
78 BSAccountUserWebSession userWebSession = this.bsAccountMan.getUserWebSession(request);
79 if (userWebSession != null)
80 user = (User)userWebSession.getUser();
81 Document dom = null;
82 String getPics = request.getParameter("getPics");
83 if (getPics != null) {
84 if (DEBUG)
85 log.info("Determine Pics");
86 List<File> list = pmf.getPicImporter().getPicNamesToImport();
87 dom = ImportPicsDom.createDocument(list);
88 }
89 v = request.getParameter("getFilesInDirCount");
90 if (v != null) {
91 v = request.getParameter("rid");
92 int rid = Integer.parseInt(v);
93 v = request.getParameter("dir");
94 dom = FilesInDirCountDom.createDocument(pmf, rid, v);
95 }
96 v = request.getParameter("ajaxImportOnePic");
97 if (v != null) {
98 v = request.getParameter("rid");
99 int rid = Integer.parseInt(v);
100 String odir = request.getParameter("odir");
101 String iname = request.getParameter("iname");
102 String oname = request.getParameter("oname");
103 if (DEBUG)
104 log.info("importOnePic rid=" + rid + " odir=" + odir + " iname=" + iname + " oname=" + oname);
105 dom = pmf.getPicImporter().importPic(rid, odir, iname, oname);
106 }
107 v = request.getParameter("analyzeOnePic");
108 if (v != null) {
109 v = request.getParameter("fname");
110 s = request.getParameter("customDate");
111 dom = pmf.getPicImporter().analyzePic(v, s);
112 }
113 try {
114 if (dom == null)
115 dom = MosaicManDom.createDocument(pmf, user);
116 OutputStream stream = response.getOutputStream();
117 OutputFormat outformat = OutputFormat.createPrettyPrint();
118 outformat.setEncoding("ISO-8859-1");
119 XMLWriter writer = new XMLWriter(stream, outformat);
120 writer.write(dom);
121 writer.flush();
122 } catch (UnsupportedEncodingException e) {
123 log.info(e);
124 pmf.addError(e);
125 } catch (IOException e) {
126 log.info(e);
127 pmf.addError(e);
128 }
129 return null;
130 }
131
132 }