franta-hg@0: package cz.frantovo.superPostak; franta-hg@0: franta-hg@0: import cz.frantovo.postak.HromadnaZprava; franta-hg@0: import cz.frantovo.postak.InternetAddressKomu; franta-hg@0: import cz.frantovo.postak.Nastaveni; franta-hg@0: import cz.frantovo.postak.Postak; franta-hg@0: import java.awt.CardLayout; franta-hg@0: import java.awt.Component; franta-hg@0: import java.awt.Cursor; franta-hg@0: import java.awt.Dialog.ModalityType; franta-hg@0: import java.awt.KeyboardFocusManager; franta-hg@0: import java.beans.XMLDecoder; franta-hg@0: import java.beans.XMLEncoder; franta-hg@0: import java.io.BufferedInputStream; franta-hg@0: import java.io.BufferedOutputStream; franta-hg@0: import java.io.File; franta-hg@0: import java.io.FileInputStream; franta-hg@0: import java.io.FileNotFoundException; franta-hg@0: import java.io.FileOutputStream; franta-hg@0: import java.io.IOException; franta-hg@0: import java.io.UnsupportedEncodingException; franta-hg@0: import java.sql.SQLException; franta-hg@0: import java.util.ArrayList; franta-hg@0: import java.util.Collection; franta-hg@0: import java.util.logging.Level; franta-hg@0: import java.util.logging.Logger; franta-hg@0: import java.util.zip.GZIPInputStream; franta-hg@0: import java.util.zip.GZIPOutputStream; franta-hg@0: import javax.mail.MessagingException; franta-hg@0: import javax.mail.internet.InternetAddress; franta-hg@0: import javax.swing.JComponent; franta-hg@0: import javax.swing.JDialog; franta-hg@0: import javax.swing.JOptionPane; franta-hg@0: import javax.swing.JTextArea; franta-hg@0: import javax.swing.UIManager; franta-hg@0: import javax.swing.UnsupportedLookAndFeelException; franta-hg@0: import org.jdesktop.swingx.JXErrorPane; franta-hg@0: import org.jdesktop.swingx.JXTaskPaneContainer; franta-hg@0: import org.jdesktop.swingx.error.ErrorInfo; franta-hg@0: franta-hg@0: /** franta-hg@0: * franta-hg@0: * @author fiki franta-hg@0: */ franta-hg@0: public class SuperPostak extends javax.swing.JFrame { franta-hg@0: franta-hg@13: /** Soubor, kde je uložené nastavení */ franta-hg@13: private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz"; franta-hg@13: private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore"; franta-hg@13: private static final String NASTAVENI_SLOZKA = ".SuperPostak"; franta-hg@13: private static final String DOMACI_ADRESAR = System.getProperty("user.home"); franta-hg@13: private static final Logger log = Logger.getLogger(SuperPostak.class.getName()); franta-hg@13: private static final long serialVersionUID = -7026850569575604048L; franta-hg@13: private Nastaveni nastaveni = new Nastaveni(); franta-hg@13: private Postak postak = new Postak(nastaveni); franta-hg@0: franta-hg@13: /** franta-hg@13: * Creates new form SuperPostak franta-hg@13: * @param ladit předvyplní testovací hodnoty - zprávu franta-hg@13: * @param exit při zavření okna ukončí program franta-hg@13: */ franta-hg@13: public SuperPostak(boolean ladit, boolean exit) { franta-hg@13: log.log(Level.WARNING, "Program byl spuštěn."); franta-hg@13: nactiOvladaceJDBC(); franta-hg@13: vytvorSlozkuProgramu(); franta-hg@13: initComponents(); franta-hg@0: franta-hg@13: nactiNastaveni(); franta-hg@13: ulozNastaveni(); franta-hg@13: nastaveni.setCestaKCertifikatum(getCestaKCertifikatum()); franta-hg@0: franta-hg@13: inicializujCardLayout(); franta-hg@13: setLocationRelativeTo(null); franta-hg@0: franta-hg@5: /** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */ franta-hg@5: prijemciDodatecni.setNastaveni(nastaveni); franta-hg@5: prijemciVychozi.setNastaveni(nastaveni); franta-hg@5: prijemciZkusebni.setNastaveni(nastaveni); franta-hg@5: franta-hg@13: /** Vyřešíme problém TAB vs. Focus */ franta-hg@13: vyresitTabFocusProblem(vstupSQL); franta-hg@13: vyresitTabFocusProblem(vstupZprava); franta-hg@0: franta-hg@13: /** Ladicí hodnoty */ franta-hg@13: if (ladit) { franta-hg@13: nastavLadiciHodnoty(); franta-hg@13: } franta-hg@3: franta-hg@13: if (exit) { franta-hg@13: setDefaultCloseOperation(EXIT_ON_CLOSE); franta-hg@13: } franta-hg@0: franta-hg@0: franta-hg@13: } franta-hg@0: franta-hg@13: private void inicializujCardLayout() { franta-hg@13: panelDatabaze.setName("panelDatabaze"); franta-hg@13: panelOdeslat.setName("panelOdeslat"); franta-hg@13: panelPrijemci.setName("panelPrijemci"); franta-hg@13: panelServer.setName("panelServer"); franta-hg@13: panelVychoziPrijemci.setName("panelVychoziPrijemci"); franta-hg@13: panelZprava.setName("panelZprava"); franta-hg@0: franta-hg@13: panel.add(panelDatabaze, panelDatabaze.getName()); franta-hg@13: panel.add(panelOdeslat, panelOdeslat.getName()); franta-hg@13: panel.add(panelPrijemci, panelPrijemci.getName()); franta-hg@13: panel.add(panelServer, panelServer.getName()); franta-hg@13: panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName()); franta-hg@13: panel.add(panelZprava, panelZprava.getName()); franta-hg@0: franta-hg@13: setPanel(panelZprava); franta-hg@13: pack(); franta-hg@13: } franta-hg@0: franta-hg@13: /** franta-hg@13: * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami, franta-hg@13: * aby se dal program testovat jedním kliknutím. franta-hg@13: */ franta-hg@13: private void nastavLadiciHodnoty() { franta-hg@13: try { franta-hg@13: vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz"); franta-hg@13: vstupJmenoOdesilatele.setText("SuperPošťák"); franta-hg@13: vstupPredmet.setText("Zkušební zpráva od SuperPošťáka"); franta-hg@13: vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)"); franta-hg@13: ArrayList adresy = new ArrayList(); franta-hg@13: adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák")); franta-hg@13: prijemciZkusebni.setAdresy(adresy); franta-hg@13: } catch (UnsupportedEncodingException e) { franta-hg@13: log.log(Level.SEVERE, null, e); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: /** franta-hg@13: * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu. franta-hg@13: * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách. franta-hg@13: * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161 franta-hg@13: */ franta-hg@13: private void nactiOvladaceJDBC() { franta-hg@13: nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL"); franta-hg@13: nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL"); franta-hg@13: nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL"); franta-hg@13: nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com"); franta-hg@13: nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle"); franta-hg@13: } franta-hg@0: franta-hg@13: /** franta-hg@13: * @param trida ovladač databáze, který se má načíst franta-hg@13: * @param jmeno název databáze franta-hg@13: */ franta-hg@13: private void nactiOvladacJDBC(String trida, String jmeno) { franta-hg@13: try { franta-hg@13: Class.forName(trida); franta-hg@13: log.log(Level.INFO, "JDBC ovladač pro {0} byl úspěšně načten.", jmeno); franta-hg@13: } catch (ClassNotFoundException e) { franta-hg@13: log.log(Level.INFO, "JDBC ovladač pro {0} se nepodařilo načíst.", jmeno); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: /** Vrací plnou cestu k souboru s nastavením */ franta-hg@13: protected static String getCestaKCertifikatum() { franta-hg@13: return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR; franta-hg@13: } franta-hg@0: franta-hg@13: /** Vrací plnou cestu k souboru s nastavením */ franta-hg@13: protected static String getCestaKNastaveni() { franta-hg@13: return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR; franta-hg@13: } franta-hg@0: franta-hg@13: /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */ franta-hg@13: protected static String getCestaKeSlozceProgramu() { franta-hg@13: return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator; franta-hg@13: } franta-hg@0: franta-hg@13: /** Načte nastavení ze souboru */ franta-hg@13: private void nactiNastaveni() { franta-hg@13: try { franta-hg@13: XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni())))); franta-hg@13: Object xmlObjekt = d.readObject(); franta-hg@13: d.close(); franta-hg@0: franta-hg@13: if (xmlObjekt instanceof Nastaveni) { franta-hg@13: nastaveni = (Nastaveni) xmlObjekt; franta-hg@13: } else { franta-hg@13: nastaveni = new Nastaveni(); franta-hg@13: log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí"); franta-hg@13: } franta-hg@0: franta-hg@13: nactiNastaveniGUI(); franta-hg@0: franta-hg@13: log.log(Level.INFO, "Nastavení bylo načteno."); franta-hg@13: } catch (FileNotFoundException ex) { franta-hg@13: log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex); franta-hg@13: } catch (IOException ex) { franta-hg@13: log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */ franta-hg@13: private static boolean vytvorSlozkuProgramu() { franta-hg@13: if (new File(getCestaKeSlozceProgramu()).mkdirs()) { franta-hg@13: log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: {0}", getCestaKeSlozceProgramu()); franta-hg@13: return true; franta-hg@13: } else { franta-hg@13: return false; franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: /** Uloží nastavení do souboru */ franta-hg@13: private void ulozNastaveni() { franta-hg@13: try { franta-hg@13: ulozNastaveniGUI(); franta-hg@0: franta-hg@13: vytvorSlozkuProgramu(); franta-hg@0: franta-hg@13: XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni())))); franta-hg@13: e.writeObject(nastaveni); franta-hg@13: e.close(); franta-hg@13: log.log(Level.INFO, "Nastavení bylo uloženo."); franta-hg@13: } catch (FileNotFoundException ex) { franta-hg@13: log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex); franta-hg@13: } catch (IOException ex) { franta-hg@13: log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */ franta-hg@13: private void ulozNastaveniGUI() { franta-hg@13: nastaveni.setDatabaze(vstupDatabaze.getText()); franta-hg@13: nastaveni.setDbHeslo(vstupDBheslo.getPassword()); franta-hg@13: nastaveni.setDbJmeno(vstupDBjmeno.getText()); franta-hg@13: nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue()); franta-hg@13: nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword()); franta-hg@13: nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText()); franta-hg@13: nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue()); franta-hg@13: nastaveni.setPostovniServer(vstupSMTPserver.getText()); franta-hg@13: nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy()); franta-hg@13: } franta-hg@0: franta-hg@13: /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */ franta-hg@13: private void nactiNastaveniGUI() { franta-hg@13: vstupDatabaze.setText(nastaveni.getDatabaze()); franta-hg@13: if (nastaveni.getDbHeslo() != null) { franta-hg@13: vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo())); franta-hg@13: } franta-hg@13: vstupDBjmeno.setText(nastaveni.getDbJmeno()); franta-hg@13: vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav()); franta-hg@13: if (nastaveni.getPostovniHeslo() != null) { franta-hg@13: vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo())); franta-hg@13: } franta-hg@13: vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno()); franta-hg@13: vstupSMTPport.setValue(nastaveni.getPostovniPort()); franta-hg@13: vstupSMTPserver.setText(nastaveni.getPostovniServer()); franta-hg@13: prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci()); franta-hg@13: } franta-hg@0: franta-hg@13: protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { franta-hg@13: zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat); franta-hg@13: } franta-hg@0: franta-hg@13: protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) { franta-hg@13: JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE); franta-hg@13: if (loguj) { franta-hg@13: log.log(Level.INFO, "{0}: {1}", new Object[]{nadpis, text}); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { franta-hg@13: if (logovat) { franta-hg@13: log.log(zavaznost, strucnaZprava, vyjimka); franta-hg@13: } franta-hg@0: franta-hg@13: JXErrorPane chybovyPanel = new JXErrorPane(); franta-hg@13: ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null); franta-hg@13: chybovyPanel.setErrorInfo(chybovaInformace); franta-hg@13: JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel); franta-hg@13: dialog.setVisible(true); franta-hg@13: } franta-hg@0: franta-hg@13: private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { franta-hg@13: zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat); franta-hg@13: } franta-hg@0: franta-hg@13: private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) { franta-hg@13: zobrazInformacniDialog(this, nadpis, text, loguj); franta-hg@13: } franta-hg@0: franta-hg@13: private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { franta-hg@13: zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat); franta-hg@13: } franta-hg@0: franta-hg@13: /** This method is called from within the constructor to franta-hg@13: * initialize the form. franta-hg@13: * WARNING: Do NOT modify this code. The content of this method is franta-hg@13: * always regenerated by the Form Editor. franta-hg@13: */ franta-hg@0: // //GEN-BEGIN:initComponents franta-hg@0: private void initComponents() { franta-hg@0: franta-hg@0: panelDatabaze = new org.jdesktop.swingx.JXPanel(); franta-hg@0: jLabel9 = new javax.swing.JLabel(); franta-hg@0: vstupDatabaze = new javax.swing.JTextField(); franta-hg@0: jLabel10 = new javax.swing.JLabel(); franta-hg@0: vstupDBjmeno = new javax.swing.JTextField(); franta-hg@0: vstupDBheslo = new javax.swing.JPasswordField(); franta-hg@0: jLabel11 = new javax.swing.JLabel(); franta-hg@0: vyzkousetPripojeniTlacitko = new javax.swing.JButton(); franta-hg@0: vystupDBzprava = new javax.swing.JLabel(); franta-hg@0: panelOdeslat = new org.jdesktop.swingx.JXPanel(); franta-hg@0: jPanel1 = new javax.swing.JPanel(); franta-hg@0: rozeslatZkusebniTlacitko = new javax.swing.JButton(); franta-hg@0: rozeslatHromadnouZpravuTlacitko = new javax.swing.JButton(); franta-hg@0: zobrazitVsechnyPrijemceTlacitko = new javax.swing.JButton(); franta-hg@0: prijemciZkusebni = new cz.frantovo.superPostak.PanelPrijemcu(); franta-hg@0: jSeparator2 = new javax.swing.JSeparator(); franta-hg@0: jLabel14 = new javax.swing.JLabel(); franta-hg@0: panelPrijemci = new org.jdesktop.swingx.JXPanel(); franta-hg@0: jLabel13 = new javax.swing.JLabel(); franta-hg@0: jScrollPane3 = new javax.swing.JScrollPane(); franta-hg@0: vstupSQL = new javax.swing.JTextArea(); franta-hg@0: vyzkousetSQLTlacitko = new javax.swing.JButton(); franta-hg@0: vystupSQLZprava = new javax.swing.JLabel(); franta-hg@0: prijemciDodatecni = new cz.frantovo.superPostak.PanelPrijemcu(); franta-hg@0: jSeparator1 = new javax.swing.JSeparator(); franta-hg@0: jLabel16 = new javax.swing.JLabel(); franta-hg@0: zobrazitSQLPrijemceTlacitko = new javax.swing.JButton(); franta-hg@0: panelServer = new org.jdesktop.swingx.JXPanel(); franta-hg@0: jLabel4 = new javax.swing.JLabel(); franta-hg@0: jLabel5 = new javax.swing.JLabel(); franta-hg@0: vstupSMTPserver = new javax.swing.JTextField(); franta-hg@0: vstupSMTPport = new javax.swing.JSpinner(); franta-hg@0: napovedaSMTPscroll = new javax.swing.JScrollPane(); franta-hg@0: napovedaSMTP = new javax.swing.JTextArea(); franta-hg@0: jLabel6 = new javax.swing.JLabel(); franta-hg@0: vstupSMTPjmeno = new javax.swing.JTextField(); franta-hg@0: vstupSMTPheslo = new javax.swing.JPasswordField(); franta-hg@0: jLabel7 = new javax.swing.JLabel(); franta-hg@0: vstupSMTPlimitPrijemcu = new javax.swing.JSpinner(); franta-hg@0: jLabel8 = new javax.swing.JLabel(); franta-hg@0: panelVychoziPrijemci = new org.jdesktop.swingx.JXPanel(); franta-hg@0: prijemciVychozi = new cz.frantovo.superPostak.PanelPrijemcu(); franta-hg@0: jLabel12 = new javax.swing.JLabel(); franta-hg@0: panelZprava = new org.jdesktop.swingx.JXPanel(); franta-hg@0: jLabel1 = new javax.swing.JLabel(); franta-hg@0: vstupPredmet = new javax.swing.JTextField(); franta-hg@0: jLabel2 = new javax.swing.JLabel(); franta-hg@0: vstupJmenoOdesilatele = new javax.swing.JTextField(); franta-hg@0: vstupAdresaOdesilatele = new javax.swing.JTextField(); franta-hg@0: jScrollPane1 = new javax.swing.JScrollPane(); franta-hg@0: vstupZprava = new javax.swing.JTextArea(); franta-hg@0: jLabel15 = new javax.swing.JLabel(); franta-hg@0: vstupFormatHTML = new javax.swing.JCheckBox(); franta-hg@0: odpovedetKomuOdkaz = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: odpovedetKomuDialog = new javax.swing.JDialog(); franta-hg@0: jLabel18 = new javax.swing.JLabel(); franta-hg@0: jLabel19 = new javax.swing.JLabel(); franta-hg@0: jLabel17 = new javax.swing.JLabel(); franta-hg@0: odpovedetKomuJmeno = new javax.swing.JTextField(); franta-hg@0: odpovedetKomuAdresa = new javax.swing.JTextField(); franta-hg@0: odpovedetKomuHotovo = new javax.swing.JButton(); franta-hg@0: jXHeader1 = new org.jdesktop.swingx.JXHeader(); franta-hg@0: taskPanel = new org.jdesktop.swingx.JXTaskPaneContainer(); franta-hg@0: jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane(); franta-hg@0: lnText = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: lnPrijemci = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: lnOdeslat = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: jXTaskPane2 = new org.jdesktop.swingx.JXTaskPane(); franta-hg@0: lnServer = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: lnDatabaze = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: lnVychoziPrijemci = new org.jdesktop.swingx.JXHyperlink(); franta-hg@0: panel = new org.jdesktop.swingx.JXPanel(); franta-hg@0: franta-hg@0: jLabel9.setText("Databáze"); franta-hg@0: franta-hg@0: jLabel10.setText("Jméno"); franta-hg@0: franta-hg@0: jLabel11.setText("Heslo"); franta-hg@0: franta-hg@0: vyzkousetPripojeniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N franta-hg@0: vyzkousetPripojeniTlacitko.setMnemonic('y'); franta-hg@0: vyzkousetPripojeniTlacitko.setText("Vyzkoušet spojení"); franta-hg@0: vyzkousetPripojeniTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: vyzkousetPripojeniTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: vystupDBzprava.setText(" "); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelDatabazeLayout = new javax.swing.GroupLayout(panelDatabaze); franta-hg@0: panelDatabaze.setLayout(panelDatabazeLayout); franta-hg@0: panelDatabazeLayout.setHorizontalGroup( franta-hg@0: panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelDatabazeLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelDatabazeLayout.createSequentialGroup() franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(jLabel9) franta-hg@0: .addComponent(jLabel10) franta-hg@0: .addComponent(jLabel11)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(vstupDatabaze, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupDBjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE) franta-hg@0: .addGroup(panelDatabazeLayout.createSequentialGroup() franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) franta-hg@0: .addComponent(vstupDBheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)))) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDatabazeLayout.createSequentialGroup() franta-hg@0: .addComponent(vystupDBzprava, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(vyzkousetPripojeniTlacitko))) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelDatabazeLayout.setVerticalGroup( franta-hg@0: panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelDatabazeLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel9) franta-hg@0: .addComponent(vstupDatabaze, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel10) franta-hg@0: .addComponent(vstupDBjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel11) franta-hg@0: .addComponent(vstupDBheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) franta-hg@0: .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(vyzkousetPripojeniTlacitko) franta-hg@0: .addComponent(vystupDBzprava)) franta-hg@0: .addContainerGap(183, Short.MAX_VALUE)) franta-hg@0: ); franta-hg@0: franta-hg@0: rozeslatZkusebniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/apply.png"))); // NOI18N franta-hg@0: rozeslatZkusebniTlacitko.setMnemonic('u'); franta-hg@0: rozeslatZkusebniTlacitko.setText("Rozeslat zkušební"); franta-hg@0: rozeslatZkusebniTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: rozeslatZkusebniTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: rozeslatHromadnouZpravuTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/adept_commit.png"))); // NOI18N franta-hg@0: rozeslatHromadnouZpravuTlacitko.setMnemonic('h'); franta-hg@0: rozeslatHromadnouZpravuTlacitko.setText("Rozeslat hromadnou zprávu"); franta-hg@0: rozeslatHromadnouZpravuTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: rozeslatHromadnouZpravuTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: zobrazitVsechnyPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N franta-hg@0: zobrazitVsechnyPrijemceTlacitko.setToolTipText("\nZobrazí seznam všech příjemcům, kterým bude odeslána zpráva.
\n(Při velkých počtech záznamů může být tato operace náročná.)\n"); franta-hg@0: zobrazitVsechnyPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: zobrazitVsechnyPrijemceTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); franta-hg@0: jPanel1.setLayout(jPanel1Layout); franta-hg@0: jPanel1Layout.setHorizontalGroup( franta-hg@0: jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() franta-hg@0: .addContainerGap(106, Short.MAX_VALUE) franta-hg@0: .addComponent(rozeslatZkusebniTlacitko) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(rozeslatHromadnouZpravuTlacitko) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(zobrazitVsechnyPrijemceTlacitko) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: jPanel1Layout.setVerticalGroup( franta-hg@0: jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(jPanel1Layout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(rozeslatHromadnouZpravuTlacitko) franta-hg@0: .addComponent(zobrazitVsechnyPrijemceTlacitko) franta-hg@0: .addComponent(rozeslatZkusebniTlacitko)) franta-hg@0: .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) franta-hg@0: ); franta-hg@0: franta-hg@0: jLabel14.setText("Zkušební příjemci"); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelOdeslatLayout = new javax.swing.GroupLayout(panelOdeslat); franta-hg@0: panelOdeslat.setLayout(panelOdeslatLayout); franta-hg@0: panelOdeslatLayout.setHorizontalGroup( franta-hg@0: panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelOdeslatLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(prijemciZkusebni, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) franta-hg@0: .addComponent(jSeparator2, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) franta-hg@0: .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) franta-hg@0: .addComponent(jLabel14)) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelOdeslatLayout.setVerticalGroup( franta-hg@0: panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelOdeslatLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addComponent(jLabel14) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(prijemciZkusebni, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) franta-hg@0: .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: jLabel13.setText("SQL dotaz"); franta-hg@0: franta-hg@0: vstupSQL.setColumns(20); franta-hg@0: vstupSQL.setRows(5); franta-hg@0: jScrollPane3.setViewportView(vstupSQL); franta-hg@0: franta-hg@0: vyzkousetSQLTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N franta-hg@0: vyzkousetSQLTlacitko.setMnemonic('y'); franta-hg@0: vyzkousetSQLTlacitko.setText("Vyzkoušet"); franta-hg@0: vyzkousetSQLTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: vyzkousetSQLTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: vystupSQLZprava.setText(" "); franta-hg@0: franta-hg@0: prijemciDodatecni.setToolTipText("Zde můžete dopnit další přijemce."); franta-hg@0: franta-hg@0: jLabel16.setText("Dodateční příjemci:"); franta-hg@0: franta-hg@0: zobrazitSQLPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N franta-hg@0: zobrazitSQLPrijemceTlacitko.setToolTipText("\nZobrazí seznam adres načtených z databáze.
\n(Při velkých počtech záznamů může být tato operace náročná.)\n"); franta-hg@0: zobrazitSQLPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: zobrazitSQLPrijemceTlacitkoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelPrijemciLayout = new javax.swing.GroupLayout(panelPrijemci); franta-hg@0: panelPrijemci.setLayout(panelPrijemciLayout); franta-hg@0: panelPrijemciLayout.setHorizontalGroup( franta-hg@0: panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPrijemciLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(prijemciDodatecni, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) franta-hg@0: .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) franta-hg@0: .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE) franta-hg@0: .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelPrijemciLayout.createSequentialGroup() franta-hg@0: .addComponent(vystupSQLZprava, javax.swing.GroupLayout.DEFAULT_SIZE, 52, Short.MAX_VALUE) franta-hg@0: .addGap(127, 127, 127) franta-hg@0: .addComponent(vyzkousetSQLTlacitko) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(zobrazitSQLPrijemceTlacitko)) franta-hg@0: .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.LEADING)) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelPrijemciLayout.setVerticalGroup( franta-hg@0: panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelPrijemciLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addComponent(jLabel13) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(vystupSQLZprava, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addComponent(zobrazitSQLPrijemceTlacitko) franta-hg@0: .addComponent(vyzkousetSQLTlacitko)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jLabel16) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(prijemciDodatecni, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: jLabel4.setText("SMTP server"); franta-hg@0: franta-hg@0: jLabel5.setText("Port"); franta-hg@0: franta-hg@0: vstupSMTPserver.setText("localhost"); franta-hg@0: franta-hg@0: vstupSMTPport.setValue(25); franta-hg@0: franta-hg@0: napovedaSMTP.setColumns(20); franta-hg@0: napovedaSMTP.setEditable(false); franta-hg@0: napovedaSMTP.setLineWrap(true); franta-hg@0: napovedaSMTP.setRows(5); franta-hg@0: napovedaSMTP.setText("Tip: některé SMTP servery mají omezený seznam počítačů, ze kterých přijímají poštu"); franta-hg@0: napovedaSMTP.setWrapStyleWord(true); franta-hg@0: napovedaSMTPscroll.setViewportView(napovedaSMTP); franta-hg@0: franta-hg@0: jLabel6.setText("Jméno"); franta-hg@0: franta-hg@0: jLabel7.setText("Heslo"); franta-hg@0: franta-hg@0: vstupSMTPlimitPrijemcu.setValue(1000); franta-hg@0: franta-hg@0: jLabel8.setText("Limit příjemců"); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelServerLayout = new javax.swing.GroupLayout(panelServer); franta-hg@0: panelServer.setLayout(panelServerLayout); franta-hg@0: panelServerLayout.setHorizontalGroup( franta-hg@0: panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelServerLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE) franta-hg@0: .addGroup(panelServerLayout.createSequentialGroup() franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(jLabel4) franta-hg@0: .addComponent(jLabel6) franta-hg@0: .addComponent(jLabel5) franta-hg@0: .addComponent(jLabel7) franta-hg@0: .addComponent(jLabel8)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(vstupSMTPserver, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupSMTPport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)))) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelServerLayout.setVerticalGroup( franta-hg@0: panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelServerLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel4) franta-hg@0: .addComponent(vstupSMTPserver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(vstupSMTPport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addComponent(jLabel5)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel6) franta-hg@0: .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addComponent(jLabel7)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addComponent(jLabel8)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) franta-hg@0: .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: jLabel12.setText("Těmto lidem přijde hromadný e-mail vždy (netýká se zkušebního rozeslání zprávy)."); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelVychoziPrijemciLayout = new javax.swing.GroupLayout(panelVychoziPrijemci); franta-hg@0: panelVychoziPrijemci.setLayout(panelVychoziPrijemciLayout); franta-hg@0: panelVychoziPrijemciLayout.setHorizontalGroup( franta-hg@0: panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelVychoziPrijemciLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(prijemciVychozi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE) franta-hg@0: .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelVychoziPrijemciLayout.setVerticalGroup( franta-hg@0: panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelVychoziPrijemciLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addComponent(jLabel12) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) franta-hg@0: .addComponent(prijemciVychozi, javax.swing.GroupLayout.DEFAULT_SIZE, 261, Short.MAX_VALUE) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: jLabel1.setLabelFor(vstupPredmet); franta-hg@0: jLabel1.setText("Předmět"); franta-hg@0: franta-hg@0: vstupPredmet.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: vstupPredmetActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: jLabel2.setText("Jméno odesílatele"); franta-hg@0: franta-hg@0: vstupZprava.setColumns(20); franta-hg@0: vstupZprava.setRows(5); franta-hg@0: jScrollPane1.setViewportView(vstupZprava); franta-hg@0: franta-hg@0: jLabel15.setText("Formát zprávy"); franta-hg@0: franta-hg@0: vstupFormatHTML.setMnemonic('h'); franta-hg@0: vstupFormatHTML.setText("HTML"); franta-hg@0: vstupFormatHTML.setToolTipText("Při nezaškrtnutí se odešle jako prostý text"); franta-hg@0: franta-hg@0: odpovedetKomuOdkaz.setForeground(javax.swing.UIManager.getDefaults().getColor("windowText")); franta-hg@0: odpovedetKomuOdkaz.setMnemonic('e'); franta-hg@0: odpovedetKomuOdkaz.setText("Adresa odesílatele"); franta-hg@0: odpovedetKomuOdkaz.setToolTipText("

