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