java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Tabulka.java
author František Kučera <franta-hg@frantovo.cz>
Sun May 31 17:46:11 2009 +0200 (2009-05-31)
changeset 24 dceaaefb1946
parent 16 9acb74ac7346
child 25 97bb16063d9e
permissions -rw-r--r--
Přechod ze servletu na JSP – přidání JSPX.
     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 String zahlaviTip;
    15     private Collection<Object[]> hodnoty = new ArrayList<Object[]>();
    16 
    17     public String getHtml() {
    18 
    19         if (getZahlavi() == null || getHodnoty() == null || getZahlavi().length < 1) {
    20             return "<p>Chybná tabulka</p>";
    21         } else {
    22 
    23             StringBuffer html = new StringBuffer();
    24 
    25             html.append("<table>");
    26 
    27 
    28             html.append("<thead title=\"Chceš setřídit výsledek podle nějakého sloupce? Co takhle ORDER BY sloupec.\">");
    29             html.append("<tr>");
    30             for (String z : getZahlavi()) {
    31                 html.append("<td>" + Html.escapuj(z) + "</td>");
    32             }
    33             html.append("</tr>");
    34             html.append("</thead>");
    35 
    36 
    37             html.append("<tbody>");
    38             for (Object[] hh : getHodnoty()) {
    39                 html.append("<tr>");
    40                 for (Object h : hh) {
    41                     html.append(formatujBunku(h));
    42                 }
    43                 html.append("</tr>");
    44             }
    45             html.append("</tbody>");
    46 
    47             html.append("</table>");
    48 
    49 
    50             return html.toString();
    51         }
    52     }
    53 
    54     private String formatujBunku(Object o) {
    55         /** TODO: podporovat i jiné typy */
    56         if (o instanceof Integer) {
    57             return "<td class=\"cislo\">" + Html.escapuj(String.valueOf(o)) + "</td>";
    58         } else {
    59             return "<td>" + Html.escapuj(String.valueOf(o)) + "</td>";
    60         }
    61     }
    62 
    63     public String[] getZahlavi() {
    64         return zahlavi;
    65     }
    66 
    67     public void setZahlavi(String[] zahlavi) {
    68         this.zahlavi = zahlavi;
    69     }
    70 
    71     public String getZahlaviTip() {
    72         return zahlaviTip;
    73     }
    74 
    75     public void setZahlaviTip(String zahlaviTip) {
    76         this.zahlaviTip = zahlaviTip;
    77     }
    78 
    79     public Collection<Object[]> getHodnoty() {
    80         return hodnoty;
    81     }
    82 }