X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fweb%2Fmvc%2Fcontrollers%2FRenderingResultController.java;h=c02ba99bbb73b6ea4286c18d62babbb7fad0277c;hb=16e2ffb035a4c41576acc74efb37610c7aec1887;hp=175243aeb08f7fb8264516dd885d2c61fd6a85c1;hpb=41a706c58c65015800bbc66a4f86f16195bb886f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/RenderingResultController.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/RenderingResultController.java index 175243aeb..c02ba99bb 100644 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/RenderingResultController.java +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/RenderingResultController.java @@ -16,17 +16,15 @@ package org.argeo.slc.web.mvc.controllers; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import javax.servlet.http.HttpServletRequest; + import org.argeo.slc.SlcException; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.dao.test.tree.TreeTestResultDao; -import org.argeo.slc.web.mvc.result.ResultExcelView; -import org.argeo.slc.web.mvc.result.ResultPdfView; import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.ModelAndView; /** * Sends back the results, rendered or as collection. @@ -34,42 +32,43 @@ import org.springframework.web.servlet.ModelAndView; @Controller public class RenderingResultController { - private final static Log log = LogFactory.getLog(RenderingResultController.class); + // private static final Log log = + // LogFactory.getLog(RenderingResultController.class); - public final static String KEY_ANSWER = "__answer"; public final static String MODELKEY_RESULT = "result"; // IoC - private TreeTestResultDao testResultDao; - private ResultExcelView resultExcelView; - private ResultPdfView resultPdfView; + private TreeTestResultDao treeTestResultDao; - @RequestMapping("/resultView.pdf") - public void getPdfResultView(@RequestParam(value = "uuid") String uuid, - ModelAndView modelAndView) { - TreeTestResult result = testResultDao.getTestResult(uuid); - if (result == null) - throw new SlcException("No result found for uuid " + uuid); - modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result); - modelAndView.setView(resultPdfView); - } + @RequestMapping("/resultView.*") + public String getPdfResultView(@RequestParam("uuid") String uuid, + ModelMap model, HttpServletRequest request) { - @RequestMapping("/resultView.xls") - public void getXlsResultView(@RequestParam(value = "uuid") String uuid, - ModelAndView modelAndView) { - TreeTestResult result = testResultDao.getTestResult(uuid); + TreeTestResult result = treeTestResultDao.getTestResult(uuid); if (result == null) throw new SlcException("No result found for uuid " + uuid); - modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result); - modelAndView.setView(resultExcelView); - } + model.addAttribute(MODELKEY_RESULT, result); - public void setResultExcelView(ResultExcelView resultExcelView) { - this.resultExcelView = resultExcelView; + String docType = request.getRequestURI().substring( + request.getRequestURI().lastIndexOf(".") + 1); + + if ("pdf".equals(docType)) + return "resultPdfView"; + if ("xls".equals(docType)) + return "resultExcelView"; + if ("xslt".equals(docType)) + return "resultXsltView"; + if ("xml".equals(docType)) + return "resultXmlView"; + + throw new SlcException("No renderer found for files of extension " + + docType); } - public void setResultPdfView(ResultPdfView resultPdfView) { - this.resultPdfView = resultPdfView; + // IoC + + public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao) { + this.treeTestResultDao = treeTestResultDao; } }