cells.add(new Cell("Revoked", true));
cells.add(new Cell("Expires", true));
cells.add(new Cell("Login", true));
- cells.add(new Cell("Comment *", true, "colspan=\"2\""));
+ cells.add(new Cell("Comment *", true, 2));
rs.beforeFirst();
while (rs.next()) {
// out.println(rs.getString("id"));
cells.add(new Cell(rs.getString("a"), false));
cells.add(new Cell(rs.getString("a"), false));
}
- DataTable t = new DataTable() {
-
- @Override
- protected LinkedList<Cell> getTableContent() {
- return cells;
- }
-
- @Override
- protected int getColoumnCount() {
- return 8;
- }
- };
+ DataTable t = new DataTable(9, cells);
t.output(out, l, vars);
out.println("</form>");
} catch (SQLException e) {
import org.cacert.gigi.Language;
-public abstract class DataTable implements Outputable {
- protected abstract int getColoumnCount();
+public class DataTable implements Outputable {
+ private LinkedList<Cell> cells;
+ private int columnCount;
- protected abstract LinkedList<Cell> getTableContent();
+ public DataTable(int coloumnCount, LinkedList<Cell> content) {
+ this.columnCount = coloumnCount;
+ this.cells = content;
+ }
@Override
public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+ int mesCells = cells.size();
+ for (Cell c : cells) {
+ if (c.getColSpan() > 1) {
+ mesCells += c.getColSpan();
+ }
+ }
out.println("<table align=\"center\" valign=\"middle\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"wrapper\">");
- LinkedList<Cell> tableContnet = getTableContent();
- for (int i = 0; i < tableContnet.size() / getColoumnCount(); i++) {
+ for (int i = 0; i < mesCells / columnCount; i++) {
out.println("<tr>");
- for (int j = 0; j < getColoumnCount(); j++) {
- Cell current = tableContnet.get((i * getColoumnCount()) + j);
+ for (int j = 0; j < columnCount;) {
+ Cell current = cells.get((i * columnCount) + j);
+ j += current.getColSpan();
out.println("<td " + current.getHtmlAttribs()
+ " class=\"DataTD\">");
out.print(current.shouldTranslate() ? l.getTranslation(current
public static class Cell {
private String text, htmlAttribs;
private boolean translate;
+ private int colSpan;
public Cell() {
this(" ", false);
}
- public Cell(String text, boolean translate, String htmlAttribs) {
+ public Cell(String text, boolean translate, int colSpan,
+ String htmlAttribs) {
this.text = text;
this.translate = translate;
this.htmlAttribs = htmlAttribs;
+ this.colSpan = colSpan;
}
public Cell(String text, boolean translate) {
- this(text, translate, "");
+ this(text, translate, 1, "");
+ }
+
+ public Cell(String text, boolean translate, int colSpan) {
+ this(text, translate, colSpan, "");
}
public boolean shouldTranslate() {
return text;
}
+ public int getColSpan() {
+ return colSpan;
+ }
+
public String getHtmlAttribs() {
return htmlAttribs;
}