Klikněte sem pro nastavení adresy,

na kterou mají chodit odpovědi

"); franta-hg@0: odpovedetKomuOdkaz.setClickedColor(javax.swing.UIManager.getDefaults().getColor("windowText")); franta-hg@0: odpovedetKomuOdkaz.setUnclickedColor(javax.swing.UIManager.getDefaults().getColor("windowText")); franta-hg@0: odpovedetKomuOdkaz.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: odpovedetKomuOdkazActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: javax.swing.GroupLayout panelZpravaLayout = new javax.swing.GroupLayout(panelZprava); franta-hg@0: panelZprava.setLayout(panelZpravaLayout); franta-hg@0: panelZpravaLayout.setHorizontalGroup( franta-hg@0: panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE) franta-hg@0: .addGroup(panelZpravaLayout.createSequentialGroup() franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addGroup(panelZpravaLayout.createSequentialGroup() franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(jLabel2) franta-hg@0: .addComponent(jLabel1)) franta-hg@0: .addGap(17, 17, 17)) franta-hg@0: .addGroup(panelZpravaLayout.createSequentialGroup() franta-hg@0: .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))) franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) franta-hg@0: .addComponent(vstupPredmet, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE))) franta-hg@0: .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelZpravaLayout.createSequentialGroup() franta-hg@0: .addComponent(jLabel15) franta-hg@0: .addGap(33, 33, 33) franta-hg@0: .addComponent(vstupFormatHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) franta-hg@0: .addGap(247, 247, 247))) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: panelZpravaLayout.setVerticalGroup( franta-hg@0: panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(panelZpravaLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel1) franta-hg@0: .addComponent(vstupPredmet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel2) franta-hg@0: .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel15) franta-hg@0: .addComponent(vstupFormatHTML)) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: odpovedetKomuDialog.setTitle("Adresa pro odpovědi"); franta-hg@0: odpovedetKomuDialog.setModal(true); franta-hg@0: franta-hg@0: jLabel18.setText("Jméno"); franta-hg@0: franta-hg@0: jLabel19.setText("Adresa"); franta-hg@0: franta-hg@0: jLabel17.setText("\n

