1 package org.cacert.gigi.output;
3 import java.io.PrintWriter;
4 import java.util.LinkedList;
7 import org.cacert.gigi.Language;
9 public abstract class DataTable implements Outputable {
10 protected abstract String[] getColumns();
12 protected abstract LinkedList<Cell> getTableContent();
15 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
16 out.println("<table align=\"center\" valign=\"middle\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"wrapper\">");
18 for (String column : getColumns()) {
19 out.print("<td class=\"DataTD\">");
20 out.print(l.getTranslation(column));
24 LinkedList<Cell> tableContnet = getTableContent();
25 for (int i = 0; i < tableContnet.size() / getColumns().length; i++) {
27 for (int j = 0; j < getColumns().length; j++) {
28 out.println("<td class=\"DataTD\">");
29 Cell current = tableContnet.get((i * getColumns().length) + j);
30 out.print(current.shouldTranslate() ? l.getTranslation(current
31 .getText()) : current.getText());
36 out.println("</table>");
39 public static class Cell {
41 private boolean translate;
43 public Cell(String text, boolean translate) {
45 this.translate = translate;
48 public boolean shouldTranslate() {
52 public String getText() {
58 public static class EmptyCell extends Cell {
61 super(" ", false);