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 | */ |
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 | } |