java/sql-vyuka/src/java/cz/frantovo/sql/vyuka/web/Ajax.java
author František Kučera <franta-hg@frantovo.cz>
Wed Aug 12 00:20:01 2009 +0200 (2009-08-12)
changeset 69 7f6193e5fef3
parent 25 97bb16063d9e
child 74 48066e753dd6
permissions -rw-r--r--
Návrh oficiálních webových stránek a drobná grafika.
     1 package cz.frantovo.sql.vyuka.web;
     2 
     3 import cz.frantovo.sql.vyuka.dao.HistorieDAO;
     4 import cz.frantovo.sql.vyuka.dao.PiskovisteDAO;
     5 import cz.frantovo.sql.vyuka.dao.PruvodceDAO;
     6 import cz.frantovo.sql.vyuka.dto.Pruvodce;
     7 import cz.frantovo.sql.vyuka.dto.Uzivatel;
     8 import cz.frantovo.sql.vyuka.dto.VysledekSQL;
     9 
    10 /**
    11  * Webová beana, která poskytuje data Ajaxovému JSPčku.
    12  * @author fiki
    13  */
    14 public class Ajax {
    15 
    16     private final Uzivatel uzivatel = new Uzivatel();
    17     private String sqlPrikaz;
    18     private long idPruvodce;
    19     private String kodPruvodce;
    20 
    21     /**
    22      * Nastaví informace o klientovi (uživateli).
    23      * @param ipAdresa IP adresa, ze které přišel HTTP požadavek
    24      * @param ipPresmerovano HTTP hlavička x-forwarded-for (přidává proxy).
    25      * @param idSezeni javovská HTTP relace
    26      */
    27     public void setKlient(String ipAdresa, String ipPresmerovano, String idSezeni) {
    28         if ("127.0.0.1".equals(ipAdresa) && ipPresmerovano != null) {
    29             uzivatel.setIpAdresa(ipPresmerovano);
    30         } else {
    31             uzivatel.setIpAdresa(ipAdresa);
    32         }
    33         uzivatel.setIdSezeni(idSezeni);
    34     }
    35 
    36     public void setSqlPrikaz(String sqlPrikaz) {
    37         this.sqlPrikaz = sqlPrikaz;
    38     }
    39 
    40     public void setIdPruvodce(long idPruvodce) {
    41         this.idPruvodce = idPruvodce;
    42     }
    43 
    44     public void setKodPruvodce(String kodPruvodce) {
    45         this.kodPruvodce = kodPruvodce;
    46     }
    47 
    48     /**
    49      * @return Historie SQL příkazů daného uživatele.
    50      */
    51     public VysledekSQL getHistorie() {
    52         HistorieDAO h = new HistorieDAO();
    53         return h.nactiHistorii(uzivatel);
    54     }
    55 
    56     /**
    57      * Vykoná zadaný SQL příkaz v databázi.
    58      * @return Výsledek dotazu – tabulka, hláška nebo chyba.
    59      */
    60     public VysledekSQL getSQLVysledek() {
    61         PiskovisteDAO p = new PiskovisteDAO();
    62         return p.vykonejSQL(sqlPrikaz, uzivatel);
    63     }
    64 
    65     /**
    66      * Načte stránku průvodce – podle ID.
    67      * @return průvodce nebo chybová hláška.
    68      */
    69     public Pruvodce getPruvodcePodleId() {
    70         PruvodceDAO dao = new PruvodceDAO();
    71         Pruvodce p = dao.getPruvodce(idPruvodce);
    72         return osetriChybuPruvodce(p);
    73     }
    74 
    75     /**
    76      * Načte stránku průvodce – podle kódu.
    77      * @param kod kód průvodce, kterého hledáme.
    78      * @return průvodce nebo chybová hláška.
    79      */
    80     public Pruvodce getPruvodcePodleKodu() {
    81         PruvodceDAO dao = new PruvodceDAO();
    82         Pruvodce p = dao.getPruvodce(kodPruvodce);
    83         return osetriChybuPruvodce(p);
    84     }
    85 
    86     /**
    87      * Načte stránku průvodce.
    88      * idPruvodce = id, ke kterému hledáme předchozí stránku (záznam před).
    89      * @return průvodce nebo chybová hláška.
    90      */
    91     public Pruvodce getPruvodcePredchozi() {
    92         PruvodceDAO dao = new PruvodceDAO();
    93         Pruvodce p = dao.getPruvodcePredchozi(idPruvodce);
    94         return osetriChybuPruvodce(p);
    95     }
    96 
    97     /**
    98      * Načte stránku průvodce.
    99      * idPruvodce = id, ke kterému hledáme následující stránku (záznam po).
   100      * @return průvodce nebo chybová hláška.
   101      */
   102     public Pruvodce getPruvodceNasledujici() {
   103         PruvodceDAO dao = new PruvodceDAO();
   104         Pruvodce p = dao.getPruvodceNasledujici(idPruvodce);
   105         return osetriChybuPruvodce(p);
   106     }
   107 
   108     /**
   109      * @param p Stránka průvodce načtená z databáze.
   110      * @return zadaná stránka, nebo chybová hláška, pokud bylo načteno „null“
   111      */
   112     private static Pruvodce osetriChybuPruvodce(Pruvodce p) {
   113         if (p == null) {
   114             p = new Pruvodce();
   115             p.setKod("chyba");
   116             p.setNadpis("pruvodce.chyba.nadpis");
   117             p.setObsah("pruvodce.chyba.obsah");
   118             p.setLokalizovat(true);
   119         }
   120         return p;
   121     }
   122 }