1 | package cz.frantovo.superPostak; |
---|
2 | |
---|
3 | import cz.frantovo.postak.HromadnaZprava; |
---|
4 | import cz.frantovo.postak.InternetAddressKomu; |
---|
5 | import cz.frantovo.postak.Nastaveni; |
---|
6 | import cz.frantovo.postak.Postak; |
---|
7 | import java.awt.CardLayout; |
---|
8 | import java.awt.Component; |
---|
9 | import java.awt.Cursor; |
---|
10 | import java.awt.Dialog.ModalityType; |
---|
11 | import java.awt.KeyboardFocusManager; |
---|
12 | import java.beans.XMLDecoder; |
---|
13 | import java.beans.XMLEncoder; |
---|
14 | import java.io.BufferedInputStream; |
---|
15 | import java.io.BufferedOutputStream; |
---|
16 | import java.io.File; |
---|
17 | import java.io.FileInputStream; |
---|
18 | import java.io.FileNotFoundException; |
---|
19 | import java.io.FileOutputStream; |
---|
20 | import java.io.IOException; |
---|
21 | import java.io.UnsupportedEncodingException; |
---|
22 | import java.sql.SQLException; |
---|
23 | import java.util.ArrayList; |
---|
24 | import java.util.Collection; |
---|
25 | import java.util.logging.Level; |
---|
26 | import java.util.logging.Logger; |
---|
27 | import java.util.zip.GZIPInputStream; |
---|
28 | import java.util.zip.GZIPOutputStream; |
---|
29 | import javax.mail.MessagingException; |
---|
30 | import javax.mail.internet.InternetAddress; |
---|
31 | import javax.swing.JComponent; |
---|
32 | import javax.swing.JDialog; |
---|
33 | import javax.swing.JOptionPane; |
---|
34 | import javax.swing.JTextArea; |
---|
35 | import javax.swing.UIManager; |
---|
36 | import javax.swing.UnsupportedLookAndFeelException; |
---|
37 | import org.jdesktop.swingx.JXErrorPane; |
---|
38 | import org.jdesktop.swingx.JXTaskPaneContainer; |
---|
39 | import org.jdesktop.swingx.error.ErrorInfo; |
---|
40 | |
---|
41 | /** |
---|
42 | * |
---|
43 | * @author fiki |
---|
44 | */ |
---|
45 | public class SuperPostak extends javax.swing.JFrame { |
---|
46 | |
---|
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 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); |
---|
74 | |
---|
75 | /** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */ |
---|
76 | prijemciDodatecni.setNastaveni(nastaveni); |
---|
77 | prijemciVychozi.setNastaveni(nastaveni); |
---|
78 | prijemciZkusebni.setNastaveni(nastaveni); |
---|
79 | |
---|
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 | */ |
---|
296 | // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents |
---|
297 | private void initComponents() { |
---|
298 | |
---|
299 | panelDatabaze = new org.jdesktop.swingx.JXPanel(); |
---|
300 | jLabel9 = new javax.swing.JLabel(); |
---|
301 | vstupDatabaze = new javax.swing.JTextField(); |
---|
302 | jLabel10 = new javax.swing.JLabel(); |
---|
303 | vstupDBjmeno = new javax.swing.JTextField(); |
---|
304 | vstupDBheslo = new javax.swing.JPasswordField(); |
---|
305 | jLabel11 = new javax.swing.JLabel(); |
---|
306 | vyzkousetPripojeniTlacitko = new javax.swing.JButton(); |
---|
307 | vystupDBzprava = new javax.swing.JLabel(); |
---|
308 | panelOdeslat = new org.jdesktop.swingx.JXPanel(); |
---|
309 | jPanel1 = new javax.swing.JPanel(); |
---|
310 | rozeslatZkusebniTlacitko = new javax.swing.JButton(); |
---|
311 | rozeslatHromadnouZpravuTlacitko = new javax.swing.JButton(); |
---|
312 | zobrazitVsechnyPrijemceTlacitko = new javax.swing.JButton(); |
---|
313 | prijemciZkusebni = new cz.frantovo.superPostak.PanelPrijemcu(); |
---|
314 | jSeparator2 = new javax.swing.JSeparator(); |
---|
315 | jLabel14 = new javax.swing.JLabel(); |
---|
316 | panelPrijemci = new org.jdesktop.swingx.JXPanel(); |
---|
317 | jLabel13 = new javax.swing.JLabel(); |
---|
318 | jScrollPane3 = new javax.swing.JScrollPane(); |
---|
319 | vstupSQL = new javax.swing.JTextArea(); |
---|
320 | vyzkousetSQLTlacitko = new javax.swing.JButton(); |
---|
321 | vystupSQLZprava = new javax.swing.JLabel(); |
---|
322 | prijemciDodatecni = new cz.frantovo.superPostak.PanelPrijemcu(); |
---|
323 | jSeparator1 = new javax.swing.JSeparator(); |
---|
324 | jLabel16 = new javax.swing.JLabel(); |
---|
325 | zobrazitSQLPrijemceTlacitko = new javax.swing.JButton(); |
---|
326 | panelServer = new org.jdesktop.swingx.JXPanel(); |
---|
327 | jLabel4 = new javax.swing.JLabel(); |
---|
328 | jLabel5 = new javax.swing.JLabel(); |
---|
329 | vstupSMTPserver = new javax.swing.JTextField(); |
---|
330 | vstupSMTPport = new javax.swing.JSpinner(); |
---|
331 | napovedaSMTPscroll = new javax.swing.JScrollPane(); |
---|
332 | napovedaSMTP = new javax.swing.JTextArea(); |
---|
333 | jLabel6 = new javax.swing.JLabel(); |
---|
334 | vstupSMTPjmeno = new javax.swing.JTextField(); |
---|
335 | vstupSMTPheslo = new javax.swing.JPasswordField(); |
---|
336 | jLabel7 = new javax.swing.JLabel(); |
---|
337 | vstupSMTPlimitPrijemcu = new javax.swing.JSpinner(); |
---|
338 | jLabel8 = new javax.swing.JLabel(); |
---|
339 | panelVychoziPrijemci = new org.jdesktop.swingx.JXPanel(); |
---|
340 | prijemciVychozi = new cz.frantovo.superPostak.PanelPrijemcu(); |
---|
341 | jLabel12 = new javax.swing.JLabel(); |
---|
342 | panelZprava = new org.jdesktop.swingx.JXPanel(); |
---|
343 | jLabel1 = new javax.swing.JLabel(); |
---|
344 | vstupPredmet = new javax.swing.JTextField(); |
---|
345 | jLabel2 = new javax.swing.JLabel(); |
---|
346 | vstupJmenoOdesilatele = new javax.swing.JTextField(); |
---|
347 | vstupAdresaOdesilatele = new javax.swing.JTextField(); |
---|
348 | jScrollPane1 = new javax.swing.JScrollPane(); |
---|
349 | vstupZprava = new javax.swing.JTextArea(); |
---|
350 | jLabel15 = new javax.swing.JLabel(); |
---|
351 | vstupFormatHTML = new javax.swing.JCheckBox(); |
---|
352 | odpovedetKomuOdkaz = new org.jdesktop.swingx.JXHyperlink(); |
---|
353 | odpovedetKomuDialog = new javax.swing.JDialog(); |
---|
354 | jLabel18 = new javax.swing.JLabel(); |
---|
355 | jLabel19 = new javax.swing.JLabel(); |
---|
356 | jLabel17 = new javax.swing.JLabel(); |
---|
357 | odpovedetKomuJmeno = new javax.swing.JTextField(); |
---|
358 | odpovedetKomuAdresa = new javax.swing.JTextField(); |
---|
359 | odpovedetKomuHotovo = new javax.swing.JButton(); |
---|
360 | jXHeader1 = new org.jdesktop.swingx.JXHeader(); |
---|
361 | taskPanel = new org.jdesktop.swingx.JXTaskPaneContainer(); |
---|
362 | jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane(); |
---|
363 | lnText = new org.jdesktop.swingx.JXHyperlink(); |
---|
364 | lnPrijemci = new org.jdesktop.swingx.JXHyperlink(); |
---|
365 | lnOdeslat = new org.jdesktop.swingx.JXHyperlink(); |
---|
366 | jXTaskPane2 = new org.jdesktop.swingx.JXTaskPane(); |
---|
367 | lnServer = new org.jdesktop.swingx.JXHyperlink(); |
---|
368 | lnDatabaze = new org.jdesktop.swingx.JXHyperlink(); |
---|
369 | lnVychoziPrijemci = new org.jdesktop.swingx.JXHyperlink(); |
---|
370 | panel = new org.jdesktop.swingx.JXPanel(); |
---|
371 | |
---|
372 | jLabel9.setText("Databáze"); |
---|
373 | |
---|
374 | jLabel10.setText("Jméno"); |
---|
375 | |
---|
376 | jLabel11.setText("Heslo"); |
---|
377 | |
---|
378 | vyzkousetPripojeniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N |
---|
379 | vyzkousetPripojeniTlacitko.setMnemonic('y'); |
---|
380 | vyzkousetPripojeniTlacitko.setText("Vyzkoušet spojení"); |
---|
381 | vyzkousetPripojeniTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
382 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
383 | vyzkousetPripojeniTlacitkoActionPerformed(evt); |
---|
384 | } |
---|
385 | }); |
---|
386 | |
---|
387 | vystupDBzprava.setText(" "); |
---|
388 | |
---|
389 | javax.swing.GroupLayout panelDatabazeLayout = new javax.swing.GroupLayout(panelDatabaze); |
---|
390 | panelDatabaze.setLayout(panelDatabazeLayout); |
---|
391 | panelDatabazeLayout.setHorizontalGroup( |
---|
392 | panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
393 | .addGroup(panelDatabazeLayout.createSequentialGroup() |
---|
394 | .addContainerGap() |
---|
395 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
396 | .addGroup(panelDatabazeLayout.createSequentialGroup() |
---|
397 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
398 | .addComponent(jLabel9) |
---|
399 | .addComponent(jLabel10) |
---|
400 | .addComponent(jLabel11)) |
---|
401 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
402 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
403 | .addComponent(vstupDatabaze, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE) |
---|
404 | .addComponent(vstupDBjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE) |
---|
405 | .addGroup(panelDatabazeLayout.createSequentialGroup() |
---|
406 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) |
---|
407 | .addComponent(vstupDBheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)))) |
---|
408 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDatabazeLayout.createSequentialGroup() |
---|
409 | .addComponent(vystupDBzprava, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE) |
---|
410 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
411 | .addComponent(vyzkousetPripojeniTlacitko))) |
---|
412 | .addContainerGap()) |
---|
413 | ); |
---|
414 | panelDatabazeLayout.setVerticalGroup( |
---|
415 | panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
416 | .addGroup(panelDatabazeLayout.createSequentialGroup() |
---|
417 | .addContainerGap() |
---|
418 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
419 | .addComponent(jLabel9) |
---|
420 | .addComponent(vstupDatabaze, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
421 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
422 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
423 | .addComponent(jLabel10) |
---|
424 | .addComponent(vstupDBjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
425 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
426 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
427 | .addComponent(jLabel11) |
---|
428 | .addComponent(vstupDBheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
429 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) |
---|
430 | .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
431 | .addComponent(vyzkousetPripojeniTlacitko) |
---|
432 | .addComponent(vystupDBzprava)) |
---|
433 | .addContainerGap(183, Short.MAX_VALUE)) |
---|
434 | ); |
---|
435 | |
---|
436 | rozeslatZkusebniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/apply.png"))); // NOI18N |
---|
437 | rozeslatZkusebniTlacitko.setMnemonic('u'); |
---|
438 | rozeslatZkusebniTlacitko.setText("Rozeslat zkušební"); |
---|
439 | rozeslatZkusebniTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
440 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
441 | rozeslatZkusebniTlacitkoActionPerformed(evt); |
---|
442 | } |
---|
443 | }); |
---|
444 | |
---|
445 | rozeslatHromadnouZpravuTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/adept_commit.png"))); // NOI18N |
---|
446 | rozeslatHromadnouZpravuTlacitko.setMnemonic('h'); |
---|
447 | rozeslatHromadnouZpravuTlacitko.setText("Rozeslat hromadnou zprávu"); |
---|
448 | rozeslatHromadnouZpravuTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
449 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
450 | rozeslatHromadnouZpravuTlacitkoActionPerformed(evt); |
---|
451 | } |
---|
452 | }); |
---|
453 | |
---|
454 | zobrazitVsechnyPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N |
---|
455 | zobrazitVsechnyPrijemceTlacitko.setToolTipText("<html>\nZobrazí seznam všech příjemcům, kterým bude odeslána zpráva.<br/>\n(Při velkých počtech záznamů může být tato operace náročná.)\n</html>"); |
---|
456 | zobrazitVsechnyPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
457 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
458 | zobrazitVsechnyPrijemceTlacitkoActionPerformed(evt); |
---|
459 | } |
---|
460 | }); |
---|
461 | |
---|
462 | javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); |
---|
463 | jPanel1.setLayout(jPanel1Layout); |
---|
464 | jPanel1Layout.setHorizontalGroup( |
---|
465 | jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
466 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() |
---|
467 | .addContainerGap(106, Short.MAX_VALUE) |
---|
468 | .addComponent(rozeslatZkusebniTlacitko) |
---|
469 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
470 | .addComponent(rozeslatHromadnouZpravuTlacitko) |
---|
471 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
472 | .addComponent(zobrazitVsechnyPrijemceTlacitko) |
---|
473 | .addContainerGap()) |
---|
474 | ); |
---|
475 | jPanel1Layout.setVerticalGroup( |
---|
476 | jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
477 | .addGroup(jPanel1Layout.createSequentialGroup() |
---|
478 | .addContainerGap() |
---|
479 | .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
480 | .addComponent(rozeslatHromadnouZpravuTlacitko) |
---|
481 | .addComponent(zobrazitVsechnyPrijemceTlacitko) |
---|
482 | .addComponent(rozeslatZkusebniTlacitko)) |
---|
483 | .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) |
---|
484 | ); |
---|
485 | |
---|
486 | jLabel14.setText("Zkušební příjemci"); |
---|
487 | |
---|
488 | javax.swing.GroupLayout panelOdeslatLayout = new javax.swing.GroupLayout(panelOdeslat); |
---|
489 | panelOdeslat.setLayout(panelOdeslatLayout); |
---|
490 | panelOdeslatLayout.setHorizontalGroup( |
---|
491 | panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
492 | .addGroup(panelOdeslatLayout.createSequentialGroup() |
---|
493 | .addContainerGap() |
---|
494 | .addGroup(panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
495 | .addComponent(prijemciZkusebni, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) |
---|
496 | .addComponent(jSeparator2, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) |
---|
497 | .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) |
---|
498 | .addComponent(jLabel14)) |
---|
499 | .addContainerGap()) |
---|
500 | ); |
---|
501 | panelOdeslatLayout.setVerticalGroup( |
---|
502 | panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
503 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelOdeslatLayout.createSequentialGroup() |
---|
504 | .addContainerGap() |
---|
505 | .addComponent(jLabel14) |
---|
506 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
507 | .addComponent(prijemciZkusebni, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) |
---|
508 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) |
---|
509 | .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
510 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
511 | .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
512 | .addContainerGap()) |
---|
513 | ); |
---|
514 | |
---|
515 | jLabel13.setText("SQL dotaz"); |
---|
516 | |
---|
517 | vstupSQL.setColumns(20); |
---|
518 | vstupSQL.setRows(5); |
---|
519 | jScrollPane3.setViewportView(vstupSQL); |
---|
520 | |
---|
521 | vyzkousetSQLTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N |
---|
522 | vyzkousetSQLTlacitko.setMnemonic('y'); |
---|
523 | vyzkousetSQLTlacitko.setText("Vyzkoušet"); |
---|
524 | vyzkousetSQLTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
525 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
526 | vyzkousetSQLTlacitkoActionPerformed(evt); |
---|
527 | } |
---|
528 | }); |
---|
529 | |
---|
530 | vystupSQLZprava.setText(" "); |
---|
531 | |
---|
532 | prijemciDodatecni.setToolTipText("Zde můžete dopnit další přijemce."); |
---|
533 | |
---|
534 | jLabel16.setText("Dodateční příjemci:"); |
---|
535 | |
---|
536 | zobrazitSQLPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N |
---|
537 | zobrazitSQLPrijemceTlacitko.setToolTipText("<html>\nZobrazí seznam adres načtených z databáze.<br/>\n(Při velkých počtech záznamů může být tato operace náročná.)\n</html>"); |
---|
538 | zobrazitSQLPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() { |
---|
539 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
540 | zobrazitSQLPrijemceTlacitkoActionPerformed(evt); |
---|
541 | } |
---|
542 | }); |
---|
543 | |
---|
544 | javax.swing.GroupLayout panelPrijemciLayout = new javax.swing.GroupLayout(panelPrijemci); |
---|
545 | panelPrijemci.setLayout(panelPrijemciLayout); |
---|
546 | panelPrijemciLayout.setHorizontalGroup( |
---|
547 | panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
548 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPrijemciLayout.createSequentialGroup() |
---|
549 | .addContainerGap() |
---|
550 | .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
551 | .addComponent(prijemciDodatecni, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) |
---|
552 | .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) |
---|
553 | .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) |
---|
554 | .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.LEADING) |
---|
555 | .addGroup(panelPrijemciLayout.createSequentialGroup() |
---|
556 | .addComponent(vystupSQLZprava, javax.swing.GroupLayout.DEFAULT_SIZE, 52, Short.MAX_VALUE) |
---|
557 | .addGap(127, 127, 127) |
---|
558 | .addComponent(vyzkousetSQLTlacitko) |
---|
559 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
560 | .addComponent(zobrazitSQLPrijemceTlacitko)) |
---|
561 | .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.LEADING)) |
---|
562 | .addContainerGap()) |
---|
563 | ); |
---|
564 | panelPrijemciLayout.setVerticalGroup( |
---|
565 | panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
566 | .addGroup(panelPrijemciLayout.createSequentialGroup() |
---|
567 | .addContainerGap() |
---|
568 | .addComponent(jLabel13) |
---|
569 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
570 | .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
571 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
572 | .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
573 | .addComponent(vystupSQLZprava, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
574 | .addComponent(zobrazitSQLPrijemceTlacitko) |
---|
575 | .addComponent(vyzkousetSQLTlacitko)) |
---|
576 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
577 | .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
578 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
579 | .addComponent(jLabel16) |
---|
580 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
581 | .addComponent(prijemciDodatecni, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) |
---|
582 | .addContainerGap()) |
---|
583 | ); |
---|
584 | |
---|
585 | jLabel4.setText("SMTP server"); |
---|
586 | |
---|
587 | jLabel5.setText("Port"); |
---|
588 | |
---|
589 | vstupSMTPserver.setText("localhost"); |
---|
590 | |
---|
591 | vstupSMTPport.setValue(25); |
---|
592 | |
---|
593 | napovedaSMTP.setColumns(20); |
---|
594 | napovedaSMTP.setEditable(false); |
---|
595 | napovedaSMTP.setLineWrap(true); |
---|
596 | napovedaSMTP.setRows(5); |
---|
597 | napovedaSMTP.setText("Tip: některé SMTP servery mají omezený seznam počítačů, ze kterých přijímají poštu"); |
---|
598 | napovedaSMTP.setWrapStyleWord(true); |
---|
599 | napovedaSMTPscroll.setViewportView(napovedaSMTP); |
---|
600 | |
---|
601 | jLabel6.setText("Jméno"); |
---|
602 | |
---|
603 | jLabel7.setText("Heslo"); |
---|
604 | |
---|
605 | vstupSMTPlimitPrijemcu.setValue(1000); |
---|
606 | |
---|
607 | jLabel8.setText("Limit příjemců"); |
---|
608 | |
---|
609 | javax.swing.GroupLayout panelServerLayout = new javax.swing.GroupLayout(panelServer); |
---|
610 | panelServer.setLayout(panelServerLayout); |
---|
611 | panelServerLayout.setHorizontalGroup( |
---|
612 | panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
613 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelServerLayout.createSequentialGroup() |
---|
614 | .addContainerGap() |
---|
615 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
616 | .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE) |
---|
617 | .addGroup(panelServerLayout.createSequentialGroup() |
---|
618 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
619 | .addComponent(jLabel4) |
---|
620 | .addComponent(jLabel6) |
---|
621 | .addComponent(jLabel5) |
---|
622 | .addComponent(jLabel7) |
---|
623 | .addComponent(jLabel8)) |
---|
624 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
625 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
626 | .addComponent(vstupSMTPserver, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) |
---|
627 | .addComponent(vstupSMTPport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) |
---|
628 | .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) |
---|
629 | .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) |
---|
630 | .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)))) |
---|
631 | .addContainerGap()) |
---|
632 | ); |
---|
633 | panelServerLayout.setVerticalGroup( |
---|
634 | panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
635 | .addGroup(panelServerLayout.createSequentialGroup() |
---|
636 | .addContainerGap() |
---|
637 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
638 | .addComponent(jLabel4) |
---|
639 | .addComponent(vstupSMTPserver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
640 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
641 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
642 | .addComponent(vstupSMTPport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
643 | .addComponent(jLabel5)) |
---|
644 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
645 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
646 | .addComponent(jLabel6) |
---|
647 | .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
648 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
649 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
650 | .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
651 | .addComponent(jLabel7)) |
---|
652 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
653 | .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
654 | .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
655 | .addComponent(jLabel8)) |
---|
656 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) |
---|
657 | .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE) |
---|
658 | .addContainerGap()) |
---|
659 | ); |
---|
660 | |
---|
661 | jLabel12.setText("Těmto lidem přijde hromadný e-mail vždy (netýká se zkušebního rozeslání zprávy)."); |
---|
662 | |
---|
663 | javax.swing.GroupLayout panelVychoziPrijemciLayout = new javax.swing.GroupLayout(panelVychoziPrijemci); |
---|
664 | panelVychoziPrijemci.setLayout(panelVychoziPrijemciLayout); |
---|
665 | panelVychoziPrijemciLayout.setHorizontalGroup( |
---|
666 | panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
667 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelVychoziPrijemciLayout.createSequentialGroup() |
---|
668 | .addContainerGap() |
---|
669 | .addGroup(panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
670 | .addComponent(prijemciVychozi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE) |
---|
671 | .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)) |
---|
672 | .addContainerGap()) |
---|
673 | ); |
---|
674 | panelVychoziPrijemciLayout.setVerticalGroup( |
---|
675 | panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
676 | .addGroup(panelVychoziPrijemciLayout.createSequentialGroup() |
---|
677 | .addContainerGap() |
---|
678 | .addComponent(jLabel12) |
---|
679 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) |
---|
680 | .addComponent(prijemciVychozi, javax.swing.GroupLayout.DEFAULT_SIZE, 261, Short.MAX_VALUE) |
---|
681 | .addContainerGap()) |
---|
682 | ); |
---|
683 | |
---|
684 | jLabel1.setLabelFor(vstupPredmet); |
---|
685 | jLabel1.setText("Předmět"); |
---|
686 | |
---|
687 | vstupPredmet.addActionListener(new java.awt.event.ActionListener() { |
---|
688 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
689 | vstupPredmetActionPerformed(evt); |
---|
690 | } |
---|
691 | }); |
---|
692 | |
---|
693 | jLabel2.setText("Jméno odesílatele"); |
---|
694 | |
---|
695 | vstupZprava.setColumns(20); |
---|
696 | vstupZprava.setRows(5); |
---|
697 | jScrollPane1.setViewportView(vstupZprava); |
---|
698 | |
---|
699 | jLabel15.setText("Formát zprávy"); |
---|
700 | |
---|
701 | vstupFormatHTML.setMnemonic('h'); |
---|
702 | vstupFormatHTML.setText("HTML"); |
---|
703 | vstupFormatHTML.setToolTipText("Při nezaškrtnutí se odešle jako prostý text"); |
---|
704 | |
---|
705 | odpovedetKomuOdkaz.setForeground(javax.swing.UIManager.getDefaults().getColor("windowText")); |
---|
706 | odpovedetKomuOdkaz.setMnemonic('e'); |
---|
707 | odpovedetKomuOdkaz.setText("Adresa odesílatele"); |
---|
708 | odpovedetKomuOdkaz.setToolTipText("<html><p>Klikněte sem pro nastavení adresy,</p><p>na kterou mají chodit odpovědi</p></html>"); |
---|
709 | odpovedetKomuOdkaz.setClickedColor(javax.swing.UIManager.getDefaults().getColor("windowText")); |
---|
710 | odpovedetKomuOdkaz.setUnclickedColor(javax.swing.UIManager.getDefaults().getColor("windowText")); |
---|
711 | odpovedetKomuOdkaz.addActionListener(new java.awt.event.ActionListener() { |
---|
712 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
713 | odpovedetKomuOdkazActionPerformed(evt); |
---|
714 | } |
---|
715 | }); |
---|
716 | |
---|
717 | javax.swing.GroupLayout panelZpravaLayout = new javax.swing.GroupLayout(panelZprava); |
---|
718 | panelZprava.setLayout(panelZpravaLayout); |
---|
719 | panelZpravaLayout.setHorizontalGroup( |
---|
720 | panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
721 | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup() |
---|
722 | .addContainerGap() |
---|
723 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
724 | .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE) |
---|
725 | .addGroup(panelZpravaLayout.createSequentialGroup() |
---|
726 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
727 | .addGroup(panelZpravaLayout.createSequentialGroup() |
---|
728 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
729 | .addComponent(jLabel2) |
---|
730 | .addComponent(jLabel1)) |
---|
731 | .addGap(17, 17, 17)) |
---|
732 | .addGroup(panelZpravaLayout.createSequentialGroup() |
---|
733 | .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
734 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))) |
---|
735 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
736 | .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) |
---|
737 | .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) |
---|
738 | .addComponent(vstupPredmet, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE))) |
---|
739 | .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelZpravaLayout.createSequentialGroup() |
---|
740 | .addComponent(jLabel15) |
---|
741 | .addGap(33, 33, 33) |
---|
742 | .addComponent(vstupFormatHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) |
---|
743 | .addGap(247, 247, 247))) |
---|
744 | .addContainerGap()) |
---|
745 | ); |
---|
746 | panelZpravaLayout.setVerticalGroup( |
---|
747 | panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
748 | .addGroup(panelZpravaLayout.createSequentialGroup() |
---|
749 | .addContainerGap() |
---|
750 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
751 | .addComponent(jLabel1) |
---|
752 | .addComponent(vstupPredmet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
753 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
754 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
755 | .addComponent(jLabel2) |
---|
756 | .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
757 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
758 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
759 | .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
760 | .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
761 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
762 | .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE) |
---|
763 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
764 | .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
765 | .addComponent(jLabel15) |
---|
766 | .addComponent(vstupFormatHTML)) |
---|
767 | .addContainerGap()) |
---|
768 | ); |
---|
769 | |
---|
770 | odpovedetKomuDialog.setTitle("Adresa pro odpovědi"); |
---|
771 | odpovedetKomuDialog.setModal(true); |
---|
772 | |
---|
773 | jLabel18.setText("Jméno"); |
---|
774 | |
---|
775 | jLabel19.setText("Adresa"); |
---|
776 | |
---|
777 | jLabel17.setText("<html>\n<p>Pokud bude příjemce na hromadnou zprávu odpovídat,</p>\n<p>odpověď přijde na tuto adresu.</p>\n<p>Pokud tyto údaje nevyplníte, nebo zadáte chybný e-mail,</p>\n<p>budou odpovědi chodit odesílateli.</p>\n</html>"); |
---|
778 | |
---|
779 | odpovedetKomuHotovo.setText("Hotovo"); |
---|
780 | odpovedetKomuHotovo.addActionListener(new java.awt.event.ActionListener() { |
---|
781 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
782 | odpovedetKomuHotovoActionPerformed(evt); |
---|
783 | } |
---|
784 | }); |
---|
785 | |
---|
786 | javax.swing.GroupLayout odpovedetKomuDialogLayout = new javax.swing.GroupLayout(odpovedetKomuDialog.getContentPane()); |
---|
787 | odpovedetKomuDialog.getContentPane().setLayout(odpovedetKomuDialogLayout); |
---|
788 | odpovedetKomuDialogLayout.setHorizontalGroup( |
---|
789 | odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
790 | .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() |
---|
791 | .addContainerGap() |
---|
792 | .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
793 | .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() |
---|
794 | .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
795 | .addComponent(jLabel19) |
---|
796 | .addComponent(jLabel18)) |
---|
797 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
798 | .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
799 | .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE) |
---|
800 | .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE))) |
---|
801 | .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE) |
---|
802 | .addComponent(odpovedetKomuHotovo, javax.swing.GroupLayout.Alignment.TRAILING)) |
---|
803 | .addContainerGap()) |
---|
804 | ); |
---|
805 | odpovedetKomuDialogLayout.setVerticalGroup( |
---|
806 | odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
807 | .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() |
---|
808 | .addContainerGap() |
---|
809 | .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
---|
810 | .addComponent(jLabel18) |
---|
811 | .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
812 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
813 | .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
814 | .addComponent(jLabel19) |
---|
815 | .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
---|
816 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
817 | .addComponent(jLabel17) |
---|
818 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) |
---|
819 | .addComponent(odpovedetKomuHotovo) |
---|
820 | .addContainerGap()) |
---|
821 | ); |
---|
822 | |
---|
823 | setTitle("SuperPošťák"); |
---|
824 | addWindowListener(new java.awt.event.WindowAdapter() { |
---|
825 | public void windowClosing(java.awt.event.WindowEvent evt) { |
---|
826 | formWindowClosing(evt); |
---|
827 | } |
---|
828 | }); |
---|
829 | |
---|
830 | jXHeader1.setDescription("Program pro posílání hromadných zpráv elektronickou poštou.\nNezneužívejte pro rozesílání spamu."); |
---|
831 | jXHeader1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/xfmail.png"))); // NOI18N |
---|
832 | jXHeader1.setTitle("SuperPošťák"); |
---|
833 | |
---|
834 | taskPanel.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); |
---|
835 | |
---|
836 | jXTaskPane1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/mail_generic.png"))); // NOI18N |
---|
837 | jXTaskPane1.setTitle("Hromadná zpráva"); |
---|
838 | |
---|
839 | lnText.setMnemonic('z'); |
---|
840 | lnText.setText("Text zprávy"); |
---|
841 | lnText.setActionCommand("Zpráva"); |
---|
842 | lnText.addActionListener(new java.awt.event.ActionListener() { |
---|
843 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
844 | lnTextActionPerformed(evt); |
---|
845 | } |
---|
846 | }); |
---|
847 | jXTaskPane1.getContentPane().add(lnText); |
---|
848 | |
---|
849 | lnPrijemci.setMnemonic('p'); |
---|
850 | lnPrijemci.setText("Příjemci"); |
---|
851 | lnPrijemci.addActionListener(new java.awt.event.ActionListener() { |
---|
852 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
853 | lnPrijemciActionPerformed(evt); |
---|
854 | } |
---|
855 | }); |
---|
856 | jXTaskPane1.getContentPane().add(lnPrijemci); |
---|
857 | |
---|
858 | lnOdeslat.setMnemonic('o'); |
---|
859 | lnOdeslat.setText("Odeslat"); |
---|
860 | lnOdeslat.addActionListener(new java.awt.event.ActionListener() { |
---|
861 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
862 | lnOdeslatActionPerformed(evt); |
---|
863 | } |
---|
864 | }); |
---|
865 | jXTaskPane1.getContentPane().add(lnOdeslat); |
---|
866 | |
---|
867 | taskPanel.add(jXTaskPane1); |
---|
868 | |
---|
869 | jXTaskPane2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/gear.png"))); // NOI18N |
---|
870 | jXTaskPane2.setTitle("Nastavení"); |
---|
871 | |
---|
872 | lnServer.setMnemonic('s'); |
---|
873 | lnServer.setText("Poštovní server"); |
---|
874 | lnServer.addActionListener(new java.awt.event.ActionListener() { |
---|
875 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
876 | lnServerActionPerformed(evt); |
---|
877 | } |
---|
878 | }); |
---|
879 | jXTaskPane2.getContentPane().add(lnServer); |
---|
880 | |
---|
881 | lnDatabaze.setMnemonic('d'); |
---|
882 | lnDatabaze.setText("Databáze"); |
---|
883 | lnDatabaze.addActionListener(new java.awt.event.ActionListener() { |
---|
884 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
885 | lnDatabazeActionPerformed(evt); |
---|
886 | } |
---|
887 | }); |
---|
888 | jXTaskPane2.getContentPane().add(lnDatabaze); |
---|
889 | |
---|
890 | lnVychoziPrijemci.setMnemonic('v'); |
---|
891 | lnVychoziPrijemci.setText("Výchozí příjemci"); |
---|
892 | lnVychoziPrijemci.addActionListener(new java.awt.event.ActionListener() { |
---|
893 | public void actionPerformed(java.awt.event.ActionEvent evt) { |
---|
894 | lnVychoziPrijemciActionPerformed(evt); |
---|
895 | } |
---|
896 | }); |
---|
897 | jXTaskPane2.getContentPane().add(lnVychoziPrijemci); |
---|
898 | |
---|
899 | taskPanel.add(jXTaskPane2); |
---|
900 | |
---|
901 | panel.setLayout(new java.awt.CardLayout()); |
---|
902 | |
---|
903 | javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); |
---|
904 | getContentPane().setLayout(layout); |
---|
905 | layout.setHorizontalGroup( |
---|
906 | layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
907 | .addGroup(layout.createSequentialGroup() |
---|
908 | .addComponent(taskPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
909 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
910 | .addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, 342, Short.MAX_VALUE)) |
---|
911 | .addComponent(jXHeader1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE) |
---|
912 | ); |
---|
913 | layout.setVerticalGroup( |
---|
914 | layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
---|
915 | .addGroup(layout.createSequentialGroup() |
---|
916 | .addComponent(jXHeader1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) |
---|
917 | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
---|
918 | .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) |
---|
919 | .addComponent(taskPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE) |
---|
920 | .addComponent(panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE))) |
---|
921 | ); |
---|
922 | |
---|
923 | pack(); |
---|
924 | }// </editor-fold>//GEN-END:initComponents |
---|
925 | private void vstupPredmetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vstupPredmetActionPerformed |
---|
926 | }//GEN-LAST:event_vstupPredmetActionPerformed |
---|
927 | |
---|
928 | private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed |
---|
929 | setPanel(panelZprava); |
---|
930 | }//GEN-LAST:event_lnTextActionPerformed |
---|
931 | |
---|
932 | private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed |
---|
933 | setPanel(panelPrijemci); |
---|
934 | }//GEN-LAST:event_lnPrijemciActionPerformed |
---|
935 | |
---|
936 | private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed |
---|
937 | setPanel(panelOdeslat); |
---|
938 | }//GEN-LAST:event_lnOdeslatActionPerformed |
---|
939 | |
---|
940 | private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed |
---|
941 | setPanel(panelServer); |
---|
942 | }//GEN-LAST:event_lnServerActionPerformed |
---|
943 | |
---|
944 | private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed |
---|
945 | setPanel(panelDatabaze); |
---|
946 | }//GEN-LAST:event_lnDatabazeActionPerformed |
---|
947 | |
---|
948 | private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed |
---|
949 | setPanel(panelVychoziPrijemci); |
---|
950 | }//GEN-LAST:event_lnVychoziPrijemciActionPerformed |
---|
951 | |
---|
952 | private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing |
---|
953 | ulozNastaveni(); |
---|
954 | log.log(Level.WARNING, "Ukončuji program."); |
---|
955 | }//GEN-LAST:event_formWindowClosing |
---|
956 | |
---|
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 | } |
---|
997 | |
---|
998 | 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 | } |
---|
1013 | }//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed |
---|
1014 | |
---|
1015 | 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 | } |
---|
1027 | }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed |
---|
1028 | |
---|
1029 | private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed |
---|
1030 | try { |
---|
1031 | 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 | } |
---|
1037 | |
---|
1038 | private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed |
---|
1039 | try { |
---|
1040 | 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 | } |
---|
1050 | |
---|
1051 | 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); |
---|
1056 | 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 | } |
---|
1064 | }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed |
---|
1065 | |
---|
1066 | 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 | } |
---|
1078 | }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed |
---|
1079 | |
---|
1080 | 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); |
---|
1086 | }//GEN-LAST:event_odpovedetKomuOdkazActionPerformed |
---|
1087 | |
---|
1088 | private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed |
---|
1089 | odpovedetKomuDialog.setVisible(false); |
---|
1090 | }//GEN-LAST:event_odpovedetKomuHotovoActionPerformed |
---|
1091 | |
---|
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 | } |
---|
1172 | // Variables declaration - do not modify//GEN-BEGIN:variables |
---|
1173 | private javax.swing.JLabel jLabel1; |
---|
1174 | private javax.swing.JLabel jLabel10; |
---|
1175 | private javax.swing.JLabel jLabel11; |
---|
1176 | private javax.swing.JLabel jLabel12; |
---|
1177 | private javax.swing.JLabel jLabel13; |
---|
1178 | private javax.swing.JLabel jLabel14; |
---|
1179 | private javax.swing.JLabel jLabel15; |
---|
1180 | private javax.swing.JLabel jLabel16; |
---|
1181 | private javax.swing.JLabel jLabel17; |
---|
1182 | private javax.swing.JLabel jLabel18; |
---|
1183 | private javax.swing.JLabel jLabel19; |
---|
1184 | private javax.swing.JLabel jLabel2; |
---|
1185 | private javax.swing.JLabel jLabel4; |
---|
1186 | private javax.swing.JLabel jLabel5; |
---|
1187 | private javax.swing.JLabel jLabel6; |
---|
1188 | private javax.swing.JLabel jLabel7; |
---|
1189 | private javax.swing.JLabel jLabel8; |
---|
1190 | private javax.swing.JLabel jLabel9; |
---|
1191 | private javax.swing.JPanel jPanel1; |
---|
1192 | private javax.swing.JScrollPane jScrollPane1; |
---|
1193 | private javax.swing.JScrollPane jScrollPane3; |
---|
1194 | private javax.swing.JSeparator jSeparator1; |
---|
1195 | private javax.swing.JSeparator jSeparator2; |
---|
1196 | private org.jdesktop.swingx.JXHeader jXHeader1; |
---|
1197 | private org.jdesktop.swingx.JXTaskPane jXTaskPane1; |
---|
1198 | private org.jdesktop.swingx.JXTaskPane jXTaskPane2; |
---|
1199 | private org.jdesktop.swingx.JXHyperlink lnDatabaze; |
---|
1200 | private org.jdesktop.swingx.JXHyperlink lnOdeslat; |
---|
1201 | private org.jdesktop.swingx.JXHyperlink lnPrijemci; |
---|
1202 | private org.jdesktop.swingx.JXHyperlink lnServer; |
---|
1203 | private org.jdesktop.swingx.JXHyperlink lnText; |
---|
1204 | private org.jdesktop.swingx.JXHyperlink lnVychoziPrijemci; |
---|
1205 | private javax.swing.JTextArea napovedaSMTP; |
---|
1206 | private javax.swing.JScrollPane napovedaSMTPscroll; |
---|
1207 | private javax.swing.JTextField odpovedetKomuAdresa; |
---|
1208 | private javax.swing.JDialog odpovedetKomuDialog; |
---|
1209 | private javax.swing.JButton odpovedetKomuHotovo; |
---|
1210 | private javax.swing.JTextField odpovedetKomuJmeno; |
---|
1211 | private org.jdesktop.swingx.JXHyperlink odpovedetKomuOdkaz; |
---|
1212 | private org.jdesktop.swingx.JXPanel panel; |
---|
1213 | private org.jdesktop.swingx.JXPanel panelDatabaze; |
---|
1214 | private org.jdesktop.swingx.JXPanel panelOdeslat; |
---|
1215 | private org.jdesktop.swingx.JXPanel panelPrijemci; |
---|
1216 | private org.jdesktop.swingx.JXPanel panelServer; |
---|
1217 | private org.jdesktop.swingx.JXPanel panelVychoziPrijemci; |
---|
1218 | private org.jdesktop.swingx.JXPanel panelZprava; |
---|
1219 | private cz.frantovo.superPostak.PanelPrijemcu prijemciDodatecni; |
---|
1220 | private cz.frantovo.superPostak.PanelPrijemcu prijemciVychozi; |
---|
1221 | private cz.frantovo.superPostak.PanelPrijemcu prijemciZkusebni; |
---|
1222 | private javax.swing.JButton rozeslatHromadnouZpravuTlacitko; |
---|
1223 | private javax.swing.JButton rozeslatZkusebniTlacitko; |
---|
1224 | private org.jdesktop.swingx.JXTaskPaneContainer taskPanel; |
---|
1225 | private javax.swing.JTextField vstupAdresaOdesilatele; |
---|
1226 | private javax.swing.JPasswordField vstupDBheslo; |
---|
1227 | private javax.swing.JTextField vstupDBjmeno; |
---|
1228 | private javax.swing.JTextField vstupDatabaze; |
---|
1229 | private javax.swing.JCheckBox vstupFormatHTML; |
---|
1230 | private javax.swing.JTextField vstupJmenoOdesilatele; |
---|
1231 | private javax.swing.JTextField vstupPredmet; |
---|
1232 | private javax.swing.JPasswordField vstupSMTPheslo; |
---|
1233 | private javax.swing.JTextField vstupSMTPjmeno; |
---|
1234 | private javax.swing.JSpinner vstupSMTPlimitPrijemcu; |
---|
1235 | private javax.swing.JSpinner vstupSMTPport; |
---|
1236 | private javax.swing.JTextField vstupSMTPserver; |
---|
1237 | private javax.swing.JTextArea vstupSQL; |
---|
1238 | private javax.swing.JTextArea vstupZprava; |
---|
1239 | private javax.swing.JLabel vystupDBzprava; |
---|
1240 | private javax.swing.JLabel vystupSQLZprava; |
---|
1241 | private javax.swing.JButton vyzkousetPripojeniTlacitko; |
---|
1242 | private javax.swing.JButton vyzkousetSQLTlacitko; |
---|
1243 | private javax.swing.JButton zobrazitSQLPrijemceTlacitko; |
---|
1244 | private javax.swing.JButton zobrazitVsechnyPrijemceTlacitko; |
---|
1245 | // End of variables declaration//GEN-END:variables |
---|
1246 | } |
---|