1 package net.sourceforge.pmd.renderers;
2
3 import net.sourceforge.pmd.PMD;
4 import net.sourceforge.pmd.Report;
5 import net.sourceforge.pmd.RuleViolation;
6
7 import java.util.Iterator;
8
9 /***
10 * @version $Revision: 1.5 $ $Date: 2003/06/26 21:13:13 $
11 * @author Vladimir
12 */
13 public class VBHTMLRenderer implements Renderer {
14
15 public String render(Report report) {
16 if (report.isEmpty()) {
17 return "";
18 }
19
20 StringBuffer sb = new StringBuffer(header());
21 String filename = null;
22 String lineSep = PMD.EOL;
23
24 boolean colorize = false;
25
26 for (Iterator iter = report.iterator(); iter.hasNext();) {
27 RuleViolation rv = (RuleViolation) iter.next();
28 if (!rv.getFilename().equals(filename)) { // New File
29 if (filename != null) {
30 sb.append("</table></br>");
31 colorize = false;
32 }
33 filename = rv.getFilename();
34 sb.append("<table border=\"0\" width=\"80%\">");
35 sb.append("<tr id=TableHeader><td colspan=\"2\"><font class=title> ").append(filename).append("</font></tr>");
36 sb.append(lineSep);
37 }
38
39 if (colorize) {
40 sb.append("<tr id=RowColor1>");
41 } else {
42 sb.append("<tr id=RowColor2>");
43 }
44
45 colorize = !colorize;
46 sb.append("<td width=\"50\" align=\"right\"><font class=body>" + rv.getLine() + " </font></td>");
47 sb.append("<td><font class=body>" + rv.getDescription() + "</font></td>");
48 sb.append("</tr>");
49 sb.append(lineSep);
50 }
51 if (filename != null) {
52 sb.append("</table>");
53 }
54 sb.append("<br>");
55
56 // output the problems
57 Iterator iter = report.errors();
58 if (iter.hasNext()) {
59 sb.append("<table border=\"0\" width=\"80%\">");
60 sb.append("<tr id=TableHeader><td><font class=title> Problems found</font></td></tr>");
61 colorize = false;
62 while(iter.hasNext()) {
63 if (colorize) {
64 sb.append("<tr id=RowColor1>");
65 } else {
66 sb.append("<tr id=RowColor2>");
67 }
68 colorize = !colorize;
69 sb.append("<td><font class=body>").append(iter.next()).append("\"</font></td></tr>");
70 }
71 sb.append("</table>");
72 }
73
74 sb.append(footer());
75
76 return sb.toString();
77 }
78
79 private String header() {
80 StringBuffer sb = new StringBuffer();
81 sb.append("<html><head><title>PMD</title></head>");
82 sb.append("<style type=\"text/css\">");
83 sb.append("<!--" + PMD.EOL);
84 sb.append("body { background-color: white; font-family:verdana, arial, helvetica, geneva; font-size: 16px; font-style: italic; color: black; }" + PMD.EOL);
85 sb.append(".title { font-family: verdana, arial, helvetica,geneva; font-size: 12px; font-weight:bold; color: white; }" + PMD.EOL);
86 sb.append(".body { font-family: verdana, arial, helvetica, geneva; font-size: 12px; font-weight:plain; color: black; }" + PMD.EOL);
87 sb.append("#TableHeader { background-color: #003366; }" + PMD.EOL);
88 sb.append("#RowColor1 { background-color: #eeeeee; }" + PMD.EOL);
89 sb.append("#RowColor2 { background-color: white; }" + PMD.EOL);
90 sb.append("-->");
91 sb.append("</style>");
92 sb.append("<body><center>");
93 return sb.toString();
94 }
95
96 private String footer() {
97 return "</center></body></html>";
98 }
99
100 }
This page was automatically generated by Maven