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