From 7ff9efc4b22e9f32a78ed70409064ec887d2fb4d Mon Sep 17 00:00:00 2001 From: Janis Streib Date: Fri, 27 Jun 2014 01:17:49 +0200 Subject: [PATCH] Add: Abstracted table markup. --- .../cacert/gigi/output/CertificateTable.java | 54 ++++++++------- src/org/cacert/gigi/output/DataTable.java | 66 +++++++++++++++++++ 2 files changed, 95 insertions(+), 25 deletions(-) create mode 100644 src/org/cacert/gigi/output/DataTable.java diff --git a/src/org/cacert/gigi/output/CertificateTable.java b/src/org/cacert/gigi/output/CertificateTable.java index 413de877..a5c43d85 100644 --- a/src/org/cacert/gigi/output/CertificateTable.java +++ b/src/org/cacert/gigi/output/CertificateTable.java @@ -3,53 +3,57 @@ package org.cacert.gigi.output; import java.io.PrintWriter; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.LinkedList; import java.util.Map; import org.cacert.gigi.Language; +import org.cacert.gigi.output.DataTable.Cell; +import org.cacert.gigi.output.DataTable.EmptyCell; public class CertificateTable implements Outputable { String resultSet; public CertificateTable(String resultSet) { this.resultSet = resultSet; } - private static final String[] columnNames = new String[]{ - "Renew/Revoke/Delete", "Status", "Email Address", "SerialNumber", - "Revoked", "Expires", "Login"}; @Override public void output(PrintWriter out, Language l, Map vars) { ResultSet rs = (ResultSet) vars.get(resultSet); try { out.println("
"); - out.println(""); - out.println(""); - for (String column : columnNames) { - out.print(""); - } - out.print(""); - + final LinkedList cells = new LinkedList<>(); rs.beforeFirst(); while (rs.next()) { // out.println(rs.getString("id")); - out.print(""); + cells.add(new Cell(rs.getString("expire"), false)); + cells.add(new Cell(rs.getString("a"), false)); + cells.add(new Cell(rs.getString("a"), false)); } - out.println("
"); - out.print(l.getTranslation(column)); - out.println(""); - out.print(l.getTranslation("Comment *")); - out.println("
 State"); - out.println(rs.getString("CN")); - out.print(""); - out.println(rs.getString("serial")); - out.print(""); + cells.add(new EmptyCell()); + cells.add(new Cell("State", false)); + cells.add(new Cell(rs.getString("CN"), false)); + cells.add(new Cell(rs.getString("serial"), false)); if (rs.getString("revoked") == null) { - out.println("N/A"); + cells.add(new Cell("N/A", false)); } else { - out.println(rs.getString("revoked")); + cells.add(new Cell(rs.getString("revoked"), false)); } - out.print(""); - out.println(rs.getString("expire")); - out.println("aa
"); + DataTable t = new DataTable() { + + @Override + protected LinkedList getTableContent() { + return cells; + } + + @Override + protected String[] getColumns() { + return new String[] { "Renew/Revoke/Delete", "Status", + "Email Address", "SerialNumber", "Revoked", + "Expires", "Login", "Comment*" }; + } + }; + t.output(out, l, vars); + out.println(""); } catch (SQLException e) { e.printStackTrace(); } diff --git a/src/org/cacert/gigi/output/DataTable.java b/src/org/cacert/gigi/output/DataTable.java new file mode 100644 index 00000000..8c8b06e6 --- /dev/null +++ b/src/org/cacert/gigi/output/DataTable.java @@ -0,0 +1,66 @@ +package org.cacert.gigi.output; + +import java.io.PrintWriter; +import java.util.LinkedList; +import java.util.Map; + +import org.cacert.gigi.Language; + +public abstract class DataTable implements Outputable { + protected abstract String[] getColumns(); + + protected abstract LinkedList getTableContent(); + + @Override + public void output(PrintWriter out, Language l, Map vars) { + out.println(""); + out.println(""); + for (String column : getColumns()) { + out.print(""); + } + out.println(""); + LinkedList tableContnet = getTableContent(); + for (int i = 0; i < tableContnet.size() / getColumns().length; i++) { + out.println(""); + for (int j = 0; j < getColumns().length; j++) { + out.println(""); + } + out.println(""); + } + out.println("
"); + out.print(l.getTranslation(column)); + out.println("
"); + Cell current = tableContnet.get((i * getColumns().length) + j); + out.print(current.shouldTranslate() ? l.getTranslation(current + .getText()) : current.getText()); + out.print("
"); + } + + public static class Cell { + private String text; + private boolean translate; + + public Cell(String text, boolean translate) { + this.text = text; + this.translate = translate; + } + + public boolean shouldTranslate() { + return translate; + } + + public String getText() { + return text; + } + + } + + public static class EmptyCell extends Cell { + + public EmptyCell() { + super(" ", false); + } + + } + +} -- 2.39.2