# HG changeset patch # User František Kučera # Date 1243895235 -7200 # Node ID e32867db548793566004a8072e609896b4a7a344 # Parent e117f3aa21294f4c77b7c01495be7b6761fb6e72 Průvodce (nápověda): serverová část. diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PruvodceDAO.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PruvodceDAO.java Tue Jun 02 00:27:15 2009 +0200 @@ -0,0 +1,71 @@ +package cz.frantovo.sql.vyuka.dao; + +import cz.frantovo.sql.vyuka.dto.Pruvodce; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.logging.Level; + +/** + * Načítá průvodce (nápovědu) z databáze. + * @author fiki + */ +public class PruvodceDAO extends VyukaSuperDAO { + + private enum SQL { + + PODLE_KODU, + PODLE_ID, + PODLE_ID_PREDCHOZI, + PODLE_ID_NASLEDUJICI + } + + public Pruvodce getPruvodce(long id) { + return getPruvodce(getSQL(SQL.PODLE_ID), id); + } + + public Pruvodce getPruvodce(String kod) { + return getPruvodce(getSQL(SQL.PODLE_KODU), kod); + } + + public Pruvodce getPruvodcePredchozi(long id) { + return getPruvodce(getSQL(SQL.PODLE_ID_PREDCHOZI), id); + } + + public Pruvodce getPruvodceNasledujici(long id) { + return getPruvodce(getSQL(SQL.PODLE_ID_NASLEDUJICI), id); + } + + private Pruvodce getPruvodce(String selekt, Object... parametry) { + Connection db = getSpojeni(DATABAZE.APLIKACE); + if (db == null) { + log.log(Level.SEVERE, "Databáze je null."); + return null; + } else { + PreparedStatement ps = null; + ResultSet rs = null; + try { + ps = db.prepareStatement(selekt); + for (int i = 0; i < parametry.length; i++) { + ps.setObject(i + 1, parametry[i]); + } + rs = ps.executeQuery(); + if (rs.next()) { + Pruvodce p = new Pruvodce(); + p.setId(rs.getLong("id")); + p.setKod(rs.getString("kod")); + p.setNadpis(rs.getString("nadpis")); + p.setObsah(rs.getString("obsah")); + return p; + } else { + return null; + } + } catch (Exception e) { + log.log(Level.SEVERE, "Chyba při hledání průvodce.", e); + return null; + } finally { + zavri(db, ps, rs); + } + } + } +} diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PruvodceDAO.sql.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dao/PruvodceDAO.sql.xml Tue Jun 02 00:27:15 2009 +0200 @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + ? + ORDER BY id + LIMIT 1; + ]]> + + \ No newline at end of file diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Pruvodce.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/dto/Pruvodce.java Tue Jun 02 00:27:15 2009 +0200 @@ -0,0 +1,60 @@ +package cz.frantovo.sql.vyuka.dto; + +/** + * Jedna stránka průvodce: kapitola (lekce) + * @author fiki + */ +public class Pruvodce { + + private long id; + private String kod; + private String nadpis; + private String obsah; + private boolean lokalizovat = false; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getKod() { + return kod; + } + + public void setKod(String kod) { + this.kod = kod; + } + + public String getNadpis() { + return nadpis; + } + + public void setNadpis(String nadpis) { + this.nadpis = nadpis; + } + + public String getObsah() { + return obsah; + } + + public void setObsah(String obsah) { + this.obsah = obsah; + } + + /** + * @return the lokalizovat + */ + public boolean isLokalizovat() { + return lokalizovat; + } + + /** + * @param lokalizovat the lokalizovat to set + */ + public void setLokalizovat(boolean lokalizovat) { + this.lokalizovat = lokalizovat; + } +} diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Mon Jun 01 22:06:25 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/preklady_cs.properties Tue Jun 02 00:27:15 2009 +0200 @@ -38,3 +38,6 @@ navigace.model=Model datab\u00E1ze navigace.vpred=Vp\u0159ed v historii navigace.nasledujici=N\u00E1sleduj\u00EDc\u00ED lekce + +pruvodce.chyba.nadpis=Chyba +pruvodce.chyba.obsah=

