1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java Sun Nov 23 22:19:20 2008 +0100
1.3 @@ -0,0 +1,1241 @@
1.4 +package cz.frantovo.superPostak;
1.5 +
1.6 +import cz.frantovo.postak.HromadnaZprava;
1.7 +import cz.frantovo.postak.InternetAddressKomu;
1.8 +import cz.frantovo.postak.Nastaveni;
1.9 +import cz.frantovo.postak.Postak;
1.10 +import java.awt.CardLayout;
1.11 +import java.awt.Component;
1.12 +import java.awt.Cursor;
1.13 +import java.awt.Dialog.ModalityType;
1.14 +import java.awt.KeyboardFocusManager;
1.15 +import java.beans.XMLDecoder;
1.16 +import java.beans.XMLEncoder;
1.17 +import java.io.BufferedInputStream;
1.18 +import java.io.BufferedOutputStream;
1.19 +import java.io.File;
1.20 +import java.io.FileInputStream;
1.21 +import java.io.FileNotFoundException;
1.22 +import java.io.FileOutputStream;
1.23 +import java.io.IOException;
1.24 +import java.io.UnsupportedEncodingException;
1.25 +import java.sql.SQLException;
1.26 +import java.util.ArrayList;
1.27 +import java.util.Collection;
1.28 +import java.util.logging.Level;
1.29 +import java.util.logging.Logger;
1.30 +import java.util.zip.GZIPInputStream;
1.31 +import java.util.zip.GZIPOutputStream;
1.32 +import javax.mail.MessagingException;
1.33 +import javax.mail.internet.InternetAddress;
1.34 +import javax.swing.JComponent;
1.35 +import javax.swing.JDialog;
1.36 +import javax.swing.JOptionPane;
1.37 +import javax.swing.JTextArea;
1.38 +import javax.swing.LookAndFeel;
1.39 +import javax.swing.UIManager;
1.40 +import javax.swing.UnsupportedLookAndFeelException;
1.41 +import org.jdesktop.swingx.JXErrorPane;
1.42 +import org.jdesktop.swingx.JXTaskPaneContainer;
1.43 +import org.jdesktop.swingx.error.ErrorInfo;
1.44 +import org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel;
1.45 +
1.46 +/**
1.47 + *
1.48 + * @author fiki
1.49 + */
1.50 +public class SuperPostak extends javax.swing.JFrame {
1.51 +
1.52 + /** Soubor, kde je uložené nastavení */
1.53 + private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz";
1.54 + private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore";
1.55 + private static final String NASTAVENI_SLOZKA = ".SuperPostak";
1.56 + private static final String DOMACI_ADRESAR = System.getProperty("user.home");
1.57 + private static Logger log = Logger.getLogger(SuperPostak.class.getName());
1.58 + private Nastaveni nastaveni = new Nastaveni();
1.59 + private Postak postak = new Postak(nastaveni);
1.60 +
1.61 + /**
1.62 + * Creates new form SuperPostak
1.63 + * @param ladit předvyplní testovací hodnoty - zprávu
1.64 + * @param exit při zavření okna ukončí program
1.65 + */
1.66 + public SuperPostak(boolean ladit, boolean exit) {
1.67 + log.log(Level.WARNING, "Program byl spuštěn.");
1.68 + nactiOvladaceJDBC();
1.69 + vytvorSlozkuProgramu();
1.70 + initComponents();
1.71 +
1.72 + nactiNastaveni();
1.73 + ulozNastaveni();
1.74 + nastaveni.setCestaKCertifikatum(getCestaKCertifikatum());
1.75 +
1.76 + inicializujCardLayout();
1.77 + setLocationRelativeTo(null);
1.78 +
1.79 + /** Vyřešíme problém TAB vs. Focus */
1.80 + vyresitTabFocusProblem(vstupSQL);
1.81 + vyresitTabFocusProblem(vstupZprava);
1.82 +
1.83 + /** Ladicí hodnoty */
1.84 + if (ladit) {
1.85 + nastavLadiciHodnoty();
1.86 + }
1.87 +
1.88 + if (exit) {
1.89 + setDefaultCloseOperation(EXIT_ON_CLOSE);
1.90 + }
1.91 +
1.92 +
1.93 + }
1.94 +
1.95 + private void inicializujCardLayout() {
1.96 + panelDatabaze.setName("panelDatabaze");
1.97 + panelOdeslat.setName("panelOdeslat");
1.98 + panelPrijemci.setName("panelPrijemci");
1.99 + panelServer.setName("panelServer");
1.100 + panelVychoziPrijemci.setName("panelVychoziPrijemci");
1.101 + panelZprava.setName("panelZprava");
1.102 +
1.103 + panel.add(panelDatabaze, panelDatabaze.getName());
1.104 + panel.add(panelOdeslat, panelOdeslat.getName());
1.105 + panel.add(panelPrijemci, panelPrijemci.getName());
1.106 + panel.add(panelServer, panelServer.getName());
1.107 + panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName());
1.108 + panel.add(panelZprava, panelZprava.getName());
1.109 +
1.110 + setPanel(panelZprava);
1.111 + pack();
1.112 + }
1.113 +
1.114 + /**
1.115 + * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami,
1.116 + * aby se dal program testovat jedním kliknutím.
1.117 + */
1.118 + private void nastavLadiciHodnoty() {
1.119 + try {
1.120 + vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz");
1.121 + vstupJmenoOdesilatele.setText("SuperPošťák");
1.122 + vstupPredmet.setText("Zkušební zpráva od SuperPošťáka");
1.123 + vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)");
1.124 + ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>();
1.125 + adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák"));
1.126 + prijemciZkusebni.setAdresy(adresy);
1.127 + } catch (UnsupportedEncodingException e) {
1.128 + log.log(Level.SEVERE, null, e);
1.129 + }
1.130 + }
1.131 +
1.132 + /**
1.133 + * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu.
1.134 + * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách.
1.135 + * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161
1.136 + */
1.137 + private void nactiOvladaceJDBC() {
1.138 + nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL");
1.139 + nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL");
1.140 + nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL");
1.141 + nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com");
1.142 + }
1.143 +
1.144 + /**
1.145 + * @param trida ovladač databáze, který se má načíst
1.146 + * @param jmeno název databáze
1.147 + */
1.148 + private void nactiOvladacJDBC(String trida, String jmeno) {
1.149 + try {
1.150 + Class.forName(trida);
1.151 + log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " byl úspěšně načten.");
1.152 + } catch (ClassNotFoundException e) {
1.153 + log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " se nepodařilo načíst.");
1.154 + }
1.155 + }
1.156 +
1.157 + /** Vrací plnou cestu k souboru s nastavením */
1.158 + protected static String getCestaKCertifikatum() {
1.159 + return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR;
1.160 + }
1.161 +
1.162 + /** Vrací plnou cestu k souboru s nastavením */
1.163 + protected static String getCestaKNastaveni() {
1.164 + return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR;
1.165 + }
1.166 +
1.167 + /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */
1.168 + protected static String getCestaKeSlozceProgramu() {
1.169 + return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator;
1.170 + }
1.171 +
1.172 + /** Načte nastavení ze souboru */
1.173 + private void nactiNastaveni() {
1.174 + try {
1.175 + XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni()))));
1.176 + Object xmlObjekt = d.readObject();
1.177 + d.close();
1.178 +
1.179 + if (xmlObjekt instanceof Nastaveni) {
1.180 + nastaveni = (Nastaveni) xmlObjekt;
1.181 + } else {
1.182 + nastaveni = new Nastaveni();
1.183 + log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí");
1.184 + }
1.185 +
1.186 + nactiNastaveniGUI();
1.187 +
1.188 + log.log(Level.INFO, "Nastavení bylo načteno.");
1.189 + } catch (FileNotFoundException ex) {
1.190 + log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex);
1.191 + } catch (IOException ex) {
1.192 + log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex);
1.193 + }
1.194 + }
1.195 +
1.196 + /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */
1.197 + private static boolean vytvorSlozkuProgramu() {
1.198 + if (new File(getCestaKeSlozceProgramu()).mkdirs()) {
1.199 + log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: " + getCestaKeSlozceProgramu());
1.200 + return true;
1.201 + } else {
1.202 + return false;
1.203 + }
1.204 + }
1.205 +
1.206 + /** Uloží nastavení do souboru */
1.207 + private void ulozNastaveni() {
1.208 + try {
1.209 + ulozNastaveniGUI();
1.210 +
1.211 + vytvorSlozkuProgramu();
1.212 +
1.213 + XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni()))));
1.214 + e.writeObject(nastaveni);
1.215 + e.close();
1.216 + log.log(Level.INFO, "Nastavení bylo uloženo.");
1.217 + } catch (FileNotFoundException ex) {
1.218 + log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex);
1.219 + } catch (IOException ex) {
1.220 + log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex);
1.221 + }
1.222 + }
1.223 +
1.224 + /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */
1.225 + private void ulozNastaveniGUI() {
1.226 + nastaveni.setDatabaze(vstupDatabaze.getText());
1.227 + nastaveni.setDbHeslo(vstupDBheslo.getPassword());
1.228 + nastaveni.setDbJmeno(vstupDBjmeno.getText());
1.229 + nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue());
1.230 + nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword());
1.231 + nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText());
1.232 + nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue());
1.233 + nastaveni.setPostovniServer(vstupSMTPserver.getText());
1.234 + nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy());
1.235 + }
1.236 +
1.237 + /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */
1.238 + private void nactiNastaveniGUI() {
1.239 + vstupDatabaze.setText(nastaveni.getDatabaze());
1.240 + if (nastaveni.getDbHeslo() != null) {
1.241 + vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo()));
1.242 + }
1.243 + vstupDBjmeno.setText(nastaveni.getDbJmeno());
1.244 + vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav());
1.245 + if (nastaveni.getPostovniHeslo() != null) {
1.246 + vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo()));
1.247 + }
1.248 + vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno());
1.249 + vstupSMTPport.setValue(nastaveni.getPostovniPort());
1.250 + vstupSMTPserver.setText(nastaveni.getPostovniServer());
1.251 + prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci());
1.252 + }
1.253 +
1.254 + protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
1.255 + zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat);
1.256 + }
1.257 +
1.258 + protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) {
1.259 + JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE);
1.260 + if (loguj) {
1.261 + log.log(Level.INFO, nadpis + ": " + text);
1.262 + }
1.263 + }
1.264 +
1.265 + protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
1.266 + if (logovat) {
1.267 + log.log(zavaznost, strucnaZprava, vyjimka);
1.268 + }
1.269 +
1.270 + JXErrorPane chybovyPanel = new JXErrorPane();
1.271 + ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null);
1.272 + chybovyPanel.setErrorInfo(chybovaInformace);
1.273 + JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel);
1.274 + dialog.setVisible(true);
1.275 + }
1.276 +
1.277 + private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
1.278 + zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat);
1.279 + }
1.280 +
1.281 + private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) {
1.282 + zobrazInformacniDialog(this, nadpis, text, loguj);
1.283 + }
1.284 +
1.285 + private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
1.286 + zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat);
1.287 + }
1.288 +
1.289 + /** This method is called from within the constructor to
1.290 + * initialize the form.
1.291 + * WARNING: Do NOT modify this code. The content of this method is
1.292 + * always regenerated by the Form Editor.
1.293 + */
1.294 + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
1.295 + private void initComponents() {
1.296 +
1.297 + panelDatabaze = new org.jdesktop.swingx.JXPanel();
1.298 + jLabel9 = new javax.swing.JLabel();
1.299 + vstupDatabaze = new javax.swing.JTextField();
1.300 + jLabel10 = new javax.swing.JLabel();
1.301 + vstupDBjmeno = new javax.swing.JTextField();
1.302 + vstupDBheslo = new javax.swing.JPasswordField();
1.303 + jLabel11 = new javax.swing.JLabel();
1.304 + vyzkousetPripojeniTlacitko = new javax.swing.JButton();
1.305 + vystupDBzprava = new javax.swing.JLabel();
1.306 + panelOdeslat = new org.jdesktop.swingx.JXPanel();
1.307 + jPanel1 = new javax.swing.JPanel();
1.308 + rozeslatZkusebniTlacitko = new javax.swing.JButton();
1.309 + rozeslatHromadnouZpravuTlacitko = new javax.swing.JButton();
1.310 + zobrazitVsechnyPrijemceTlacitko = new javax.swing.JButton();
1.311 + prijemciZkusebni = new cz.frantovo.superPostak.PanelPrijemcu();
1.312 + jSeparator2 = new javax.swing.JSeparator();
1.313 + jLabel14 = new javax.swing.JLabel();
1.314 + panelPrijemci = new org.jdesktop.swingx.JXPanel();
1.315 + jLabel13 = new javax.swing.JLabel();
1.316 + jScrollPane3 = new javax.swing.JScrollPane();
1.317 + vstupSQL = new javax.swing.JTextArea();
1.318 + vyzkousetSQLTlacitko = new javax.swing.JButton();
1.319 + vystupSQLZprava = new javax.swing.JLabel();
1.320 + prijemciDodatecni = new cz.frantovo.superPostak.PanelPrijemcu();
1.321 + jSeparator1 = new javax.swing.JSeparator();
1.322 + jLabel16 = new javax.swing.JLabel();
1.323 + zobrazitSQLPrijemceTlacitko = new javax.swing.JButton();
1.324 + panelServer = new org.jdesktop.swingx.JXPanel();
1.325 + jLabel4 = new javax.swing.JLabel();
1.326 + jLabel5 = new javax.swing.JLabel();
1.327 + vstupSMTPserver = new javax.swing.JTextField();
1.328 + vstupSMTPport = new javax.swing.JSpinner();
1.329 + napovedaSMTPscroll = new javax.swing.JScrollPane();
1.330 + napovedaSMTP = new javax.swing.JTextArea();
1.331 + jLabel6 = new javax.swing.JLabel();
1.332 + vstupSMTPjmeno = new javax.swing.JTextField();
1.333 + vstupSMTPheslo = new javax.swing.JPasswordField();
1.334 + jLabel7 = new javax.swing.JLabel();
1.335 + vstupSMTPlimitPrijemcu = new javax.swing.JSpinner();
1.336 + jLabel8 = new javax.swing.JLabel();
1.337 + panelVychoziPrijemci = new org.jdesktop.swingx.JXPanel();
1.338 + prijemciVychozi = new cz.frantovo.superPostak.PanelPrijemcu();
1.339 + jLabel12 = new javax.swing.JLabel();
1.340 + panelZprava = new org.jdesktop.swingx.JXPanel();
1.341 + jLabel1 = new javax.swing.JLabel();
1.342 + vstupPredmet = new javax.swing.JTextField();
1.343 + jLabel2 = new javax.swing.JLabel();
1.344 + vstupJmenoOdesilatele = new javax.swing.JTextField();
1.345 + vstupAdresaOdesilatele = new javax.swing.JTextField();
1.346 + jScrollPane1 = new javax.swing.JScrollPane();
1.347 + vstupZprava = new javax.swing.JTextArea();
1.348 + jLabel15 = new javax.swing.JLabel();
1.349 + vstupFormatHTML = new javax.swing.JCheckBox();
1.350 + odpovedetKomuOdkaz = new org.jdesktop.swingx.JXHyperlink();
1.351 + odpovedetKomuDialog = new javax.swing.JDialog();
1.352 + jLabel18 = new javax.swing.JLabel();
1.353 + jLabel19 = new javax.swing.JLabel();
1.354 + jLabel17 = new javax.swing.JLabel();
1.355 + odpovedetKomuJmeno = new javax.swing.JTextField();
1.356 + odpovedetKomuAdresa = new javax.swing.JTextField();
1.357 + odpovedetKomuHotovo = new javax.swing.JButton();
1.358 + jXHeader1 = new org.jdesktop.swingx.JXHeader();
1.359 + taskPanel = new org.jdesktop.swingx.JXTaskPaneContainer();
1.360 + jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane();
1.361 + lnText = new org.jdesktop.swingx.JXHyperlink();
1.362 + lnPrijemci = new org.jdesktop.swingx.JXHyperlink();
1.363 + lnOdeslat = new org.jdesktop.swingx.JXHyperlink();
1.364 + jXTaskPane2 = new org.jdesktop.swingx.JXTaskPane();
1.365 + lnServer = new org.jdesktop.swingx.JXHyperlink();
1.366 + lnDatabaze = new org.jdesktop.swingx.JXHyperlink();
1.367 + lnVychoziPrijemci = new org.jdesktop.swingx.JXHyperlink();
1.368 + panel = new org.jdesktop.swingx.JXPanel();
1.369 +
1.370 + jLabel9.setText("Databáze");
1.371 +
1.372 + jLabel10.setText("Jméno");
1.373 +
1.374 + jLabel11.setText("Heslo");
1.375 +
1.376 + vyzkousetPripojeniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N
1.377 + vyzkousetPripojeniTlacitko.setMnemonic('y');
1.378 + vyzkousetPripojeniTlacitko.setText("Vyzkoušet spojení");
1.379 + vyzkousetPripojeniTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.380 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.381 + vyzkousetPripojeniTlacitkoActionPerformed(evt);
1.382 + }
1.383 + });
1.384 +
1.385 + vystupDBzprava.setText(" ");
1.386 +
1.387 + javax.swing.GroupLayout panelDatabazeLayout = new javax.swing.GroupLayout(panelDatabaze);
1.388 + panelDatabaze.setLayout(panelDatabazeLayout);
1.389 + panelDatabazeLayout.setHorizontalGroup(
1.390 + panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.391 + .addGroup(panelDatabazeLayout.createSequentialGroup()
1.392 + .addContainerGap()
1.393 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.394 + .addGroup(panelDatabazeLayout.createSequentialGroup()
1.395 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.396 + .addComponent(jLabel9)
1.397 + .addComponent(jLabel10)
1.398 + .addComponent(jLabel11))
1.399 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.400 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.401 + .addComponent(vstupDatabaze, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
1.402 + .addComponent(vstupDBjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
1.403 + .addGroup(panelDatabazeLayout.createSequentialGroup()
1.404 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
1.405 + .addComponent(vstupDBheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE))))
1.406 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDatabazeLayout.createSequentialGroup()
1.407 + .addComponent(vystupDBzprava, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE)
1.408 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.409 + .addComponent(vyzkousetPripojeniTlacitko)))
1.410 + .addContainerGap())
1.411 + );
1.412 + panelDatabazeLayout.setVerticalGroup(
1.413 + panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.414 + .addGroup(panelDatabazeLayout.createSequentialGroup()
1.415 + .addContainerGap()
1.416 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.417 + .addComponent(jLabel9)
1.418 + .addComponent(vstupDatabaze, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.419 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.420 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.421 + .addComponent(jLabel10)
1.422 + .addComponent(vstupDBjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.423 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.424 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.425 + .addComponent(jLabel11)
1.426 + .addComponent(vstupDBheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.427 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
1.428 + .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.429 + .addComponent(vyzkousetPripojeniTlacitko)
1.430 + .addComponent(vystupDBzprava))
1.431 + .addContainerGap(183, Short.MAX_VALUE))
1.432 + );
1.433 +
1.434 + rozeslatZkusebniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/apply.png"))); // NOI18N
1.435 + rozeslatZkusebniTlacitko.setMnemonic('u');
1.436 + rozeslatZkusebniTlacitko.setText("Rozeslat zkušební");
1.437 + rozeslatZkusebniTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.438 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.439 + rozeslatZkusebniTlacitkoActionPerformed(evt);
1.440 + }
1.441 + });
1.442 +
1.443 + rozeslatHromadnouZpravuTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/adept_commit.png"))); // NOI18N
1.444 + rozeslatHromadnouZpravuTlacitko.setMnemonic('h');
1.445 + rozeslatHromadnouZpravuTlacitko.setText("Rozeslat hromadnou zprávu");
1.446 + rozeslatHromadnouZpravuTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.447 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.448 + rozeslatHromadnouZpravuTlacitkoActionPerformed(evt);
1.449 + }
1.450 + });
1.451 +
1.452 + zobrazitVsechnyPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N
1.453 + 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>");
1.454 + zobrazitVsechnyPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.455 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.456 + zobrazitVsechnyPrijemceTlacitkoActionPerformed(evt);
1.457 + }
1.458 + });
1.459 +
1.460 + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
1.461 + jPanel1.setLayout(jPanel1Layout);
1.462 + jPanel1Layout.setHorizontalGroup(
1.463 + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.464 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
1.465 + .addContainerGap(106, Short.MAX_VALUE)
1.466 + .addComponent(rozeslatZkusebniTlacitko)
1.467 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.468 + .addComponent(rozeslatHromadnouZpravuTlacitko)
1.469 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.470 + .addComponent(zobrazitVsechnyPrijemceTlacitko)
1.471 + .addContainerGap())
1.472 + );
1.473 + jPanel1Layout.setVerticalGroup(
1.474 + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.475 + .addGroup(jPanel1Layout.createSequentialGroup()
1.476 + .addContainerGap()
1.477 + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.478 + .addComponent(rozeslatHromadnouZpravuTlacitko)
1.479 + .addComponent(zobrazitVsechnyPrijemceTlacitko)
1.480 + .addComponent(rozeslatZkusebniTlacitko))
1.481 + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
1.482 + );
1.483 +
1.484 + jLabel14.setText("Zkušební příjemci");
1.485 +
1.486 + javax.swing.GroupLayout panelOdeslatLayout = new javax.swing.GroupLayout(panelOdeslat);
1.487 + panelOdeslat.setLayout(panelOdeslatLayout);
1.488 + panelOdeslatLayout.setHorizontalGroup(
1.489 + panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.490 + .addGroup(panelOdeslatLayout.createSequentialGroup()
1.491 + .addContainerGap()
1.492 + .addGroup(panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.493 + .addComponent(prijemciZkusebni, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE)
1.494 + .addComponent(jSeparator2, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE)
1.495 + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1.496 + .addComponent(jLabel14))
1.497 + .addContainerGap())
1.498 + );
1.499 + panelOdeslatLayout.setVerticalGroup(
1.500 + panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.501 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelOdeslatLayout.createSequentialGroup()
1.502 + .addContainerGap()
1.503 + .addComponent(jLabel14)
1.504 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.505 + .addComponent(prijemciZkusebni, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
1.506 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
1.507 + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.508 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.509 + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.510 + .addContainerGap())
1.511 + );
1.512 +
1.513 + jLabel13.setText("SQL dotaz");
1.514 +
1.515 + vstupSQL.setColumns(20);
1.516 + vstupSQL.setRows(5);
1.517 + jScrollPane3.setViewportView(vstupSQL);
1.518 +
1.519 + vyzkousetSQLTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N
1.520 + vyzkousetSQLTlacitko.setMnemonic('y');
1.521 + vyzkousetSQLTlacitko.setText("Vyzkoušet");
1.522 + vyzkousetSQLTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.523 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.524 + vyzkousetSQLTlacitkoActionPerformed(evt);
1.525 + }
1.526 + });
1.527 +
1.528 + vystupSQLZprava.setText(" ");
1.529 +
1.530 + prijemciDodatecni.setToolTipText("Zde můžete dopnit další přijemce.");
1.531 +
1.532 + jLabel16.setText("Dodateční příjemci:");
1.533 +
1.534 + zobrazitSQLPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N
1.535 + 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>");
1.536 + zobrazitSQLPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() {
1.537 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.538 + zobrazitSQLPrijemceTlacitkoActionPerformed(evt);
1.539 + }
1.540 + });
1.541 +
1.542 + javax.swing.GroupLayout panelPrijemciLayout = new javax.swing.GroupLayout(panelPrijemci);
1.543 + panelPrijemci.setLayout(panelPrijemciLayout);
1.544 + panelPrijemciLayout.setHorizontalGroup(
1.545 + panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.546 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPrijemciLayout.createSequentialGroup()
1.547 + .addContainerGap()
1.548 + .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.549 + .addComponent(prijemciDodatecni, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
1.550 + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
1.551 + .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
1.552 + .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.LEADING)
1.553 + .addGroup(panelPrijemciLayout.createSequentialGroup()
1.554 + .addComponent(vystupSQLZprava, javax.swing.GroupLayout.DEFAULT_SIZE, 52, Short.MAX_VALUE)
1.555 + .addGap(127, 127, 127)
1.556 + .addComponent(vyzkousetSQLTlacitko)
1.557 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.558 + .addComponent(zobrazitSQLPrijemceTlacitko))
1.559 + .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.LEADING))
1.560 + .addContainerGap())
1.561 + );
1.562 + panelPrijemciLayout.setVerticalGroup(
1.563 + panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.564 + .addGroup(panelPrijemciLayout.createSequentialGroup()
1.565 + .addContainerGap()
1.566 + .addComponent(jLabel13)
1.567 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.568 + .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.569 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.570 + .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.571 + .addComponent(vystupSQLZprava, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
1.572 + .addComponent(zobrazitSQLPrijemceTlacitko)
1.573 + .addComponent(vyzkousetSQLTlacitko))
1.574 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.575 + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
1.576 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.577 + .addComponent(jLabel16)
1.578 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.579 + .addComponent(prijemciDodatecni, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
1.580 + .addContainerGap())
1.581 + );
1.582 +
1.583 + jLabel4.setText("SMTP server");
1.584 +
1.585 + jLabel5.setText("Port");
1.586 +
1.587 + vstupSMTPserver.setText("localhost");
1.588 +
1.589 + vstupSMTPport.setValue(25);
1.590 +
1.591 + napovedaSMTP.setColumns(20);
1.592 + napovedaSMTP.setEditable(false);
1.593 + napovedaSMTP.setLineWrap(true);
1.594 + napovedaSMTP.setRows(5);
1.595 + napovedaSMTP.setText("Tip: některé SMTP servery mají omezený seznam počítačů, ze kterých přijímají poštu");
1.596 + napovedaSMTP.setWrapStyleWord(true);
1.597 + napovedaSMTPscroll.setViewportView(napovedaSMTP);
1.598 +
1.599 + jLabel6.setText("Jméno");
1.600 +
1.601 + jLabel7.setText("Heslo");
1.602 +
1.603 + vstupSMTPlimitPrijemcu.setValue(1000);
1.604 +
1.605 + jLabel8.setText("Limit příjemců");
1.606 +
1.607 + javax.swing.GroupLayout panelServerLayout = new javax.swing.GroupLayout(panelServer);
1.608 + panelServer.setLayout(panelServerLayout);
1.609 + panelServerLayout.setHorizontalGroup(
1.610 + panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.611 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelServerLayout.createSequentialGroup()
1.612 + .addContainerGap()
1.613 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.614 + .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE)
1.615 + .addGroup(panelServerLayout.createSequentialGroup()
1.616 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.617 + .addComponent(jLabel4)
1.618 + .addComponent(jLabel6)
1.619 + .addComponent(jLabel5)
1.620 + .addComponent(jLabel7)
1.621 + .addComponent(jLabel8))
1.622 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.623 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.624 + .addComponent(vstupSMTPserver, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
1.625 + .addComponent(vstupSMTPport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
1.626 + .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
1.627 + .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
1.628 + .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE))))
1.629 + .addContainerGap())
1.630 + );
1.631 + panelServerLayout.setVerticalGroup(
1.632 + panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.633 + .addGroup(panelServerLayout.createSequentialGroup()
1.634 + .addContainerGap()
1.635 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.636 + .addComponent(jLabel4)
1.637 + .addComponent(vstupSMTPserver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.638 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.639 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.640 + .addComponent(vstupSMTPport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.641 + .addComponent(jLabel5))
1.642 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.643 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.644 + .addComponent(jLabel6)
1.645 + .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.646 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.647 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.648 + .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.649 + .addComponent(jLabel7))
1.650 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.651 + .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.652 + .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.653 + .addComponent(jLabel8))
1.654 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
1.655 + .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
1.656 + .addContainerGap())
1.657 + );
1.658 +
1.659 + jLabel12.setText("Těmto lidem přijde hromadný e-mail vždy (netýká se zkušebního rozeslání zprávy).");
1.660 +
1.661 + javax.swing.GroupLayout panelVychoziPrijemciLayout = new javax.swing.GroupLayout(panelVychoziPrijemci);
1.662 + panelVychoziPrijemci.setLayout(panelVychoziPrijemciLayout);
1.663 + panelVychoziPrijemciLayout.setHorizontalGroup(
1.664 + panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.665 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelVychoziPrijemciLayout.createSequentialGroup()
1.666 + .addContainerGap()
1.667 + .addGroup(panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.668 + .addComponent(prijemciVychozi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
1.669 + .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE))
1.670 + .addContainerGap())
1.671 + );
1.672 + panelVychoziPrijemciLayout.setVerticalGroup(
1.673 + panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.674 + .addGroup(panelVychoziPrijemciLayout.createSequentialGroup()
1.675 + .addContainerGap()
1.676 + .addComponent(jLabel12)
1.677 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
1.678 + .addComponent(prijemciVychozi, javax.swing.GroupLayout.DEFAULT_SIZE, 261, Short.MAX_VALUE)
1.679 + .addContainerGap())
1.680 + );
1.681 +
1.682 + jLabel1.setLabelFor(vstupPredmet);
1.683 + jLabel1.setText("Předmět");
1.684 +
1.685 + vstupPredmet.addActionListener(new java.awt.event.ActionListener() {
1.686 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.687 + vstupPredmetActionPerformed(evt);
1.688 + }
1.689 + });
1.690 +
1.691 + jLabel2.setText("Jméno odesílatele");
1.692 +
1.693 + vstupZprava.setColumns(20);
1.694 + vstupZprava.setRows(5);
1.695 + jScrollPane1.setViewportView(vstupZprava);
1.696 +
1.697 + jLabel15.setText("Formát zprávy");
1.698 +
1.699 + vstupFormatHTML.setMnemonic('h');
1.700 + vstupFormatHTML.setText("HTML");
1.701 + vstupFormatHTML.setToolTipText("Při nezaškrtnutí se odešle jako prostý text");
1.702 +
1.703 + odpovedetKomuOdkaz.setForeground(javax.swing.UIManager.getDefaults().getColor("windowText"));
1.704 + odpovedetKomuOdkaz.setMnemonic('e');
1.705 + odpovedetKomuOdkaz.setText("Adresa odesílatele");
1.706 + odpovedetKomuOdkaz.setToolTipText("<html><p>Klikněte sem pro nastavení adresy,</p><p>na kterou mají chodit odpovědi</p></html>");
1.707 + odpovedetKomuOdkaz.setClickedColor(javax.swing.UIManager.getDefaults().getColor("windowText"));
1.708 + odpovedetKomuOdkaz.setUnclickedColor(javax.swing.UIManager.getDefaults().getColor("windowText"));
1.709 + odpovedetKomuOdkaz.addActionListener(new java.awt.event.ActionListener() {
1.710 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.711 + odpovedetKomuOdkazActionPerformed(evt);
1.712 + }
1.713 + });
1.714 +
1.715 + javax.swing.GroupLayout panelZpravaLayout = new javax.swing.GroupLayout(panelZprava);
1.716 + panelZprava.setLayout(panelZpravaLayout);
1.717 + panelZpravaLayout.setHorizontalGroup(
1.718 + panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.719 + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup()
1.720 + .addContainerGap()
1.721 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.722 + .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE)
1.723 + .addGroup(panelZpravaLayout.createSequentialGroup()
1.724 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.725 + .addGroup(panelZpravaLayout.createSequentialGroup()
1.726 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.727 + .addComponent(jLabel2)
1.728 + .addComponent(jLabel1))
1.729 + .addGap(17, 17, 17))
1.730 + .addGroup(panelZpravaLayout.createSequentialGroup()
1.731 + .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.732 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
1.733 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.734 + .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE)
1.735 + .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE)
1.736 + .addComponent(vstupPredmet, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE)))
1.737 + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelZpravaLayout.createSequentialGroup()
1.738 + .addComponent(jLabel15)
1.739 + .addGap(33, 33, 33)
1.740 + .addComponent(vstupFormatHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
1.741 + .addGap(247, 247, 247)))
1.742 + .addContainerGap())
1.743 + );
1.744 + panelZpravaLayout.setVerticalGroup(
1.745 + panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.746 + .addGroup(panelZpravaLayout.createSequentialGroup()
1.747 + .addContainerGap()
1.748 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.749 + .addComponent(jLabel1)
1.750 + .addComponent(vstupPredmet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.751 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.752 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.753 + .addComponent(jLabel2)
1.754 + .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.755 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.756 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.757 + .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.758 + .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.759 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.760 + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE)
1.761 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.762 + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.763 + .addComponent(jLabel15)
1.764 + .addComponent(vstupFormatHTML))
1.765 + .addContainerGap())
1.766 + );
1.767 +
1.768 + odpovedetKomuDialog.setTitle("Adresa pro odpovědi");
1.769 + odpovedetKomuDialog.setModal(true);
1.770 +
1.771 + jLabel18.setText("Jméno");
1.772 +
1.773 + jLabel19.setText("Adresa");
1.774 +
1.775 + 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>");
1.776 +
1.777 + odpovedetKomuHotovo.setText("Hotovo");
1.778 + odpovedetKomuHotovo.addActionListener(new java.awt.event.ActionListener() {
1.779 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.780 + odpovedetKomuHotovoActionPerformed(evt);
1.781 + }
1.782 + });
1.783 +
1.784 + javax.swing.GroupLayout odpovedetKomuDialogLayout = new javax.swing.GroupLayout(odpovedetKomuDialog.getContentPane());
1.785 + odpovedetKomuDialog.getContentPane().setLayout(odpovedetKomuDialogLayout);
1.786 + odpovedetKomuDialogLayout.setHorizontalGroup(
1.787 + odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.788 + .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
1.789 + .addContainerGap()
1.790 + .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.791 + .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
1.792 + .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.793 + .addComponent(jLabel19)
1.794 + .addComponent(jLabel18))
1.795 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.796 + .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.797 + .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE)
1.798 + .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE)))
1.799 + .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE)
1.800 + .addComponent(odpovedetKomuHotovo, javax.swing.GroupLayout.Alignment.TRAILING))
1.801 + .addContainerGap())
1.802 + );
1.803 + odpovedetKomuDialogLayout.setVerticalGroup(
1.804 + odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.805 + .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
1.806 + .addContainerGap()
1.807 + .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
1.808 + .addComponent(jLabel18)
1.809 + .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.810 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.811 + .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.812 + .addComponent(jLabel19)
1.813 + .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1.814 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.815 + .addComponent(jLabel17)
1.816 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1.817 + .addComponent(odpovedetKomuHotovo)
1.818 + .addContainerGap())
1.819 + );
1.820 +
1.821 + setTitle("SuperPošťák");
1.822 + addWindowListener(new java.awt.event.WindowAdapter() {
1.823 + public void windowClosing(java.awt.event.WindowEvent evt) {
1.824 + formWindowClosing(evt);
1.825 + }
1.826 + });
1.827 +
1.828 + jXHeader1.setDescription("Program pro posílání hromadných zpráv elektronickou poštou.\nNezneužívejte pro rozesílání spamu.");
1.829 + jXHeader1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/xfmail.png"))); // NOI18N
1.830 + jXHeader1.setTitle("SuperPošťák");
1.831 +
1.832 + taskPanel.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background"));
1.833 +
1.834 + jXTaskPane1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/mail_generic.png"))); // NOI18N
1.835 + jXTaskPane1.setTitle("Hromadná zpráva");
1.836 +
1.837 + lnText.setMnemonic('z');
1.838 + lnText.setText("Text zprávy");
1.839 + lnText.setActionCommand("Zpráva");
1.840 + lnText.addActionListener(new java.awt.event.ActionListener() {
1.841 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.842 + lnTextActionPerformed(evt);
1.843 + }
1.844 + });
1.845 + jXTaskPane1.getContentPane().add(lnText);
1.846 +
1.847 + lnPrijemci.setMnemonic('p');
1.848 + lnPrijemci.setText("Příjemci");
1.849 + lnPrijemci.addActionListener(new java.awt.event.ActionListener() {
1.850 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.851 + lnPrijemciActionPerformed(evt);
1.852 + }
1.853 + });
1.854 + jXTaskPane1.getContentPane().add(lnPrijemci);
1.855 +
1.856 + lnOdeslat.setMnemonic('o');
1.857 + lnOdeslat.setText("Odeslat");
1.858 + lnOdeslat.addActionListener(new java.awt.event.ActionListener() {
1.859 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.860 + lnOdeslatActionPerformed(evt);
1.861 + }
1.862 + });
1.863 + jXTaskPane1.getContentPane().add(lnOdeslat);
1.864 +
1.865 + taskPanel.add(jXTaskPane1);
1.866 +
1.867 + jXTaskPane2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/gear.png"))); // NOI18N
1.868 + jXTaskPane2.setTitle("Nastavení");
1.869 +
1.870 + lnServer.setMnemonic('s');
1.871 + lnServer.setText("Poštovní server");
1.872 + lnServer.addActionListener(new java.awt.event.ActionListener() {
1.873 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.874 + lnServerActionPerformed(evt);
1.875 + }
1.876 + });
1.877 + jXTaskPane2.getContentPane().add(lnServer);
1.878 +
1.879 + lnDatabaze.setMnemonic('d');
1.880 + lnDatabaze.setText("Databáze");
1.881 + lnDatabaze.addActionListener(new java.awt.event.ActionListener() {
1.882 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.883 + lnDatabazeActionPerformed(evt);
1.884 + }
1.885 + });
1.886 + jXTaskPane2.getContentPane().add(lnDatabaze);
1.887 +
1.888 + lnVychoziPrijemci.setMnemonic('v');
1.889 + lnVychoziPrijemci.setText("Výchozí příjemci");
1.890 + lnVychoziPrijemci.addActionListener(new java.awt.event.ActionListener() {
1.891 + public void actionPerformed(java.awt.event.ActionEvent evt) {
1.892 + lnVychoziPrijemciActionPerformed(evt);
1.893 + }
1.894 + });
1.895 + jXTaskPane2.getContentPane().add(lnVychoziPrijemci);
1.896 +
1.897 + taskPanel.add(jXTaskPane2);
1.898 +
1.899 + panel.setLayout(new java.awt.CardLayout());
1.900 +
1.901 + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1.902 + getContentPane().setLayout(layout);
1.903 + layout.setHorizontalGroup(
1.904 + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.905 + .addGroup(layout.createSequentialGroup()
1.906 + .addComponent(taskPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
1.907 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.908 + .addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, 342, Short.MAX_VALUE))
1.909 + .addComponent(jXHeader1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE)
1.910 + );
1.911 + layout.setVerticalGroup(
1.912 + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1.913 + .addGroup(layout.createSequentialGroup()
1.914 + .addComponent(jXHeader1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1.915 + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1.916 + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1.917 + .addComponent(taskPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE)
1.918 + .addComponent(panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE)))
1.919 + );
1.920 +
1.921 + pack();
1.922 + }// </editor-fold>//GEN-END:initComponents
1.923 + private void vstupPredmetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vstupPredmetActionPerformed
1.924 +
1.925 +}//GEN-LAST:event_vstupPredmetActionPerformed
1.926 +
1.927 + private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed
1.928 + setPanel(panelZprava);
1.929 + }//GEN-LAST:event_lnTextActionPerformed
1.930 +
1.931 + private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed
1.932 + setPanel(panelPrijemci);
1.933 + }//GEN-LAST:event_lnPrijemciActionPerformed
1.934 +
1.935 + private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed
1.936 + setPanel(panelOdeslat);
1.937 + }//GEN-LAST:event_lnOdeslatActionPerformed
1.938 +
1.939 + private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed
1.940 + setPanel(panelServer);
1.941 + }//GEN-LAST:event_lnServerActionPerformed
1.942 +
1.943 + private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed
1.944 + setPanel(panelDatabaze);
1.945 + }//GEN-LAST:event_lnDatabazeActionPerformed
1.946 +
1.947 + private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed
1.948 + setPanel(panelVychoziPrijemci);
1.949 + }//GEN-LAST:event_lnVychoziPrijemciActionPerformed
1.950 +
1.951 + private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
1.952 + ulozNastaveni();
1.953 + log.log(Level.WARNING, "Ukončuji program.");
1.954 + }//GEN-LAST:event_formWindowClosing
1.955 +
1.956 + /**
1.957 + * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců,
1.958 + * ti se přidají až dodatečně, podle toho,
1.959 + * jestli jde o zkušební nebo skutečné rozesílání.
1.960 + */
1.961 + private HromadnaZprava getZprava() throws UnsupportedEncodingException {
1.962 + HromadnaZprava zprava = new HromadnaZprava();
1.963 + zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText()));
1.964 + zprava.setPredmet(vstupPredmet.getText());
1.965 + zprava.setText(vstupZprava.getText());
1.966 + zprava.setFormatHTML(vstupFormatHTML.isSelected());
1.967 +
1.968 + if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) {
1.969 + InternetAddress komu = new InternetAddress();
1.970 + komu.setPersonal(odpovedetKomuJmeno.getText());
1.971 + komu.setAddress(odpovedetKomuAdresa.getText());
1.972 + zprava.setOdpovedetKomu(komu);
1.973 + }
1.974 +
1.975 + return zprava;
1.976 + }
1.977 +
1.978 + /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */
1.979 + private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException {
1.980 + ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>();
1.981 + Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci();
1.982 + Collection<InternetAddressKomu> adresySQL = getPrijemciSQL();
1.983 + Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy();
1.984 +
1.985 + if (adresyVychozi != null) {
1.986 + vsichni.addAll(adresyVychozi);
1.987 + }
1.988 + if (adresySQL != null) {
1.989 + vsichni.addAll(adresySQL);
1.990 + }
1.991 + if (adresyDodatecne != null) {
1.992 + vsichni.addAll(adresyDodatecne);
1.993 + }
1.994 + return vsichni;
1.995 + }
1.996 +
1.997 + private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
1.998 + try {
1.999 + ulozNastaveniGUI();
1.1000 + HromadnaZprava zprava = getZprava();
1.1001 + zprava.setPrijemci(getPrijemciVsichni());
1.1002 +
1.1003 + 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);
1.1004 + if (volba == JOptionPane.YES_OPTION) {
1.1005 + odesli(zprava);
1.1006 + Postak.vypisPrijemce(zprava.getPrijemci());
1.1007 + zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true);
1.1008 + }
1.1009 + } catch (Exception e) {
1.1010 + zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
1.1011 + }
1.1012 +}//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
1.1013 +
1.1014 + private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed
1.1015 + try {
1.1016 + ulozNastaveniGUI();
1.1017 + HromadnaZprava zprava = getZprava();
1.1018 + zprava.setPrijemci(prijemciZkusebni.getAdresy());
1.1019 +
1.1020 + odesli(zprava);
1.1021 +
1.1022 + zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true);
1.1023 + } catch (Exception e) {
1.1024 + zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
1.1025 + }
1.1026 + }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed
1.1027 +
1.1028 + private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed
1.1029 + try {
1.1030 + getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed
1.1031 + zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false);
1.1032 + } catch (SQLException e) {
1.1033 + zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true);
1.1034 + }
1.1035 + }
1.1036 +
1.1037 + private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed
1.1038 + try {
1.1039 + Collection<InternetAddressKomu> adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed
1.1040 + if (adresy == null) {
1.1041 + zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false);
1.1042 + } else {
1.1043 + zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false);
1.1044 + }
1.1045 + } catch (Exception e) {
1.1046 + zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
1.1047 + }
1.1048 + }
1.1049 +
1.1050 + private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
1.1051 + try {
1.1052 + Collection<InternetAddressKomu> adresy = getPrijemciSQL();
1.1053 +
1.1054 + ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
1.1055 + zobrazovac.setAdresy(adresy);
1.1056 + zobrazovac.setLocationRelativeTo(this);
1.1057 + zobrazovac.setVisible(true);
1.1058 +
1.1059 + } catch (Exception e) {
1.1060 + zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
1.1061 + }
1.1062 + }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
1.1063 +
1.1064 + private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
1.1065 + try {
1.1066 + Collection<InternetAddressKomu> adresy = getPrijemciVsichni();
1.1067 +
1.1068 + ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
1.1069 + zobrazovac.setAdresy(adresy);
1.1070 + zobrazovac.setLocationRelativeTo(this);
1.1071 + zobrazovac.setVisible(true);
1.1072 +
1.1073 + } catch (Exception e) {
1.1074 + zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
1.1075 + }
1.1076 + }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
1.1077 +
1.1078 + private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed
1.1079 + odpovedetKomuDialog.pack();
1.1080 + odpovedetKomuDialog.setLocationRelativeTo(this);
1.1081 + odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL);
1.1082 + odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo);
1.1083 + odpovedetKomuDialog.setVisible(true);
1.1084 +}//GEN-LAST:event_odpovedetKomuOdkazActionPerformed
1.1085 +
1.1086 + private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed
1.1087 + odpovedetKomuDialog.setVisible(false);
1.1088 +}//GEN-LAST:event_odpovedetKomuHotovoActionPerformed
1.1089 +
1.1090 + /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */
1.1091 + private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException {
1.1092 + if ("".equals(vstupSQL.getText())) {
1.1093 + return null;
1.1094 + } else {
1.1095 + return getSpojeni().getAdresy(vstupSQL.getText());
1.1096 + }
1.1097 + }
1.1098 +
1.1099 + private DataSQL getSpojeni() throws SQLException {
1.1100 + return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword());
1.1101 + }
1.1102 +
1.1103 + /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */
1.1104 + private void odesli(HromadnaZprava zprava) throws MessagingException {
1.1105 + setCursor(new Cursor(Cursor.WAIT_CURSOR));
1.1106 + try {
1.1107 + postak.setNastaveni(nastaveni);
1.1108 + postak.odesli(zprava);
1.1109 +
1.1110 + } catch (MessagingException e) {
1.1111 + throw e;
1.1112 + } finally {
1.1113 + setCursor(Cursor.getDefaultCursor());
1.1114 + }
1.1115 + }
1.1116 +
1.1117 + private void setPanel(JComponent komponenta) {
1.1118 +
1.1119 + if (panel.getLayout() instanceof CardLayout) {
1.1120 + CardLayout l = (CardLayout) panel.getLayout();
1.1121 + l.show(panel, komponenta.getName());
1.1122 + } else {
1.1123 + log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout");
1.1124 + }
1.1125 +
1.1126 + }
1.1127 +
1.1128 + /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */
1.1129 + private void vyresitTabFocusProblem(JTextArea textArea) {
1.1130 + textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null);
1.1131 + textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null);
1.1132 + }
1.1133 +
1.1134 + public JXTaskPaneContainer getTaskPanel() {
1.1135 + return taskPanel;
1.1136 + }
1.1137 +
1.1138 + /**
1.1139 + * @param args the command line arguments
1.1140 + */
1.1141 + public static void main(String args[]) {
1.1142 + final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit"));
1.1143 +
1.1144 + /**try {
1.1145 + //LookAndFeel laf = UIManager.getLookAndFeel();
1.1146 +
1.1147 + //laf = new SubstanceLookAndFeel();
1.1148 + //laf = new SubstanceBusinessLookAndFeel();
1.1149 + //laf = new SubstanceBusinessBlueSteelLookAndFeel();
1.1150 + //laf = new SubstanceBusinessBlackSteelLookAndFeel();
1.1151 +
1.1152 + UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel");
1.1153 + } catch (ClassNotFoundException ex) {
1.1154 + log.log(Level.SEVERE, null, ex);
1.1155 + } catch (InstantiationException ex) {
1.1156 + log.log(Level.SEVERE, null, ex);
1.1157 + } catch (IllegalAccessException ex) {
1.1158 + log.log(Level.SEVERE, null, ex);
1.1159 + } catch (UnsupportedLookAndFeelException ex) {
1.1160 + log.log(Level.SEVERE, null, ex);
1.1161 + } */
1.1162 +
1.1163 + java.awt.EventQueue.invokeLater(new Runnable() {
1.1164 +
1.1165 + public void run() {
1.1166 + new SuperPostak(ladit, true).setVisible(true);
1.1167 + }
1.1168 + });
1.1169 + }
1.1170 + // Variables declaration - do not modify//GEN-BEGIN:variables
1.1171 + private javax.swing.JLabel jLabel1;
1.1172 + private javax.swing.JLabel jLabel10;
1.1173 + private javax.swing.JLabel jLabel11;
1.1174 + private javax.swing.JLabel jLabel12;
1.1175 + private javax.swing.JLabel jLabel13;
1.1176 + private javax.swing.JLabel jLabel14;
1.1177 + private javax.swing.JLabel jLabel15;
1.1178 + private javax.swing.JLabel jLabel16;
1.1179 + private javax.swing.JLabel jLabel17;
1.1180 + private javax.swing.JLabel jLabel18;
1.1181 + private javax.swing.JLabel jLabel19;
1.1182 + private javax.swing.JLabel jLabel2;
1.1183 + private javax.swing.JLabel jLabel4;
1.1184 + private javax.swing.JLabel jLabel5;
1.1185 + private javax.swing.JLabel jLabel6;
1.1186 + private javax.swing.JLabel jLabel7;
1.1187 + private javax.swing.JLabel jLabel8;
1.1188 + private javax.swing.JLabel jLabel9;
1.1189 + private javax.swing.JPanel jPanel1;
1.1190 + private javax.swing.JScrollPane jScrollPane1;
1.1191 + private javax.swing.JScrollPane jScrollPane3;
1.1192 + private javax.swing.JSeparator jSeparator1;
1.1193 + private javax.swing.JSeparator jSeparator2;
1.1194 + private org.jdesktop.swingx.JXHeader jXHeader1;
1.1195 + private org.jdesktop.swingx.JXTaskPane jXTaskPane1;
1.1196 + private org.jdesktop.swingx.JXTaskPane jXTaskPane2;
1.1197 + private org.jdesktop.swingx.JXHyperlink lnDatabaze;
1.1198 + private org.jdesktop.swingx.JXHyperlink lnOdeslat;
1.1199 + private org.jdesktop.swingx.JXHyperlink lnPrijemci;
1.1200 + private org.jdesktop.swingx.JXHyperlink lnServer;
1.1201 + private org.jdesktop.swingx.JXHyperlink lnText;
1.1202 + private org.jdesktop.swingx.JXHyperlink lnVychoziPrijemci;
1.1203 + private javax.swing.JTextArea napovedaSMTP;
1.1204 + private javax.swing.JScrollPane napovedaSMTPscroll;
1.1205 + private javax.swing.JTextField odpovedetKomuAdresa;
1.1206 + private javax.swing.JDialog odpovedetKomuDialog;
1.1207 + private javax.swing.JButton odpovedetKomuHotovo;
1.1208 + private javax.swing.JTextField odpovedetKomuJmeno;
1.1209 + private org.jdesktop.swingx.JXHyperlink odpovedetKomuOdkaz;
1.1210 + private org.jdesktop.swingx.JXPanel panel;
1.1211 + private org.jdesktop.swingx.JXPanel panelDatabaze;
1.1212 + private org.jdesktop.swingx.JXPanel panelOdeslat;
1.1213 + private org.jdesktop.swingx.JXPanel panelPrijemci;
1.1214 + private org.jdesktop.swingx.JXPanel panelServer;
1.1215 + private org.jdesktop.swingx.JXPanel panelVychoziPrijemci;
1.1216 + private org.jdesktop.swingx.JXPanel panelZprava;
1.1217 + private cz.frantovo.superPostak.PanelPrijemcu prijemciDodatecni;
1.1218 + private cz.frantovo.superPostak.PanelPrijemcu prijemciVychozi;
1.1219 + private cz.frantovo.superPostak.PanelPrijemcu prijemciZkusebni;
1.1220 + private javax.swing.JButton rozeslatHromadnouZpravuTlacitko;
1.1221 + private javax.swing.JButton rozeslatZkusebniTlacitko;
1.1222 + private org.jdesktop.swingx.JXTaskPaneContainer taskPanel;
1.1223 + private javax.swing.JTextField vstupAdresaOdesilatele;
1.1224 + private javax.swing.JPasswordField vstupDBheslo;
1.1225 + private javax.swing.JTextField vstupDBjmeno;
1.1226 + private javax.swing.JTextField vstupDatabaze;
1.1227 + private javax.swing.JCheckBox vstupFormatHTML;
1.1228 + private javax.swing.JTextField vstupJmenoOdesilatele;
1.1229 + private javax.swing.JTextField vstupPredmet;
1.1230 + private javax.swing.JPasswordField vstupSMTPheslo;
1.1231 + private javax.swing.JTextField vstupSMTPjmeno;
1.1232 + private javax.swing.JSpinner vstupSMTPlimitPrijemcu;
1.1233 + private javax.swing.JSpinner vstupSMTPport;
1.1234 + private javax.swing.JTextField vstupSMTPserver;
1.1235 + private javax.swing.JTextArea vstupSQL;
1.1236 + private javax.swing.JTextArea vstupZprava;
1.1237 + private javax.swing.JLabel vystupDBzprava;
1.1238 + private javax.swing.JLabel vystupSQLZprava;
1.1239 + private javax.swing.JButton vyzkousetPripojeniTlacitko;
1.1240 + private javax.swing.JButton vyzkousetSQLTlacitko;
1.1241 + private javax.swing.JButton zobrazitSQLPrijemceTlacitko;
1.1242 + private javax.swing.JButton zobrazitVsechnyPrijemceTlacitko;
1.1243 + // End of variables declaration//GEN-END:variables
1.1244 +}