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-- |
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 |
|
franta-hg@12 | 74 |
public void setHodnoty(Collection<Object[]> hodnoty) { |
franta-hg@12 | 75 |
this.hodnoty = hodnoty; |
franta-hg@12 | 76 |
} |
franta-hg@12 | 77 |
} |