Kapitola nenalezena.

diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java --- a/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java Mon Jun 01 22:06:25 2009 +0200 +++ b/java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java Tue Jun 02 00:27:15 2009 +0200 @@ -2,6 +2,8 @@ import cz.frantovo.sql.vyuka.dao.HistorieDAO; import cz.frantovo.sql.vyuka.dao.PiskovisteDAO; +import cz.frantovo.sql.vyuka.dao.PruvodceDAO; +import cz.frantovo.sql.vyuka.dto.Pruvodce; import cz.frantovo.sql.vyuka.dto.Uzivatel; import cz.frantovo.sql.vyuka.dto.VysledekSQL; @@ -13,6 +15,8 @@ private final Uzivatel uzivatel = new Uzivatel(); private String sqlPrikaz; + private long idPruvodce; + private String kodPruvodce; /** * Nastaví informace o klientovi (uživateli). @@ -33,6 +37,14 @@ this.sqlPrikaz = sqlPrikaz; } + public void setIdPruvodce(long idPruvodce) { + this.idPruvodce = idPruvodce; + } + + public void setKodPruvodce(String kodPruvodce) { + this.kodPruvodce = kodPruvodce; + } + /** * @return Historie SQL příkazů daného uživatele. */ @@ -49,4 +61,62 @@ PiskovisteDAO p = new PiskovisteDAO(); return p.vykonejSQL(sqlPrikaz, uzivatel); } + + /** + * Načte stránku průvodce – podle ID. + * @return průvodce nebo chybová hláška. + */ + public Pruvodce getPruvodcePodleId() { + PruvodceDAO dao = new PruvodceDAO(); + Pruvodce p = dao.getPruvodce(idPruvodce); + return osetriChybuPruvodce(p); + } + + /** + * Načte stránku průvodce – podle kódu. + * @param kod kód průvodce, kterého hledáme. + * @return průvodce nebo chybová hláška. + */ + public Pruvodce getPruvodcePodleKodu() { + PruvodceDAO dao = new PruvodceDAO(); + Pruvodce p = dao.getPruvodce(kodPruvodce); + return osetriChybuPruvodce(p); + } + + /** + * Načte stránku průvodce. + * idPruvodce = id, ke kterému hledáme předchozí stránku (záznam před). + * @return průvodce nebo chybová hláška. + */ + public Pruvodce getPruvodcePredchozi() { + PruvodceDAO dao = new PruvodceDAO(); + Pruvodce p = dao.getPruvodcePredchozi(idPruvodce); + return osetriChybuPruvodce(p); + } + + /** + * Načte stránku průvodce. + * idPruvodce = id, ke kterému hledáme následující stránku (záznam po). + * @return průvodce nebo chybová hláška. + */ + public Pruvodce getPruvodceNasledujici() { + PruvodceDAO dao = new PruvodceDAO(); + Pruvodce p = dao.getPruvodceNasledujici(idPruvodce); + return osetriChybuPruvodce(p); + } + + /** + * @param p Stránka průvodce načtená z databáze. + * @return zadaná stránka, nebo chybová hláška, pokud bylo načteno „null“ + */ + private static Pruvodce osetriChybuPruvodce(Pruvodce p) { + if (p == null) { + p = new Pruvodce(); + p.setKod("chyba"); + p.setNadpis("pruvodce.chyba.nadpis"); + p.setObsah("pruvodce.chyba.obsah"); + p.setLokalizovat(true); + } + return p; + } } diff -r e117f3aa2129 -r e32867db5487 java/sql-vyuka/web/ajax.jspx --- a/java/sql-vyuka/web/ajax.jspx Mon Jun 01 22:06:25 2009 +0200 +++ b/java/sql-vyuka/web/ajax.jspx Tue Jun 02 00:27:15 2009 +0200 @@ -119,7 +119,39 @@ -

TODO: nápověda.

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+ +

+ +
+
+