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();
33 out.print(current.getHtmlAttribs());
35 out.print(current.shouldTranslate() ? l.getTranslation(current
36 .getText()) : current.getText());
41 out.println("</table>");
44 public static class Cell {
45 private String text, htmlAttribs;
46 private boolean translate;
50 this(" ", false);
53 public Cell(String text, boolean translate, int colSpan,
56 this.translate = translate;
57 this.htmlAttribs = htmlAttribs;
59 this.htmlAttribs += " colspan=\"" + colSpan + "\"";
61 this.colSpan = colSpan;
64 public Cell(String text, boolean translate) {
65 this(text, translate, 1, "class=\"DataTD\"");
68 public Cell(String text, boolean translate, int colSpan) {
69 this(text, translate, colSpan, "class=\"DataTD\"");
72 public boolean shouldTranslate() {
76 public String getText() {
80 public int getColSpan() {
84 public String getHtmlAttribs() {
91 public void output(PrintWriter out, Language l, Map<String, Object> vars) {