]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ResultPdfView.java
d758d47d4ed7eb41f19e6b8dd066d1e7f73b77bb
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / result / ResultPdfView.java
1 package org.argeo.slc.web.mvc.result;
2
3 import java.awt.Color;
4 import java.util.Map;
5
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8
9 import org.argeo.slc.core.structure.tree.TreeSPath;
10 import org.argeo.slc.core.test.SlcTestUtils;
11 import org.argeo.slc.core.test.tree.PartSubList;
12 import org.argeo.slc.core.test.tree.TreeTestResult;
13 import org.argeo.slc.test.TestResultPart;
14 import org.argeo.slc.test.TestStatus;
15 import org.springframework.web.servlet.view.document.AbstractPdfView;
16
17 import com.lowagie.text.Cell;
18 import com.lowagie.text.Document;
19 import com.lowagie.text.Paragraph;
20 import com.lowagie.text.Table;
21 import com.lowagie.text.pdf.PdfWriter;
22
23 public class ResultPdfView extends AbstractPdfView {
24
25 @Override
26 @SuppressWarnings(value={"unchecked"})
27 protected void buildPdfDocument(Map model, Document document,
28 PdfWriter writer, HttpServletRequest request,
29 HttpServletResponse response) throws Exception {
30 TreeTestResult ttr = (TreeTestResult) model
31 .get(GetResultController.MODELKEY_RESULT);
32
33 document.addTitle("Result " + ttr.getUuid());
34 document.add(new Paragraph("Result " + ttr.getUuid()));
35
36 for (TreeSPath path : ttr.getResultParts().keySet()) {
37 PartSubList lst = ttr.getResultParts().get(path);
38 document.add(new Paragraph("Path " + path));
39 Table table = new Table(2, lst.getParts().size());
40 for (TestResultPart part : lst.getParts()) {
41 Integer status = part.getStatus();
42 Cell statusCell = new Cell(SlcTestUtils.statusToString(status));
43 final Color color;
44 if (status.equals(TestStatus.PASSED))
45 color = Color.GREEN;
46 else if (status.equals(TestStatus.FAILED))
47 color = Color.RED;
48 else
49 color = Color.MAGENTA;
50
51 statusCell.setBackgroundColor(color);
52 table.addCell(statusCell);
53 table.addCell(part.getMessage());
54 }
55 document.add(table);
56 }
57
58 }
59
60 }