Show
Ignore:
Timestamp:
11/29/11 17:16:47 (12 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

drobnosti: lgoování, formátování, netbeans…

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java

    r7 r13  
    4545public class SuperPostak extends javax.swing.JFrame { 
    4646 
    47     /** Soubor, kde je uložené nastavení */ 
    48     private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz"; 
    49     private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore"; 
    50     private static final String NASTAVENI_SLOZKA = ".SuperPostak"; 
    51     private static final String DOMACI_ADRESAR = System.getProperty("user.home"); 
    52     private static final Logger log = Logger.getLogger(SuperPostak.class.getName()); 
    53     private static final long serialVersionUID = -7026850569575604048L; 
    54     private Nastaveni nastaveni = new Nastaveni(); 
    55     private Postak postak = new Postak(nastaveni); 
    56  
    57     /** 
    58     * Creates new form SuperPostak 
    59     * @param ladit předvyplní testovací hodnoty - zprávu 
    60      * @param exit při zavření okna ukončí program      
    61     */ 
    62     public SuperPostak(boolean ladit, boolean exit) { 
    63         log.log(Level.WARNING, "Program byl spuštěn."); 
    64         nactiOvladaceJDBC(); 
    65         vytvorSlozkuProgramu(); 
    66         initComponents(); 
    67  
    68         nactiNastaveni(); 
    69         ulozNastaveni(); 
    70         nastaveni.setCestaKCertifikatum(getCestaKCertifikatum()); 
    71  
    72         inicializujCardLayout(); 
    73         setLocationRelativeTo(null); 
     47        /** Soubor, kde je uložené nastavení */ 
     48        private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz"; 
     49        private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore"; 
     50        private static final String NASTAVENI_SLOZKA = ".SuperPostak"; 
     51        private static final String DOMACI_ADRESAR = System.getProperty("user.home"); 
     52        private static final Logger log = Logger.getLogger(SuperPostak.class.getName()); 
     53        private static final long serialVersionUID = -7026850569575604048L; 
     54        private Nastaveni nastaveni = new Nastaveni(); 
     55        private Postak postak = new Postak(nastaveni); 
     56 
     57        /** 
     58        * Creates new form SuperPostak 
     59        * @param ladit předvyplní testovací hodnoty - zprávu 
     60         * @param exit při zavření okna ukončí program 
     61        */ 
     62        public SuperPostak(boolean ladit, boolean exit) { 
     63                log.log(Level.WARNING, "Program byl spuštěn."); 
     64                nactiOvladaceJDBC(); 
     65                vytvorSlozkuProgramu(); 
     66                initComponents(); 
     67 
     68                nactiNastaveni(); 
     69                ulozNastaveni(); 
     70                nastaveni.setCestaKCertifikatum(getCestaKCertifikatum()); 
     71 
     72                inicializujCardLayout(); 
     73                setLocationRelativeTo(null); 
    7474 
    7575                /** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */ 
     
    7878                prijemciZkusebni.setNastaveni(nastaveni); 
    7979 
    80         /** Vyřešíme problém TAB vs. Focus */ 
    81         vyresitTabFocusProblem(vstupSQL); 
    82         vyresitTabFocusProblem(vstupZprava); 
    83  
    84         /** Ladicí hodnoty */ 
    85         if (ladit) { 
    86             nastavLadiciHodnoty(); 
    87         } 
    88  
    89         if (exit) { 
    90             setDefaultCloseOperation(EXIT_ON_CLOSE); 
    91         } 
    92  
    93  
    94     } 
    95  
    96     private void inicializujCardLayout() { 
    97         panelDatabaze.setName("panelDatabaze"); 
    98         panelOdeslat.setName("panelOdeslat"); 
    99         panelPrijemci.setName("panelPrijemci"); 
    100         panelServer.setName("panelServer"); 
    101         panelVychoziPrijemci.setName("panelVychoziPrijemci"); 
    102         panelZprava.setName("panelZprava"); 
    103  
    104         panel.add(panelDatabaze, panelDatabaze.getName()); 
    105         panel.add(panelOdeslat, panelOdeslat.getName()); 
    106         panel.add(panelPrijemci, panelPrijemci.getName()); 
    107         panel.add(panelServer, panelServer.getName()); 
    108         panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName()); 
    109         panel.add(panelZprava, panelZprava.getName()); 
    110  
    111         setPanel(panelZprava); 
    112         pack(); 
    113     } 
    114  
    115     /** 
    116     * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami, 
    117     * aby se dal program testovat jedním kliknutím. 
    118     */ 
    119     private void nastavLadiciHodnoty() { 
    120         try { 
    121             vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz"); 
    122             vstupJmenoOdesilatele.setText("SuperPošťák"); 
    123             vstupPredmet.setText("Zkušební zpráva od SuperPošťáka"); 
    124             vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)"); 
    125             ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>(); 
    126             adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák")); 
    127             prijemciZkusebni.setAdresy(adresy); 
    128         } catch (UnsupportedEncodingException e) { 
    129             log.log(Level.SEVERE, null, e); 
    130         } 
    131     } 
    132  
    133     /** 
    134     * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu. 
    135     * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách. 
    136     * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161 
    137     */ 
    138     private void nactiOvladaceJDBC() { 
    139         nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL"); 
    140         nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL"); 
    141         nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL"); 
    142         nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com"); 
    143         nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle"); 
    144     } 
    145  
    146     /** 
    147     * @param trida ovladač databáze, který se má načíst 
    148      * @param jmeno název databáze      
    149     */ 
    150     private void nactiOvladacJDBC(String trida, String jmeno) { 
    151         try { 
    152             Class.forName(trida); 
    153             log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " byl úspěšně načten."); 
    154         } catch (ClassNotFoundException e) { 
    155             log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " se nepodařilo načíst."); 
    156         } 
    157     } 
    158  
    159     /** Vrací plnou cestu k souboru s nastavením */ 
    160     protected static String getCestaKCertifikatum() { 
    161         return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR; 
    162     } 
    163  
    164     /** Vrací plnou cestu k souboru s nastavením */ 
    165     protected static String getCestaKNastaveni() { 
    166         return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR; 
    167     } 
    168  
    169     /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */ 
    170     protected static String getCestaKeSlozceProgramu() { 
    171         return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator; 
    172     } 
    173  
    174     /** Načte nastavení ze souboru */ 
    175     private void nactiNastaveni() { 
    176         try { 
    177             XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni())))); 
    178             Object xmlObjekt = d.readObject(); 
    179             d.close(); 
    180  
    181             if (xmlObjekt instanceof Nastaveni) { 
    182                 nastaveni = (Nastaveni) xmlObjekt; 
    183             } else { 
    184                 nastaveni = new Nastaveni(); 
    185                 log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí"); 
    186             } 
    187  
    188             nactiNastaveniGUI(); 
    189  
    190             log.log(Level.INFO, "Nastavení bylo načteno."); 
    191         } catch (FileNotFoundException ex) { 
    192             log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex); 
    193         } catch (IOException ex) { 
    194             log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex); 
    195         } 
    196     } 
    197  
    198     /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */ 
    199     private static boolean vytvorSlozkuProgramu() { 
    200         if (new File(getCestaKeSlozceProgramu()).mkdirs()) { 
    201             log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: " + getCestaKeSlozceProgramu()); 
    202             return true; 
    203         } else { 
    204             return false; 
    205         } 
    206     } 
    207  
    208     /** Uloží nastavení do souboru */ 
    209     private void ulozNastaveni() { 
    210         try { 
    211             ulozNastaveniGUI(); 
    212  
    213             vytvorSlozkuProgramu(); 
    214  
    215             XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni())))); 
    216             e.writeObject(nastaveni); 
    217             e.close(); 
    218             log.log(Level.INFO, "Nastavení bylo uloženo."); 
    219         } catch (FileNotFoundException ex) { 
    220             log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex); 
    221         } catch (IOException ex) { 
    222             log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex); 
    223         } 
    224     } 
    225  
    226     /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */ 
    227     private void ulozNastaveniGUI() { 
    228         nastaveni.setDatabaze(vstupDatabaze.getText()); 
    229         nastaveni.setDbHeslo(vstupDBheslo.getPassword()); 
    230         nastaveni.setDbJmeno(vstupDBjmeno.getText()); 
    231         nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue()); 
    232         nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword()); 
    233         nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText()); 
    234         nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue()); 
    235         nastaveni.setPostovniServer(vstupSMTPserver.getText()); 
    236         nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy()); 
    237     } 
    238  
    239     /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */ 
    240     private void nactiNastaveniGUI() { 
    241         vstupDatabaze.setText(nastaveni.getDatabaze()); 
    242         if (nastaveni.getDbHeslo() != null) { 
    243             vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo())); 
    244         } 
    245         vstupDBjmeno.setText(nastaveni.getDbJmeno()); 
    246         vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav()); 
    247         if (nastaveni.getPostovniHeslo() != null) { 
    248             vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo())); 
    249         } 
    250         vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno()); 
    251         vstupSMTPport.setValue(nastaveni.getPostovniPort()); 
    252         vstupSMTPserver.setText(nastaveni.getPostovniServer()); 
    253         prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci()); 
    254     } 
    255  
    256     protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    257         zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat); 
    258     } 
    259  
    260     protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) { 
    261         JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE); 
    262         if (loguj) { 
    263             log.log(Level.INFO, nadpis + ": " + text); 
    264         } 
    265     } 
    266  
    267     protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    268         if (logovat) { 
    269             log.log(zavaznost, strucnaZprava, vyjimka); 
    270         } 
    271  
    272         JXErrorPane chybovyPanel = new JXErrorPane(); 
    273         ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null); 
    274         chybovyPanel.setErrorInfo(chybovaInformace); 
    275         JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel); 
    276         dialog.setVisible(true); 
    277     } 
    278  
    279     private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    280         zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat); 
    281     } 
    282  
    283     private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) { 
    284         zobrazInformacniDialog(this, nadpis, text, loguj); 
    285     } 
    286  
    287     private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    288         zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat); 
    289     } 
    290  
    291     /** This method is called from within the constructor to 
    292     * initialize the form. 
    293     * WARNING: Do NOT modify this code. The content of this method is 
    294     * always regenerated by the Form Editor. 
    295     */ 
     80                /** Vyřešíme problém TAB vs. Focus */ 
     81                vyresitTabFocusProblem(vstupSQL); 
     82                vyresitTabFocusProblem(vstupZprava); 
     83 
     84                /** Ladicí hodnoty */ 
     85                if (ladit) { 
     86                        nastavLadiciHodnoty(); 
     87                } 
     88 
     89                if (exit) { 
     90                        setDefaultCloseOperation(EXIT_ON_CLOSE); 
     91                } 
     92 
     93 
     94        } 
     95 
     96        private void inicializujCardLayout() { 
     97                panelDatabaze.setName("panelDatabaze"); 
     98                panelOdeslat.setName("panelOdeslat"); 
     99                panelPrijemci.setName("panelPrijemci"); 
     100                panelServer.setName("panelServer"); 
     101                panelVychoziPrijemci.setName("panelVychoziPrijemci"); 
     102                panelZprava.setName("panelZprava"); 
     103 
     104                panel.add(panelDatabaze, panelDatabaze.getName()); 
     105                panel.add(panelOdeslat, panelOdeslat.getName()); 
     106                panel.add(panelPrijemci, panelPrijemci.getName()); 
     107                panel.add(panelServer, panelServer.getName()); 
     108                panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName()); 
     109                panel.add(panelZprava, panelZprava.getName()); 
     110 
     111                setPanel(panelZprava); 
     112                pack(); 
     113        } 
     114 
     115        /** 
     116        * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami, 
     117        * aby se dal program testovat jedním kliknutím. 
     118        */ 
     119        private void nastavLadiciHodnoty() { 
     120                try { 
     121                        vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz"); 
     122                        vstupJmenoOdesilatele.setText("SuperPošťák"); 
     123                        vstupPredmet.setText("Zkušební zpráva od SuperPošťáka"); 
     124                        vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)"); 
     125                        ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>(); 
     126                        adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák")); 
     127                        prijemciZkusebni.setAdresy(adresy); 
     128                } catch (UnsupportedEncodingException e) { 
     129                        log.log(Level.SEVERE, null, e); 
     130                } 
     131        } 
     132 
     133        /** 
     134        * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu. 
     135        * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách. 
     136        * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161 
     137        */ 
     138        private void nactiOvladaceJDBC() { 
     139                nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL"); 
     140                nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL"); 
     141                nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL"); 
     142                nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com"); 
     143                nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle"); 
     144        } 
     145 
     146        /** 
     147        * @param trida ovladač databáze, který se má načíst 
     148         * @param jmeno název databáze 
     149        */ 
     150        private void nactiOvladacJDBC(String trida, String jmeno) { 
     151                try { 
     152                        Class.forName(trida); 
     153                        log.log(Level.INFO, "JDBC ovladač pro {0} byl úspěšně načten.", jmeno); 
     154                } catch (ClassNotFoundException e) { 
     155                        log.log(Level.INFO, "JDBC ovladač pro {0} se nepodařilo načíst.", jmeno); 
     156                } 
     157        } 
     158 
     159        /** Vrací plnou cestu k souboru s nastavením */ 
     160        protected static String getCestaKCertifikatum() { 
     161                return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR; 
     162        } 
     163 
     164        /** Vrací plnou cestu k souboru s nastavením */ 
     165        protected static String getCestaKNastaveni() { 
     166                return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR; 
     167        } 
     168 
     169        /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */ 
     170        protected static String getCestaKeSlozceProgramu() { 
     171                return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator; 
     172        } 
     173 
     174        /** Načte nastavení ze souboru */ 
     175        private void nactiNastaveni() { 
     176                try { 
     177                        XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni())))); 
     178                        Object xmlObjekt = d.readObject(); 
     179                        d.close(); 
     180 
     181                        if (xmlObjekt instanceof Nastaveni) { 
     182                                nastaveni = (Nastaveni) xmlObjekt; 
     183                        } else { 
     184                                nastaveni = new Nastaveni(); 
     185                                log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí"); 
     186                        } 
     187 
     188                        nactiNastaveniGUI(); 
     189 
     190                        log.log(Level.INFO, "Nastavení bylo načteno."); 
     191                } catch (FileNotFoundException ex) { 
     192                        log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex); 
     193                } catch (IOException ex) { 
     194                        log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex); 
     195                } 
     196        } 
     197 
     198        /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */ 
     199        private static boolean vytvorSlozkuProgramu() { 
     200                if (new File(getCestaKeSlozceProgramu()).mkdirs()) { 
     201                        log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: {0}", getCestaKeSlozceProgramu()); 
     202                        return true; 
     203                } else { 
     204                        return false; 
     205                } 
     206        } 
     207 
     208        /** Uloží nastavení do souboru */ 
     209        private void ulozNastaveni() { 
     210                try { 
     211                        ulozNastaveniGUI(); 
     212 
     213                        vytvorSlozkuProgramu(); 
     214 
     215                        XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni())))); 
     216                        e.writeObject(nastaveni); 
     217                        e.close(); 
     218                        log.log(Level.INFO, "Nastavení bylo uloženo."); 
     219                } catch (FileNotFoundException ex) { 
     220                        log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex); 
     221                } catch (IOException ex) { 
     222                        log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex); 
     223                } 
     224        } 
     225 
     226        /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */ 
     227        private void ulozNastaveniGUI() { 
     228                nastaveni.setDatabaze(vstupDatabaze.getText()); 
     229                nastaveni.setDbHeslo(vstupDBheslo.getPassword()); 
     230                nastaveni.setDbJmeno(vstupDBjmeno.getText()); 
     231                nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue()); 
     232                nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword()); 
     233                nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText()); 
     234                nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue()); 
     235                nastaveni.setPostovniServer(vstupSMTPserver.getText()); 
     236                nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy()); 
     237        } 
     238 
     239        /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */ 
     240        private void nactiNastaveniGUI() { 
     241                vstupDatabaze.setText(nastaveni.getDatabaze()); 
     242                if (nastaveni.getDbHeslo() != null) { 
     243                        vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo())); 
     244                } 
     245                vstupDBjmeno.setText(nastaveni.getDbJmeno()); 
     246                vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav()); 
     247                if (nastaveni.getPostovniHeslo() != null) { 
     248                        vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo())); 
     249                } 
     250                vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno()); 
     251                vstupSMTPport.setValue(nastaveni.getPostovniPort()); 
     252                vstupSMTPserver.setText(nastaveni.getPostovniServer()); 
     253                prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci()); 
     254        } 
     255 
     256        protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     257                zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat); 
     258        } 
     259 
     260        protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) { 
     261                JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE); 
     262                if (loguj) { 
     263                        log.log(Level.INFO, "{0}: {1}", new Object[]{nadpis, text}); 
     264                } 
     265        } 
     266 
     267        protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     268                if (logovat) { 
     269                        log.log(zavaznost, strucnaZprava, vyjimka); 
     270                } 
     271 
     272                JXErrorPane chybovyPanel = new JXErrorPane(); 
     273                ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null); 
     274                chybovyPanel.setErrorInfo(chybovaInformace); 
     275                JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel); 
     276                dialog.setVisible(true); 
     277        } 
     278 
     279        private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     280                zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat); 
     281        } 
     282 
     283        private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) { 
     284                zobrazInformacniDialog(this, nadpis, text, loguj); 
     285        } 
     286 
     287        private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     288                zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat); 
     289        } 
     290 
     291        /** This method is called from within the constructor to 
     292        * initialize the form. 
     293        * WARNING: Do NOT modify this code. The content of this method is 
     294        * always regenerated by the Form Editor. 
     295        */ 
    296296    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents 
    297297    private void initComponents() { 
     
    927927 
    928928    private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed 
    929         setPanel(panelZprava); 
     929                setPanel(panelZprava); 
    930930    }//GEN-LAST:event_lnTextActionPerformed 
    931931 
    932932    private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed 
    933         setPanel(panelPrijemci); 
     933                setPanel(panelPrijemci); 
    934934    }//GEN-LAST:event_lnPrijemciActionPerformed 
    935935 
    936936    private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed 
    937         setPanel(panelOdeslat); 
     937                setPanel(panelOdeslat); 
    938938    }//GEN-LAST:event_lnOdeslatActionPerformed 
    939939 
    940940    private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed 
    941         setPanel(panelServer); 
     941                setPanel(panelServer); 
    942942    }//GEN-LAST:event_lnServerActionPerformed 
    943943 
    944944    private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed 
    945         setPanel(panelDatabaze); 
     945                setPanel(panelDatabaze); 
    946946    }//GEN-LAST:event_lnDatabazeActionPerformed 
    947947 
    948948    private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed 
    949         setPanel(panelVychoziPrijemci); 
     949                setPanel(panelVychoziPrijemci); 
    950950    }//GEN-LAST:event_lnVychoziPrijemciActionPerformed 
    951951 
    952952    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing 
    953         ulozNastaveni(); 
    954         log.log(Level.WARNING, "Ukončuji program."); 
     953                ulozNastaveni(); 
     954                log.log(Level.WARNING, "Ukončuji program."); 
    955955    }//GEN-LAST:event_formWindowClosing 
    956956 
    957     /** 
    958     * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců, 
    959     * ti se přidají až dodatečně, podle toho, 
    960     * jestli jde o zkušební nebo skutečné rozesílání. 
    961     */ 
    962     private HromadnaZprava getZprava() throws UnsupportedEncodingException { 
    963         HromadnaZprava zprava = new HromadnaZprava(); 
    964         zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); 
    965         zprava.setPredmet(vstupPredmet.getText()); 
    966         zprava.setText(vstupZprava.getText()); 
    967         zprava.setFormatHTML(vstupFormatHTML.isSelected()); 
    968  
    969         if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { 
    970             InternetAddress komu = new InternetAddress(); 
    971             komu.setPersonal(odpovedetKomuJmeno.getText()); 
    972             komu.setAddress(odpovedetKomuAdresa.getText()); 
    973             zprava.setOdpovedetKomu(komu); 
    974         } 
    975  
    976         return zprava; 
    977     } 
    978  
    979     /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */ 
    980     private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException { 
    981         ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>(); 
    982         Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci(); 
    983         Collection<InternetAddressKomu> adresySQL = getPrijemciSQL(); 
    984         Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy(); 
    985  
    986         if (adresyVychozi != null) { 
    987             vsichni.addAll(adresyVychozi); 
    988         } 
    989         if (adresySQL != null) { 
    990             vsichni.addAll(adresySQL); 
    991         } 
    992         if (adresyDodatecne != null) { 
    993             vsichni.addAll(adresyDodatecne); 
    994         } 
    995         return vsichni; 
    996     } 
     957        /** 
     958        * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců, 
     959        * ti se přidají až dodatečně, podle toho, 
     960        * jestli jde o zkušební nebo skutečné rozesílání. 
     961        */ 
     962        private HromadnaZprava getZprava() throws UnsupportedEncodingException { 
     963                HromadnaZprava zprava = new HromadnaZprava(); 
     964                zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); 
     965                zprava.setPredmet(vstupPredmet.getText()); 
     966                zprava.setText(vstupZprava.getText()); 
     967                zprava.setFormatHTML(vstupFormatHTML.isSelected()); 
     968 
     969                if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { 
     970                        InternetAddress komu = new InternetAddress(); 
     971                        komu.setPersonal(odpovedetKomuJmeno.getText()); 
     972                        komu.setAddress(odpovedetKomuAdresa.getText()); 
     973                        zprava.setOdpovedetKomu(komu); 
     974                } 
     975 
     976                return zprava; 
     977        } 
     978 
     979        /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */ 
     980        private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException { 
     981                ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>(); 
     982                Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci(); 
     983                Collection<InternetAddressKomu> adresySQL = getPrijemciSQL(); 
     984                Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy(); 
     985 
     986                if (adresyVychozi != null) { 
     987                        vsichni.addAll(adresyVychozi); 
     988                } 
     989                if (adresySQL != null) { 
     990                        vsichni.addAll(adresySQL); 
     991                } 
     992                if (adresyDodatecne != null) { 
     993                        vsichni.addAll(adresyDodatecne); 
     994                } 
     995                return vsichni; 
     996        } 
    997997 
    998998    private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed 
    999         try { 
    1000             ulozNastaveniGUI(); 
    1001             HromadnaZprava zprava = getZprava(); 
    1002             zprava.setPrijemci(getPrijemciVsichni()); 
    1003  
    1004             int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); 
    1005             if (volba == JOptionPane.YES_OPTION) { 
    1006                 odesli(zprava); 
    1007                 Postak.vypisPrijemce(zprava.getPrijemci()); 
    1008                 zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true); 
    1009             } 
    1010         } catch (Exception e) { 
    1011             zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
    1012         } 
     999                try { 
     1000                        ulozNastaveniGUI(); 
     1001                        HromadnaZprava zprava = getZprava(); 
     1002                        zprava.setPrijemci(getPrijemciVsichni()); 
     1003 
     1004                        int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); 
     1005                        if (volba == JOptionPane.YES_OPTION) { 
     1006                                odesli(zprava); 
     1007                                Postak.vypisPrijemce(zprava.getPrijemci()); 
     1008                                zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true); 
     1009                        } 
     1010                } catch (Exception e) { 
     1011                        zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
     1012                } 
    10131013}//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed 
    10141014 
    10151015    private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed 
    1016         try { 
    1017             ulozNastaveniGUI(); 
    1018             HromadnaZprava zprava = getZprava(); 
    1019             zprava.setPrijemci(prijemciZkusebni.getAdresy()); 
    1020  
    1021             odesli(zprava); 
    1022  
    1023             zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true); 
    1024         } catch (Exception e) { 
    1025             zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
    1026         } 
     1016                try { 
     1017                        ulozNastaveniGUI(); 
     1018                        HromadnaZprava zprava = getZprava(); 
     1019                        zprava.setPrijemci(prijemciZkusebni.getAdresy()); 
     1020 
     1021                        odesli(zprava); 
     1022 
     1023                        zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true); 
     1024                } catch (Exception e) { 
     1025                        zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
     1026                } 
    10271027    }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed 
    10281028 
    10291029    private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed 
    1030         try { 
     1030                try { 
    10311031            getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed 
    1032             zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false); 
    1033         } catch (SQLException e) { 
    1034             zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true); 
    1035         } 
    1036     } 
     1032                        zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false); 
     1033                } catch (SQLException e) { 
     1034                        zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true); 
     1035                } 
     1036        } 
    10371037 
    10381038    private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed 
    1039         try { 
     1039                try { 
    10401040            Collection<InternetAddressKomu> adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed 
    1041             if (adresy == null) { 
    1042                 zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false); 
    1043             } else { 
    1044                 zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false); 
    1045             } 
    1046         } catch (Exception e) { 
    1047             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1048         } 
    1049     } 
     1041                        if (adresy == null) { 
     1042                                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false); 
     1043                        } else { 
     1044                                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false); 
     1045                        } 
     1046                } catch (Exception e) { 
     1047                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1048                } 
     1049        } 
    10501050 
    10511051    private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed 
    1052         try { 
    1053             Collection<InternetAddressKomu> adresy = getPrijemciSQL(); 
    1054  
    1055             ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
     1052                try { 
     1053                        Collection<InternetAddressKomu> adresy = getPrijemciSQL(); 
     1054 
     1055                        ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
    10561056                        zobrazovac.setNastaveni(nastaveni); 
    1057             zobrazovac.setAdresy(adresy); 
    1058             zobrazovac.setLocationRelativeTo(this); 
    1059             zobrazovac.setVisible(true); 
    1060  
    1061         } catch (Exception e) { 
    1062             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1063         } 
     1057                        zobrazovac.setAdresy(adresy); 
     1058                        zobrazovac.setLocationRelativeTo(this); 
     1059                        zobrazovac.setVisible(true); 
     1060 
     1061                } catch (Exception e) { 
     1062                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1063                } 
    10641064    }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed 
    10651065 
    10661066    private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed 
    1067         try { 
    1068             Collection<InternetAddressKomu> adresy = getPrijemciVsichni(); 
    1069  
    1070             ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
    1071             zobrazovac.setAdresy(adresy); 
    1072             zobrazovac.setLocationRelativeTo(this); 
    1073             zobrazovac.setVisible(true); 
    1074  
    1075         } catch (Exception e) { 
    1076             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1077         } 
     1067                try { 
     1068                        Collection<InternetAddressKomu> adresy = getPrijemciVsichni(); 
     1069 
     1070                        ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
     1071                        zobrazovac.setAdresy(adresy); 
     1072                        zobrazovac.setLocationRelativeTo(this); 
     1073                        zobrazovac.setVisible(true); 
     1074 
     1075                } catch (Exception e) { 
     1076                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1077                } 
    10781078    }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed 
    10791079 
    10801080    private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed 
    1081         odpovedetKomuDialog.pack(); 
    1082         odpovedetKomuDialog.setLocationRelativeTo(this); 
    1083         odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL); 
    1084         odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo); 
    1085         odpovedetKomuDialog.setVisible(true); 
     1081                odpovedetKomuDialog.pack(); 
     1082                odpovedetKomuDialog.setLocationRelativeTo(this); 
     1083                odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL); 
     1084                odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo); 
     1085                odpovedetKomuDialog.setVisible(true); 
    10861086}//GEN-LAST:event_odpovedetKomuOdkazActionPerformed 
    10871087 
    10881088    private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed 
    1089         odpovedetKomuDialog.setVisible(false); 
     1089                odpovedetKomuDialog.setVisible(false); 
    10901090}//GEN-LAST:event_odpovedetKomuHotovoActionPerformed 
    10911091 
    1092     /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ 
    1093     private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException { 
    1094         if ("".equals(vstupSQL.getText())) { 
    1095             return null; 
    1096         } else { 
    1097             return getSpojeni().getAdresy(vstupSQL.getText()); 
    1098         } 
    1099     } 
    1100  
    1101     private DataSQL getSpojeni() throws SQLException { 
    1102         return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword()); 
    1103     } 
    1104  
    1105     /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */ 
    1106     private void odesli(HromadnaZprava zprava) throws MessagingException { 
    1107         setCursor(new Cursor(Cursor.WAIT_CURSOR)); 
    1108         try { 
    1109             postak.setNastaveni(nastaveni); 
    1110             postak.odesli(zprava); 
    1111  
    1112         } catch (MessagingException e) { 
    1113             throw e; 
    1114         } finally { 
    1115             setCursor(Cursor.getDefaultCursor()); 
    1116         } 
    1117     } 
    1118  
    1119     private void setPanel(JComponent komponenta) { 
    1120  
    1121         if (panel.getLayout() instanceof CardLayout) { 
    1122             CardLayout l = (CardLayout) panel.getLayout(); 
    1123             l.show(panel, komponenta.getName()); 
    1124         } else { 
    1125             log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout"); 
    1126         } 
    1127  
    1128     } 
    1129  
    1130     /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */ 
    1131     private void vyresitTabFocusProblem(JTextArea textArea) { 
    1132         textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); 
    1133         textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); 
    1134     } 
    1135  
    1136     public JXTaskPaneContainer getTaskPanel() { 
    1137         return taskPanel; 
    1138     } 
    1139  
    1140     /** 
    1141     * @param args the command line arguments 
    1142     */ 
    1143     public static void main(String args[]) { 
    1144         final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit")); 
    1145  
    1146         try { 
    1147             //LookAndFeel laf = UIManager.getLookAndFeel(); 
    1148  
    1149             //laf = new SubstanceLookAndFeel(); 
    1150             //laf = new SubstanceBusinessLookAndFeel(); 
    1151             //laf = new SubstanceBusinessBlueSteelLookAndFeel(); 
    1152             //laf = new SubstanceBusinessBlackSteelLookAndFeel(); 
    1153  
    1154             UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"); 
    1155         } catch (ClassNotFoundException ex) { 
    1156             log.log(Level.SEVERE, null, ex); 
    1157         } catch (InstantiationException ex) { 
    1158             log.log(Level.SEVERE, null, ex); 
    1159         } catch (IllegalAccessException ex) { 
    1160             log.log(Level.SEVERE, null, ex); 
    1161         } catch (UnsupportedLookAndFeelException ex) { 
    1162             log.log(Level.SEVERE, null, ex); 
    1163         } 
    1164  
    1165         java.awt.EventQueue.invokeLater(new Runnable() { 
    1166  
    1167             public void run() { 
    1168                 new SuperPostak(ladit, true).setVisible(true); 
    1169             } 
    1170         }); 
    1171     } 
     1092        /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ 
     1093        private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException { 
     1094                if ("".equals(vstupSQL.getText())) { 
     1095                        return null; 
     1096                } else { 
     1097                        return getSpojeni().getAdresy(vstupSQL.getText()); 
     1098                } 
     1099        } 
     1100 
     1101        private DataSQL getSpojeni() throws SQLException { 
     1102                return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword()); 
     1103        } 
     1104 
     1105        /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */ 
     1106        private void odesli(HromadnaZprava zprava) throws MessagingException { 
     1107                setCursor(new Cursor(Cursor.WAIT_CURSOR)); 
     1108                try { 
     1109                        postak.setNastaveni(nastaveni); 
     1110                        postak.odesli(zprava); 
     1111 
     1112                } catch (MessagingException e) { 
     1113                        throw e; 
     1114                } finally { 
     1115                        setCursor(Cursor.getDefaultCursor()); 
     1116                } 
     1117        } 
     1118 
     1119        private void setPanel(JComponent komponenta) { 
     1120 
     1121                if (panel.getLayout() instanceof CardLayout) { 
     1122                        CardLayout l = (CardLayout) panel.getLayout(); 
     1123                        l.show(panel, komponenta.getName()); 
     1124                } else { 
     1125                        log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout"); 
     1126                } 
     1127 
     1128        } 
     1129 
     1130        /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */ 
     1131        private void vyresitTabFocusProblem(JTextArea textArea) { 
     1132                textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); 
     1133                textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); 
     1134        } 
     1135 
     1136        public JXTaskPaneContainer getTaskPanel() { 
     1137                return taskPanel; 
     1138        } 
     1139 
     1140        /** 
     1141        * @param args the command line arguments 
     1142        */ 
     1143        public static void main(String args[]) { 
     1144                final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit")); 
     1145 
     1146                try { 
     1147                        //LookAndFeel laf = UIManager.getLookAndFeel(); 
     1148 
     1149                        //laf = new SubstanceLookAndFeel(); 
     1150                        //laf = new SubstanceBusinessLookAndFeel(); 
     1151                        //laf = new SubstanceBusinessBlueSteelLookAndFeel(); 
     1152                        //laf = new SubstanceBusinessBlackSteelLookAndFeel(); 
     1153 
     1154                        UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"); 
     1155                } catch (ClassNotFoundException ex) { 
     1156                        log.log(Level.SEVERE, null, ex); 
     1157                } catch (InstantiationException ex) { 
     1158                        log.log(Level.SEVERE, null, ex); 
     1159                } catch (IllegalAccessException ex) { 
     1160                        log.log(Level.SEVERE, null, ex); 
     1161                } catch (UnsupportedLookAndFeelException ex) { 
     1162                        log.log(Level.SEVERE, null, ex); 
     1163                } 
     1164 
     1165                java.awt.EventQueue.invokeLater(new Runnable() { 
     1166 
     1167                        public void run() { 
     1168                                new SuperPostak(ladit, true).setVisible(true); 
     1169                        } 
     1170                }); 
     1171        } 
    11721172    // Variables declaration - do not modify//GEN-BEGIN:variables 
    11731173    private javax.swing.JLabel jLabel1;