1 package org.cacert.gigi.output;
3 import java.io.PrintWriter;
4 import java.util.LinkedList;
7 import org.cacert.gigi.Language;
9 public class DataTable implements Outputable {
10 private LinkedList<Cell> cells;
11 private int columnCount;
13 public DataTable(int coloumnCount, LinkedList<Cell> content) {
14 this.columnCount = coloumnCount;
18 public void output(PrintWriter out, Language l) {
19 float mesCells = cells.size();
20 for (Cell c : cells) {
21 if (c.getColSpan() > 1) {
22 mesCells += c.getColSpan();
25 out.println("<table align=\"center\" valign=\"middle\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"wrapper\">");
26 int cellsRendered = 0;
27 for (int i = 0; i < Math.ceil(mesCells / columnCount) - 1; i++) {
29 for (int j = 0; j < columnCount;) {
30 Cell current = cells.get(cellsRendered++);
31 j += current.getColSpan();
32 out.println("<td " + current.getHtmlAttribs() + " >");
33 out.print(current.shouldTranslate() ? l.getTranslation(current
34 .getText()) : current.getText());
39 out.println("</table>");
42 public static class Cell {
43 private String text, htmlAttribs;
44 private boolean translate;
48 this(" ", false);
51 public Cell(String text, boolean translate, int colSpan,
54 this.translate = translate;
55 this.htmlAttribs = htmlAttribs;
57 this.htmlAttribs += " colspan=\"" + colSpan + "\"";
59 this.colSpan = colSpan;
62 public Cell(String text, boolean translate) {
63 this(text, translate, 1, "class=\"DataTD\"");
66 public Cell(String text, boolean translate, int colSpan) {
67 this(text, translate, colSpan, "class=\"DataTD\"");
70 public boolean shouldTranslate() {
74 public String getText() {
78 public int getColSpan() {
82 public String getHtmlAttribs() {
89 public void output(PrintWriter out, Language l, Map<String, Object> vars) {