Pokud bude příjemce na hromadnou zprávu odpovídat,

\n

odpověď přijde na tuto adresu.

\n

Pokud tyto údaje nevyplníte, nebo zadáte chybný e-mail,

\n

budou odpovědi chodit odesílateli.

\n"); franta-hg@0: franta-hg@0: odpovedetKomuHotovo.setText("Hotovo"); franta-hg@0: odpovedetKomuHotovo.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: odpovedetKomuHotovoActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: javax.swing.GroupLayout odpovedetKomuDialogLayout = new javax.swing.GroupLayout(odpovedetKomuDialog.getContentPane()); franta-hg@0: odpovedetKomuDialog.getContentPane().setLayout(odpovedetKomuDialogLayout); franta-hg@0: odpovedetKomuDialogLayout.setHorizontalGroup( franta-hg@0: odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addComponent(jLabel19) franta-hg@0: .addComponent(jLabel18)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE) franta-hg@0: .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE))) franta-hg@0: .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE) franta-hg@0: .addComponent(odpovedetKomuHotovo, javax.swing.GroupLayout.Alignment.TRAILING)) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: odpovedetKomuDialogLayout.setVerticalGroup( franta-hg@0: odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createSequentialGroup() franta-hg@0: .addContainerGap() franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) franta-hg@0: .addComponent(jLabel18) franta-hg@0: .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(jLabel19) franta-hg@0: .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(jLabel17) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) franta-hg@0: .addComponent(odpovedetKomuHotovo) franta-hg@0: .addContainerGap()) franta-hg@0: ); franta-hg@0: franta-hg@0: setTitle("SuperPošťák"); franta-hg@0: addWindowListener(new java.awt.event.WindowAdapter() { franta-hg@0: public void windowClosing(java.awt.event.WindowEvent evt) { franta-hg@0: formWindowClosing(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: franta-hg@0: jXHeader1.setDescription("Program pro posílání hromadných zpráv elektronickou poštou.\nNezneužívejte pro rozesílání spamu."); franta-hg@0: jXHeader1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/xfmail.png"))); // NOI18N franta-hg@0: jXHeader1.setTitle("SuperPošťák"); franta-hg@0: franta-hg@0: taskPanel.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background")); franta-hg@0: franta-hg@0: jXTaskPane1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/mail_generic.png"))); // NOI18N franta-hg@0: jXTaskPane1.setTitle("Hromadná zpráva"); franta-hg@0: franta-hg@0: lnText.setMnemonic('z'); franta-hg@0: lnText.setText("Text zprávy"); franta-hg@0: lnText.setActionCommand("Zpráva"); franta-hg@0: lnText.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnTextActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane1.getContentPane().add(lnText); franta-hg@0: franta-hg@0: lnPrijemci.setMnemonic('p'); franta-hg@0: lnPrijemci.setText("Příjemci"); franta-hg@0: lnPrijemci.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnPrijemciActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane1.getContentPane().add(lnPrijemci); franta-hg@0: franta-hg@0: lnOdeslat.setMnemonic('o'); franta-hg@0: lnOdeslat.setText("Odeslat"); franta-hg@0: lnOdeslat.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnOdeslatActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane1.getContentPane().add(lnOdeslat); franta-hg@0: franta-hg@0: taskPanel.add(jXTaskPane1); franta-hg@0: franta-hg@0: jXTaskPane2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/gear.png"))); // NOI18N franta-hg@0: jXTaskPane2.setTitle("Nastavení"); franta-hg@0: franta-hg@0: lnServer.setMnemonic('s'); franta-hg@0: lnServer.setText("Poštovní server"); franta-hg@0: lnServer.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnServerActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane2.getContentPane().add(lnServer); franta-hg@0: franta-hg@0: lnDatabaze.setMnemonic('d'); franta-hg@0: lnDatabaze.setText("Databáze"); franta-hg@0: lnDatabaze.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnDatabazeActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane2.getContentPane().add(lnDatabaze); franta-hg@0: franta-hg@0: lnVychoziPrijemci.setMnemonic('v'); franta-hg@0: lnVychoziPrijemci.setText("Výchozí příjemci"); franta-hg@0: lnVychoziPrijemci.addActionListener(new java.awt.event.ActionListener() { franta-hg@0: public void actionPerformed(java.awt.event.ActionEvent evt) { franta-hg@0: lnVychoziPrijemciActionPerformed(evt); franta-hg@0: } franta-hg@0: }); franta-hg@0: jXTaskPane2.getContentPane().add(lnVychoziPrijemci); franta-hg@0: franta-hg@0: taskPanel.add(jXTaskPane2); franta-hg@0: franta-hg@0: panel.setLayout(new java.awt.CardLayout()); franta-hg@0: franta-hg@0: javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); franta-hg@0: getContentPane().setLayout(layout); franta-hg@0: layout.setHorizontalGroup( franta-hg@0: layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(layout.createSequentialGroup() franta-hg@0: .addComponent(taskPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, 342, Short.MAX_VALUE)) franta-hg@0: .addComponent(jXHeader1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE) franta-hg@0: ); franta-hg@0: layout.setVerticalGroup( franta-hg@0: layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) franta-hg@0: .addGroup(layout.createSequentialGroup() franta-hg@0: .addComponent(jXHeader1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) franta-hg@0: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) franta-hg@0: .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) franta-hg@0: .addComponent(taskPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE) franta-hg@0: .addComponent(panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE))) franta-hg@0: ); franta-hg@0: franta-hg@0: pack(); franta-hg@0: }//
//GEN-END:initComponents franta-hg@0: private void vstupPredmetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vstupPredmetActionPerformed franta-hg@0: }//GEN-LAST:event_vstupPredmetActionPerformed franta-hg@0: franta-hg@0: private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed franta-hg@13: setPanel(panelZprava); franta-hg@0: }//GEN-LAST:event_lnTextActionPerformed franta-hg@0: franta-hg@0: private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed franta-hg@13: setPanel(panelPrijemci); franta-hg@0: }//GEN-LAST:event_lnPrijemciActionPerformed franta-hg@0: franta-hg@0: private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed franta-hg@13: setPanel(panelOdeslat); franta-hg@0: }//GEN-LAST:event_lnOdeslatActionPerformed franta-hg@0: franta-hg@0: private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed franta-hg@13: setPanel(panelServer); franta-hg@0: }//GEN-LAST:event_lnServerActionPerformed franta-hg@0: franta-hg@0: private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed franta-hg@13: setPanel(panelDatabaze); franta-hg@0: }//GEN-LAST:event_lnDatabazeActionPerformed franta-hg@0: franta-hg@0: private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed franta-hg@13: setPanel(panelVychoziPrijemci); franta-hg@0: }//GEN-LAST:event_lnVychoziPrijemciActionPerformed franta-hg@0: franta-hg@0: private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing franta-hg@13: ulozNastaveni(); franta-hg@13: log.log(Level.WARNING, "Ukončuji program."); franta-hg@0: }//GEN-LAST:event_formWindowClosing franta-hg@0: franta-hg@13: /** franta-hg@13: * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců, franta-hg@13: * ti se přidají až dodatečně, podle toho, franta-hg@13: * jestli jde o zkušební nebo skutečné rozesílání. franta-hg@13: */ franta-hg@13: private HromadnaZprava getZprava() throws UnsupportedEncodingException { franta-hg@13: HromadnaZprava zprava = new HromadnaZprava(); franta-hg@13: zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); franta-hg@13: zprava.setPredmet(vstupPredmet.getText()); franta-hg@13: zprava.setText(vstupZprava.getText()); franta-hg@13: zprava.setFormatHTML(vstupFormatHTML.isSelected()); franta-hg@0: franta-hg@13: if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { franta-hg@13: InternetAddress komu = new InternetAddress(); franta-hg@13: komu.setPersonal(odpovedetKomuJmeno.getText()); franta-hg@13: komu.setAddress(odpovedetKomuAdresa.getText()); franta-hg@13: zprava.setOdpovedetKomu(komu); franta-hg@13: } franta-hg@0: franta-hg@13: return zprava; franta-hg@13: } franta-hg@0: franta-hg@13: /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */ franta-hg@13: private ArrayList getPrijemciVsichni() throws SQLException, UnsupportedEncodingException { franta-hg@13: ArrayList vsichni = new ArrayList(); franta-hg@13: Collection adresyVychozi = nastaveni.getVychoziPrijemci(); franta-hg@13: Collection adresySQL = getPrijemciSQL(); franta-hg@13: Collection adresyDodatecne = prijemciDodatecni.getAdresy(); franta-hg@0: franta-hg@13: if (adresyVychozi != null) { franta-hg@13: vsichni.addAll(adresyVychozi); franta-hg@13: } franta-hg@13: if (adresySQL != null) { franta-hg@13: vsichni.addAll(adresySQL); franta-hg@13: } franta-hg@13: if (adresyDodatecne != null) { franta-hg@13: vsichni.addAll(adresyDodatecne); franta-hg@13: } franta-hg@13: return vsichni; franta-hg@13: } franta-hg@0: franta-hg@0: private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed franta-hg@13: try { franta-hg@13: ulozNastaveniGUI(); franta-hg@13: HromadnaZprava zprava = getZprava(); franta-hg@13: zprava.setPrijemci(getPrijemciVsichni()); franta-hg@0: franta-hg@13: 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); franta-hg@13: if (volba == JOptionPane.YES_OPTION) { franta-hg@13: odesli(zprava); franta-hg@13: Postak.vypisPrijemce(zprava.getPrijemci()); franta-hg@13: zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true); franta-hg@13: } franta-hg@13: } catch (Exception e) { franta-hg@13: zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true); franta-hg@13: } franta-hg@0: }//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed franta-hg@0: franta-hg@0: private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed franta-hg@13: try { franta-hg@13: ulozNastaveniGUI(); franta-hg@13: HromadnaZprava zprava = getZprava(); franta-hg@13: zprava.setPrijemci(prijemciZkusebni.getAdresy()); franta-hg@0: franta-hg@13: odesli(zprava); franta-hg@0: franta-hg@13: zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true); franta-hg@13: } catch (Exception e) { franta-hg@13: zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true); franta-hg@13: } franta-hg@0: }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed franta-hg@0: franta-hg@0: private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed franta-hg@13: try { franta-hg@0: getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed franta-hg@13: zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false); franta-hg@13: } catch (SQLException e) { franta-hg@13: zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@0: private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed franta-hg@13: try { franta-hg@0: Collection adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed franta-hg@13: if (adresy == null) { franta-hg@13: zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false); franta-hg@13: } else { franta-hg@13: zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false); franta-hg@13: } franta-hg@13: } catch (Exception e) { franta-hg@13: zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@0: private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed franta-hg@13: try { franta-hg@13: Collection adresy = getPrijemciSQL(); franta-hg@0: franta-hg@13: ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); franta-hg@5: zobrazovac.setNastaveni(nastaveni); franta-hg@13: zobrazovac.setAdresy(adresy); franta-hg@13: zobrazovac.setLocationRelativeTo(this); franta-hg@13: zobrazovac.setVisible(true); franta-hg@0: franta-hg@13: } catch (Exception e) { franta-hg@13: zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); franta-hg@13: } franta-hg@0: }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed franta-hg@0: franta-hg@0: private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed franta-hg@13: try { franta-hg@13: Collection adresy = getPrijemciVsichni(); franta-hg@0: franta-hg@13: ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); franta-hg@13: zobrazovac.setAdresy(adresy); franta-hg@13: zobrazovac.setLocationRelativeTo(this); franta-hg@13: zobrazovac.setVisible(true); franta-hg@0: franta-hg@13: } catch (Exception e) { franta-hg@13: zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); franta-hg@13: } franta-hg@0: }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed franta-hg@0: franta-hg@0: private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed franta-hg@13: odpovedetKomuDialog.pack(); franta-hg@13: odpovedetKomuDialog.setLocationRelativeTo(this); franta-hg@13: odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL); franta-hg@13: odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo); franta-hg@13: odpovedetKomuDialog.setVisible(true); franta-hg@0: }//GEN-LAST:event_odpovedetKomuOdkazActionPerformed franta-hg@0: franta-hg@0: private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed franta-hg@13: odpovedetKomuDialog.setVisible(false); franta-hg@14: franta-hg@14: if (vstupJmenoOdesilatele.getText().isEmpty()) { franta-hg@14: vstupJmenoOdesilatele.setText(odpovedetKomuJmeno.getText()); franta-hg@14: } franta-hg@14: franta-hg@14: if (vstupAdresaOdesilatele.getText().isEmpty()) { franta-hg@14: String[] částiAdresy = odpovedetKomuAdresa.getText().split("@"); franta-hg@14: if (částiAdresy.length == 2) { franta-hg@14: vstupAdresaOdesilatele.setText("noreply@" + částiAdresy[1]); franta-hg@14: } franta-hg@14: } franta-hg@0: }//GEN-LAST:event_odpovedetKomuHotovoActionPerformed franta-hg@0: franta-hg@13: /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ franta-hg@13: private Collection getPrijemciSQL() throws SQLException, UnsupportedEncodingException { franta-hg@13: if ("".equals(vstupSQL.getText())) { franta-hg@13: return null; franta-hg@13: } else { franta-hg@13: return getSpojeni().getAdresy(vstupSQL.getText()); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: private DataSQL getSpojeni() throws SQLException { franta-hg@13: return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword()); franta-hg@13: } franta-hg@0: franta-hg@13: /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */ franta-hg@13: private void odesli(HromadnaZprava zprava) throws MessagingException { franta-hg@13: setCursor(new Cursor(Cursor.WAIT_CURSOR)); franta-hg@13: try { franta-hg@13: postak.setNastaveni(nastaveni); franta-hg@13: postak.odesli(zprava); franta-hg@0: franta-hg@13: } catch (MessagingException e) { franta-hg@13: throw e; franta-hg@13: } finally { franta-hg@13: setCursor(Cursor.getDefaultCursor()); franta-hg@13: } franta-hg@13: } franta-hg@0: franta-hg@13: private void setPanel(JComponent komponenta) { franta-hg@0: franta-hg@13: if (panel.getLayout() instanceof CardLayout) { franta-hg@13: CardLayout l = (CardLayout) panel.getLayout(); franta-hg@13: l.show(panel, komponenta.getName()); franta-hg@13: } else { franta-hg@13: log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout"); franta-hg@13: } franta-hg@0: franta-hg@13: } franta-hg@0: franta-hg@13: /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */ franta-hg@13: private void vyresitTabFocusProblem(JTextArea textArea) { franta-hg@13: textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); franta-hg@13: textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); franta-hg@13: } franta-hg@0: franta-hg@13: public JXTaskPaneContainer getTaskPanel() { franta-hg@13: return taskPanel; franta-hg@13: } franta-hg@0: franta-hg@13: /** franta-hg@13: * @param args the command line arguments franta-hg@13: */ franta-hg@13: public static void main(String args[]) { franta-hg@13: final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit")); franta-hg@0: franta-hg@13: try { franta-hg@13: //LookAndFeel laf = UIManager.getLookAndFeel(); franta-hg@0: franta-hg@13: //laf = new SubstanceLookAndFeel(); franta-hg@13: //laf = new SubstanceBusinessLookAndFeel(); franta-hg@13: //laf = new SubstanceBusinessBlueSteelLookAndFeel(); franta-hg@13: //laf = new SubstanceBusinessBlackSteelLookAndFeel(); franta-hg@0: franta-hg@13: UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"); franta-hg@13: } catch (ClassNotFoundException ex) { franta-hg@13: log.log(Level.SEVERE, null, ex); franta-hg@13: } catch (InstantiationException ex) { franta-hg@13: log.log(Level.SEVERE, null, ex); franta-hg@13: } catch (IllegalAccessException ex) { franta-hg@13: log.log(Level.SEVERE, null, ex); franta-hg@13: } catch (UnsupportedLookAndFeelException ex) { franta-hg@13: log.log(Level.SEVERE, null, ex); franta-hg@13: } franta-hg@0: franta-hg@13: java.awt.EventQueue.invokeLater(new Runnable() { franta-hg@0: franta-hg@13: public void run() { franta-hg@13: new SuperPostak(ladit, true).setVisible(true); franta-hg@13: } franta-hg@13: }); franta-hg@13: } franta-hg@0: // Variables declaration - do not modify//GEN-BEGIN:variables franta-hg@0: private javax.swing.JLabel jLabel1; franta-hg@0: private javax.swing.JLabel jLabel10; franta-hg@0: private javax.swing.JLabel jLabel11; franta-hg@0: private javax.swing.JLabel jLabel12; franta-hg@0: private javax.swing.JLabel jLabel13; franta-hg@0: private javax.swing.JLabel jLabel14; franta-hg@0: private javax.swing.JLabel jLabel15; franta-hg@0: private javax.swing.JLabel jLabel16; franta-hg@0: private javax.swing.JLabel jLabel17; franta-hg@0: private javax.swing.JLabel jLabel18; franta-hg@0: private javax.swing.JLabel jLabel19; franta-hg@0: private javax.swing.JLabel jLabel2; franta-hg@0: private javax.swing.JLabel jLabel4; franta-hg@0: private javax.swing.JLabel jLabel5; franta-hg@0: private javax.swing.JLabel jLabel6; franta-hg@0: private javax.swing.JLabel jLabel7; franta-hg@0: private javax.swing.JLabel jLabel8; franta-hg@0: private javax.swing.JLabel jLabel9; franta-hg@0: private javax.swing.JPanel jPanel1; franta-hg@0: private javax.swing.JScrollPane jScrollPane1; franta-hg@0: private javax.swing.JScrollPane jScrollPane3; franta-hg@0: private javax.swing.JSeparator jSeparator1; franta-hg@0: private javax.swing.JSeparator jSeparator2; franta-hg@0: private org.jdesktop.swingx.JXHeader jXHeader1; franta-hg@0: private org.jdesktop.swingx.JXTaskPane jXTaskPane1; franta-hg@0: private org.jdesktop.swingx.JXTaskPane jXTaskPane2; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnDatabaze; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnOdeslat; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnPrijemci; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnServer; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnText; franta-hg@0: private org.jdesktop.swingx.JXHyperlink lnVychoziPrijemci; franta-hg@0: private javax.swing.JTextArea napovedaSMTP; franta-hg@0: private javax.swing.JScrollPane napovedaSMTPscroll; franta-hg@0: private javax.swing.JTextField odpovedetKomuAdresa; franta-hg@0: private javax.swing.JDialog odpovedetKomuDialog; franta-hg@0: private javax.swing.JButton odpovedetKomuHotovo; franta-hg@0: private javax.swing.JTextField odpovedetKomuJmeno; franta-hg@0: private org.jdesktop.swingx.JXHyperlink odpovedetKomuOdkaz; franta-hg@0: private org.jdesktop.swingx.JXPanel panel; franta-hg@0: private org.jdesktop.swingx.JXPanel panelDatabaze; franta-hg@0: private org.jdesktop.swingx.JXPanel panelOdeslat; franta-hg@0: private org.jdesktop.swingx.JXPanel panelPrijemci; franta-hg@0: private org.jdesktop.swingx.JXPanel panelServer; franta-hg@0: private org.jdesktop.swingx.JXPanel panelVychoziPrijemci; franta-hg@0: private org.jdesktop.swingx.JXPanel panelZprava; franta-hg@0: private cz.frantovo.superPostak.PanelPrijemcu prijemciDodatecni; franta-hg@0: private cz.frantovo.superPostak.PanelPrijemcu prijemciVychozi; franta-hg@0: private cz.frantovo.superPostak.PanelPrijemcu prijemciZkusebni; franta-hg@0: private javax.swing.JButton rozeslatHromadnouZpravuTlacitko; franta-hg@0: private javax.swing.JButton rozeslatZkusebniTlacitko; franta-hg@0: private org.jdesktop.swingx.JXTaskPaneContainer taskPanel; franta-hg@0: private javax.swing.JTextField vstupAdresaOdesilatele; franta-hg@0: private javax.swing.JPasswordField vstupDBheslo; franta-hg@0: private javax.swing.JTextField vstupDBjmeno; franta-hg@0: private javax.swing.JTextField vstupDatabaze; franta-hg@0: private javax.swing.JCheckBox vstupFormatHTML; franta-hg@0: private javax.swing.JTextField vstupJmenoOdesilatele; franta-hg@0: private javax.swing.JTextField vstupPredmet; franta-hg@0: private javax.swing.JPasswordField vstupSMTPheslo; franta-hg@0: private javax.swing.JTextField vstupSMTPjmeno; franta-hg@0: private javax.swing.JSpinner vstupSMTPlimitPrijemcu; franta-hg@0: private javax.swing.JSpinner vstupSMTPport; franta-hg@0: private javax.swing.JTextField vstupSMTPserver; franta-hg@0: private javax.swing.JTextArea vstupSQL; franta-hg@0: private javax.swing.JTextArea vstupZprava; franta-hg@0: private javax.swing.JLabel vystupDBzprava; franta-hg@0: private javax.swing.JLabel vystupSQLZprava; franta-hg@0: private javax.swing.JButton vyzkousetPripojeniTlacitko; franta-hg@0: private javax.swing.JButton vyzkousetSQLTlacitko; franta-hg@0: private javax.swing.JButton zobrazitSQLPrijemceTlacitko; franta-hg@0: private javax.swing.JButton zobrazitVsechnyPrijemceTlacitko; franta-hg@0: // End of variables declaration//GEN-END:variables franta-hg@0: }