]> WPIA git - gigi.git/blob - src/org/cacert/gigi/output/DataTable.java
3f131a224c05ea3df8fe33014c8842c64cf4031e
[gigi.git] / src / org / cacert / gigi / output / DataTable.java
1 package org.cacert.gigi.output;
2
3 import java.io.PrintWriter;
4 import java.util.LinkedList;
5 import java.util.Map;
6
7 import org.cacert.gigi.Language;
8
9 public class DataTable implements Outputable {
10         private LinkedList<Cell> cells;
11         private int columnCount;
12
13         public DataTable(int coloumnCount, LinkedList<Cell> content) {
14                 this.columnCount = coloumnCount;
15                 this.cells = content;
16         }
17
18         @Override
19         public void output(PrintWriter out, Language l, Map<String, Object> vars) {
20                 int mesCells = cells.size();
21                 for (Cell c : cells) {
22                         if (c.getColSpan() > 1) {
23                                 mesCells += c.getColSpan();
24                         }
25                 }
26                 out.println("<table align=\"center\" valign=\"middle\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"wrapper\">");
27                 for (int i = 0; i < mesCells / columnCount; i++) {
28                         out.println("<tr>");
29                         for (int j = 0; j < columnCount;) {
30                                 Cell current = cells.get((i * columnCount) + j);
31                                 j += current.getColSpan();
32                                 out.println("<td " + current.getHtmlAttribs() + " >");
33                                 out.print(current.shouldTranslate() ? l.getTranslation(current
34                                                 .getText()) : current.getText());
35                                 out.print("</td>");
36                         }
37                         out.println("</tr>");
38                 }
39                 out.println("</table>");
40         }
41
42         public static class Cell {
43                 private String text, htmlAttribs;
44                 private boolean translate;
45                 private int colSpan;
46
47                 public Cell() {
48                         this("&nbsp;", false);
49                 }
50
51                 public Cell(String text, boolean translate, int colSpan,
52                                 String htmlAttribs) {
53                         this.text = text;
54                         this.translate = translate;
55                         this.htmlAttribs = htmlAttribs;
56                         this.colSpan = colSpan;
57                 }
58
59                 public Cell(String text, boolean translate) {
60                         this(text, translate, 1, "class=\"DataTD\"");
61                 }
62
63                 public Cell(String text, boolean translate, int colSpan) {
64                         this(text, translate, colSpan, "class=\"DataTD\"");
65                 }
66
67                 public boolean shouldTranslate() {
68                         return translate;
69                 }
70
71                 public String getText() {
72                         return text;
73                 }
74
75                 public int getColSpan() {
76                         return colSpan;
77                 }
78
79                 public String getHtmlAttribs() {
80                         return htmlAttribs;
81                 }
82
83         }
84
85 }