java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java
author František Kučera <franta-hg@frantovo.cz>
Fri May 29 00:36:44 2009 +0200 (2009-05-29)
changeset 13 96e711f3ef48
parent 12 1b10a6565e8c
child 16 9acb74ac7346
permissions -rw-r--r--
Už to „něco“ dělá – zobrazujeme ukázková data.
     1 package cz.frantovo.sql.vyuka.dto;
     2 
     3 import cz.frantovo.sql.vyuka.Html;
     4 import java.util.ArrayList;
     5 import java.util.Collection;
     6 
     7 /**
     8  * Tabulka, která je výsledkem SQL dotazu.
     9  * @author fiki
    10  */
    11 public class Tabulka implements HtmlObjekt {
    12 
    13     private String[] zahlavi;
    14     private Collection<Object[]> hodnoty = new ArrayList<Object[]>();
    15 
    16     public String getHtml() {
    17 
    18         if (getZahlavi() == null || getHodnoty() == null || getZahlavi().length < 1) {
    19             return "<p>Chybná tabulka</p>";
    20         } else {
    21 
    22             StringBuffer html = new StringBuffer();
    23 
    24             html.append("<table>");
    25 
    26 
    27             html.append("<thead title=\"Chceš setřídit výsledek podle nějakého sloupce? Co takhle ORDER BY sloupec.\">");
    28             html.append("<tr>");
    29             for (String z : getZahlavi()) {
    30                 html.append("<td>" + Html.escapuj(z) + "</td>");
    31             }
    32             html.append("</tr>");
    33             html.append("</thead>");
    34 
    35 
    36             html.append("<tbody>");
    37             for (Object[] hh : getHodnoty()) {
    38                 html.append("<tr>");
    39                 for (Object h : hh) {
    40                     html.append(formatujBunku(h));
    41                 }
    42                 html.append("</tr>");
    43             }
    44             html.append("</tbody>");
    45 
    46             html.append("</table>");
    47 
    48 
    49             return html.toString();
    50         }
    51     }
    52 
    53     private String formatujBunku(Object o) {
    54         /** TODO: podporovat i jiné typy */
    55         if (o instanceof Integer) {
    56             return "<td class=\"cislo\">" + Html.escapuj(String.valueOf(o)) + "</td>";
    57         } else {
    58             return "<td>" + Html.escapuj(String.valueOf(o)) + "</td>";
    59         }
    60     }
    61 
    62     public String[] getZahlavi() {
    63         return zahlavi;
    64     }
    65 
    66     public void setZahlavi(String[] zahlavi) {
    67         this.zahlavi = zahlavi;
    68     }
    69 
    70     public Collection<Object[]> getHodnoty() {
    71         return hodnoty;
    72     }
    73 
    74     public void setHodnoty(Collection<Object[]> hodnoty) {
    75         this.hodnoty = hodnoty;
    76     }
    77 }