]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/RenderingResultController.java
Move NameVersion
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / controllers / RenderingResultController.java
index 0191e6ed7cf131e742b974704cd799a1940ab591..c02ba99bbb73b6ea4286c18d62babbb7fad0277c 100644 (file)
 \r
 package org.argeo.slc.web.mvc.controllers;\r
 \r
+import javax.servlet.http.HttpServletRequest;\r
+\r
 import org.argeo.slc.SlcException;\r
 import org.argeo.slc.core.test.tree.TreeTestResult;\r
 import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
-import org.argeo.slc.web.mvc.result.ResultExcelView;\r
-import org.argeo.slc.web.mvc.result.ResultPdfView;\r
 import org.springframework.stereotype.Controller;\r
+import org.springframework.ui.ModelMap;\r
 import org.springframework.web.bind.annotation.RequestMapping;\r
 import org.springframework.web.bind.annotation.RequestParam;\r
-import org.springframework.web.servlet.ModelAndView;\r
 \r
 /**\r
  * Sends back the results, rendered or as collection.\r
@@ -32,41 +32,43 @@ import org.springframework.web.servlet.ModelAndView;
 \r
 @Controller\r
 public class RenderingResultController {\r
+       // private static final Log log =\r
+       // LogFactory.getLog(RenderingResultController.class);\r
 \r
-       public final static String KEY_ANSWER = "__answer";\r
        public final static String MODELKEY_RESULT = "result";\r
 \r
        // IoC\r
-       private TreeTestResultDao testResultDao;\r
-       private ResultExcelView resultExcelView;\r
-       private ResultPdfView resultPdfView;\r
+       private TreeTestResultDao treeTestResultDao;\r
 \r
-       @RequestMapping("/resultView.pdf")\r
-       public void getPdfResultView(@RequestParam(value = "uuid") String uuid,\r
-                       ModelAndView modelAndView) {\r
-               TreeTestResult result = testResultDao.getTestResult(uuid);\r
-               if (result == null)\r
-                       throw new SlcException("No result found for uuid " + uuid);\r
-               modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result);\r
-               modelAndView.setView(resultPdfView);\r
-       }\r
+       @RequestMapping("/resultView.*")\r
+       public String getPdfResultView(@RequestParam("uuid") String uuid,\r
+                       ModelMap model, HttpServletRequest request) {\r
 \r
-       @RequestMapping("/resultView.xls")\r
-       public void getXlsResultView(@RequestParam(value = "uuid") String uuid,\r
-                       ModelAndView modelAndView) {\r
-               TreeTestResult result = testResultDao.getTestResult(uuid);\r
+               TreeTestResult result = treeTestResultDao.getTestResult(uuid);\r
                if (result == null)\r
                        throw new SlcException("No result found for uuid " + uuid);\r
-               modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result);\r
-               modelAndView.setView(resultExcelView);\r
-       }\r
+               model.addAttribute(MODELKEY_RESULT, result);\r
 \r
-       public void setResultExcelView(ResultExcelView resultExcelView) {\r
-               this.resultExcelView = resultExcelView;\r
+               String docType = request.getRequestURI().substring(\r
+                               request.getRequestURI().lastIndexOf(".") + 1);\r
+\r
+               if ("pdf".equals(docType))\r
+                       return "resultPdfView";\r
+               if ("xls".equals(docType))\r
+                       return "resultExcelView";\r
+               if ("xslt".equals(docType))\r
+                       return "resultXsltView";\r
+               if ("xml".equals(docType))\r
+                       return "resultXmlView";\r
+\r
+               throw new SlcException("No renderer found for files of extension "\r
+                               + docType);\r
        }\r
 \r
-       public void setResultPdfView(ResultPdfView resultPdfView) {\r
-               this.resultPdfView = resultPdfView;\r
+       // IoC\r
+\r
+       public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao) {\r
+               this.treeTestResultDao = treeTestResultDao;\r
        }\r
 \r
 }\r