java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 23 Apr 2012 00:24:31 +0200
changeset 17 9cb46ca7e26c
parent 15 9175a185d9c0
permissions -rw-r--r--
#4 multipart/alternative zprávy: XHTML + prostý text (generuje se pomocí XSLT)
franta-hg@0
     1
package cz.frantovo.superPostak;
franta-hg@0
     2
franta-hg@0
     3
import cz.frantovo.postak.HromadnaZprava;
franta-hg@0
     4
import cz.frantovo.postak.InternetAddressKomu;
franta-hg@0
     5
import cz.frantovo.postak.Nastaveni;
franta-hg@0
     6
import cz.frantovo.postak.Postak;
franta-hg@0
     7
import java.awt.CardLayout;
franta-hg@0
     8
import java.awt.Component;
franta-hg@0
     9
import java.awt.Cursor;
franta-hg@0
    10
import java.awt.Dialog.ModalityType;
franta-hg@0
    11
import java.awt.KeyboardFocusManager;
franta-hg@17
    12
import java.awt.event.ActionListener;
franta-hg@17
    13
import java.awt.event.ItemListener;
franta-hg@0
    14
import java.beans.XMLDecoder;
franta-hg@0
    15
import java.beans.XMLEncoder;
franta-hg@0
    16
import java.io.BufferedInputStream;
franta-hg@0
    17
import java.io.BufferedOutputStream;
franta-hg@0
    18
import java.io.File;
franta-hg@0
    19
import java.io.FileInputStream;
franta-hg@0
    20
import java.io.FileNotFoundException;
franta-hg@0
    21
import java.io.FileOutputStream;
franta-hg@0
    22
import java.io.IOException;
franta-hg@0
    23
import java.io.UnsupportedEncodingException;
franta-hg@0
    24
import java.sql.SQLException;
franta-hg@0
    25
import java.util.ArrayList;
franta-hg@0
    26
import java.util.Collection;
franta-hg@0
    27
import java.util.logging.Level;
franta-hg@0
    28
import java.util.logging.Logger;
franta-hg@0
    29
import java.util.zip.GZIPInputStream;
franta-hg@0
    30
import java.util.zip.GZIPOutputStream;
franta-hg@0
    31
import javax.mail.MessagingException;
franta-hg@0
    32
import javax.mail.internet.InternetAddress;
franta-hg@17
    33
import javax.swing.*;
franta-hg@17
    34
import javax.swing.event.ChangeListener;
franta-hg@0
    35
import org.jdesktop.swingx.JXErrorPane;
franta-hg@0
    36
import org.jdesktop.swingx.JXTaskPaneContainer;
franta-hg@0
    37
import org.jdesktop.swingx.error.ErrorInfo;
franta-hg@0
    38
franta-hg@0
    39
/**
franta-hg@0
    40
 *
franta-hg@17
    41
 * @author fiki
franta-hg@0
    42
 */
franta-hg@0
    43
public class SuperPostak extends javax.swing.JFrame {
franta-hg@0
    44
franta-hg@13
    45
	/** Soubor, kde je uložené nastavení */
franta-hg@13
    46
	private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz";
franta-hg@13
    47
	private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore";
franta-hg@13
    48
	private static final String NASTAVENI_SLOZKA = ".SuperPostak";
franta-hg@13
    49
	private static final String DOMACI_ADRESAR = System.getProperty("user.home");
franta-hg@13
    50
	private static final Logger log = Logger.getLogger(SuperPostak.class.getName());
franta-hg@13
    51
	private static final long serialVersionUID = -7026850569575604048L;
franta-hg@13
    52
	private Nastaveni nastaveni = new Nastaveni();
franta-hg@13
    53
	private Postak postak = new Postak(nastaveni);
franta-hg@0
    54
franta-hg@13
    55
	/**
franta-hg@13
    56
	 * Creates new form SuperPostak
franta-hg@17
    57
	 *
franta-hg@13
    58
	 * @param ladit předvyplní testovací hodnoty - zprávu
franta-hg@13
    59
	 * @param exit při zavření okna ukončí program
franta-hg@13
    60
	 */
franta-hg@13
    61
	public SuperPostak(boolean ladit, boolean exit) {
franta-hg@13
    62
		log.log(Level.WARNING, "Program byl spuštěn.");
franta-hg@13
    63
		nactiOvladaceJDBC();
franta-hg@13
    64
		vytvorSlozkuProgramu();
franta-hg@13
    65
		initComponents();
franta-hg@0
    66
franta-hg@13
    67
		nactiNastaveni();
franta-hg@13
    68
		ulozNastaveni();
franta-hg@13
    69
		nastaveni.setCestaKCertifikatum(getCestaKCertifikatum());
franta-hg@0
    70
franta-hg@13
    71
		inicializujCardLayout();
franta-hg@13
    72
		setLocationRelativeTo(null);
franta-hg@0
    73
franta-hg@5
    74
		/** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */
franta-hg@5
    75
		prijemciDodatecni.setNastaveni(nastaveni);
franta-hg@5
    76
		prijemciVychozi.setNastaveni(nastaveni);
franta-hg@5
    77
		prijemciZkusebni.setNastaveni(nastaveni);
franta-hg@5
    78
franta-hg@13
    79
		/** Vyřešíme problém TAB vs. Focus */
franta-hg@13
    80
		vyresitTabFocusProblem(vstupSQL);
franta-hg@13
    81
		vyresitTabFocusProblem(vstupZprava);
franta-hg@0
    82
franta-hg@13
    83
		/** Ladicí hodnoty */
franta-hg@13
    84
		if (ladit) {
franta-hg@13
    85
			nastavLadiciHodnoty();
franta-hg@13
    86
		}
franta-hg@3
    87
franta-hg@13
    88
		if (exit) {
franta-hg@13
    89
			setDefaultCloseOperation(EXIT_ON_CLOSE);
franta-hg@13
    90
		}
franta-hg@0
    91
franta-hg@0
    92
franta-hg@13
    93
	}
franta-hg@0
    94
franta-hg@13
    95
	private void inicializujCardLayout() {
franta-hg@13
    96
		panelDatabaze.setName("panelDatabaze");
franta-hg@13
    97
		panelOdeslat.setName("panelOdeslat");
franta-hg@13
    98
		panelPrijemci.setName("panelPrijemci");
franta-hg@13
    99
		panelServer.setName("panelServer");
franta-hg@13
   100
		panelVychoziPrijemci.setName("panelVychoziPrijemci");
franta-hg@13
   101
		panelZprava.setName("panelZprava");
franta-hg@0
   102
franta-hg@13
   103
		panel.add(panelDatabaze, panelDatabaze.getName());
franta-hg@13
   104
		panel.add(panelOdeslat, panelOdeslat.getName());
franta-hg@13
   105
		panel.add(panelPrijemci, panelPrijemci.getName());
franta-hg@13
   106
		panel.add(panelServer, panelServer.getName());
franta-hg@13
   107
		panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName());
franta-hg@13
   108
		panel.add(panelZprava, panelZprava.getName());
franta-hg@0
   109
franta-hg@13
   110
		setPanel(panelZprava);
franta-hg@13
   111
		pack();
franta-hg@13
   112
	}
franta-hg@0
   113
franta-hg@13
   114
	/**
franta-hg@13
   115
	 * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami,
franta-hg@13
   116
	 * aby se dal program testovat jedním kliknutím.
franta-hg@13
   117
	 */
franta-hg@13
   118
	private void nastavLadiciHodnoty() {
franta-hg@13
   119
		try {
franta-hg@13
   120
			vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz");
franta-hg@13
   121
			vstupJmenoOdesilatele.setText("SuperPošťák");
franta-hg@13
   122
			vstupPredmet.setText("Zkušební zpráva od SuperPošťáka");
franta-hg@13
   123
			vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)");
franta-hg@13
   124
			ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>();
franta-hg@13
   125
			adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák"));
franta-hg@13
   126
			prijemciZkusebni.setAdresy(adresy);
franta-hg@13
   127
		} catch (UnsupportedEncodingException e) {
franta-hg@13
   128
			log.log(Level.SEVERE, null, e);
franta-hg@13
   129
		}
franta-hg@13
   130
	}
franta-hg@0
   131
franta-hg@13
   132
	/**
franta-hg@13
   133
	 * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu.
franta-hg@13
   134
	 * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách.
franta-hg@13
   135
	 * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161
franta-hg@13
   136
	 */
franta-hg@13
   137
	private void nactiOvladaceJDBC() {
franta-hg@13
   138
		nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL");
franta-hg@13
   139
		nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL");
franta-hg@13
   140
		nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL");
franta-hg@13
   141
		nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com");
franta-hg@13
   142
		nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle");
franta-hg@13
   143
	}
franta-hg@0
   144
franta-hg@13
   145
	/**
franta-hg@13
   146
	 * @param trida ovladač databáze, který se má načíst
franta-hg@13
   147
	 * @param jmeno název databáze
franta-hg@13
   148
	 */
franta-hg@13
   149
	private void nactiOvladacJDBC(String trida, String jmeno) {
franta-hg@13
   150
		try {
franta-hg@13
   151
			Class.forName(trida);
franta-hg@13
   152
			log.log(Level.INFO, "JDBC ovladač pro {0} byl úspěšně načten.", jmeno);
franta-hg@13
   153
		} catch (ClassNotFoundException e) {
franta-hg@13
   154
			log.log(Level.INFO, "JDBC ovladač pro {0} se nepodařilo načíst.", jmeno);
franta-hg@13
   155
		}
franta-hg@13
   156
	}
franta-hg@0
   157
franta-hg@13
   158
	/** Vrací plnou cestu k souboru s nastavením */
franta-hg@13
   159
	protected static String getCestaKCertifikatum() {
franta-hg@13
   160
		return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR;
franta-hg@13
   161
	}
franta-hg@0
   162
franta-hg@13
   163
	/** Vrací plnou cestu k souboru s nastavením */
franta-hg@13
   164
	protected static String getCestaKNastaveni() {
franta-hg@13
   165
		return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR;
franta-hg@13
   166
	}
franta-hg@0
   167
franta-hg@13
   168
	/** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */
franta-hg@13
   169
	protected static String getCestaKeSlozceProgramu() {
franta-hg@13
   170
		return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator;
franta-hg@13
   171
	}
franta-hg@0
   172
franta-hg@13
   173
	/** Načte nastavení ze souboru */
franta-hg@13
   174
	private void nactiNastaveni() {
franta-hg@13
   175
		try {
franta-hg@13
   176
			XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni()))));
franta-hg@13
   177
			Object xmlObjekt = d.readObject();
franta-hg@13
   178
			d.close();
franta-hg@0
   179
franta-hg@13
   180
			if (xmlObjekt instanceof Nastaveni) {
franta-hg@13
   181
				nastaveni = (Nastaveni) xmlObjekt;
franta-hg@13
   182
			} else {
franta-hg@13
   183
				nastaveni = new Nastaveni();
franta-hg@13
   184
				log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí");
franta-hg@13
   185
			}
franta-hg@0
   186
franta-hg@13
   187
			nactiNastaveniGUI();
franta-hg@0
   188
franta-hg@13
   189
			log.log(Level.INFO, "Nastavení bylo načteno.");
franta-hg@13
   190
		} catch (FileNotFoundException ex) {
franta-hg@13
   191
			log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex);
franta-hg@13
   192
		} catch (IOException ex) {
franta-hg@13
   193
			log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex);
franta-hg@13
   194
		}
franta-hg@13
   195
	}
franta-hg@0
   196
franta-hg@13
   197
	/** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */
franta-hg@13
   198
	private static boolean vytvorSlozkuProgramu() {
franta-hg@13
   199
		if (new File(getCestaKeSlozceProgramu()).mkdirs()) {
franta-hg@13
   200
			log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: {0}", getCestaKeSlozceProgramu());
franta-hg@13
   201
			return true;
franta-hg@13
   202
		} else {
franta-hg@13
   203
			return false;
franta-hg@13
   204
		}
franta-hg@13
   205
	}
franta-hg@0
   206
franta-hg@13
   207
	/** Uloží nastavení do souboru */
franta-hg@13
   208
	private void ulozNastaveni() {
franta-hg@13
   209
		try {
franta-hg@13
   210
			ulozNastaveniGUI();
franta-hg@0
   211
franta-hg@13
   212
			vytvorSlozkuProgramu();
franta-hg@0
   213
franta-hg@13
   214
			XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni()))));
franta-hg@13
   215
			e.writeObject(nastaveni);
franta-hg@13
   216
			e.close();
franta-hg@13
   217
			log.log(Level.INFO, "Nastavení bylo uloženo.");
franta-hg@13
   218
		} catch (FileNotFoundException ex) {
franta-hg@13
   219
			log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex);
franta-hg@13
   220
		} catch (IOException ex) {
franta-hg@13
   221
			log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex);
franta-hg@13
   222
		}
franta-hg@13
   223
	}
franta-hg@0
   224
franta-hg@13
   225
	/** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */
franta-hg@13
   226
	private void ulozNastaveniGUI() {
franta-hg@13
   227
		nastaveni.setDatabaze(vstupDatabaze.getText());
franta-hg@13
   228
		nastaveni.setDbHeslo(vstupDBheslo.getPassword());
franta-hg@13
   229
		nastaveni.setDbJmeno(vstupDBjmeno.getText());
franta-hg@13
   230
		nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue());
franta-hg@13
   231
		nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword());
franta-hg@13
   232
		nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText());
franta-hg@13
   233
		nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue());
franta-hg@13
   234
		nastaveni.setPostovniServer(vstupSMTPserver.getText());
franta-hg@13
   235
		nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy());
franta-hg@15
   236
		nastaveni.setZkušebníPrijemci(prijemciZkusebni.getAdresy());
franta-hg@13
   237
	}
franta-hg@0
   238
franta-hg@13
   239
	/** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */
franta-hg@13
   240
	private void nactiNastaveniGUI() {
franta-hg@13
   241
		vstupDatabaze.setText(nastaveni.getDatabaze());
franta-hg@13
   242
		if (nastaveni.getDbHeslo() != null) {
franta-hg@13
   243
			vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo()));
franta-hg@13
   244
		}
franta-hg@13
   245
		vstupDBjmeno.setText(nastaveni.getDbJmeno());
franta-hg@13
   246
		vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav());
franta-hg@13
   247
		if (nastaveni.getPostovniHeslo() != null) {
franta-hg@13
   248
			vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo()));
franta-hg@13
   249
		}
franta-hg@13
   250
		vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno());
franta-hg@13
   251
		vstupSMTPport.setValue(nastaveni.getPostovniPort());
franta-hg@13
   252
		vstupSMTPserver.setText(nastaveni.getPostovniServer());
franta-hg@13
   253
		prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci());
franta-hg@15
   254
		prijemciZkusebni.setAdresy(nastaveni.getZkušebníPrijemci());
franta-hg@13
   255
	}
franta-hg@0
   256
franta-hg@13
   257
	protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
franta-hg@13
   258
		zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat);
franta-hg@13
   259
	}
franta-hg@0
   260
franta-hg@13
   261
	protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) {
franta-hg@13
   262
		JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE);
franta-hg@13
   263
		if (loguj) {
franta-hg@13
   264
			log.log(Level.INFO, "{0}: {1}", new Object[]{nadpis, text});
franta-hg@13
   265
		}
franta-hg@13
   266
	}
franta-hg@0
   267
franta-hg@13
   268
	protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
franta-hg@13
   269
		if (logovat) {
franta-hg@13
   270
			log.log(zavaznost, strucnaZprava, vyjimka);
franta-hg@13
   271
		}
franta-hg@0
   272
franta-hg@13
   273
		JXErrorPane chybovyPanel = new JXErrorPane();
franta-hg@13
   274
		ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null);
franta-hg@13
   275
		chybovyPanel.setErrorInfo(chybovaInformace);
franta-hg@13
   276
		JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel);
franta-hg@13
   277
		dialog.setVisible(true);
franta-hg@13
   278
	}
franta-hg@0
   279
franta-hg@13
   280
	private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
franta-hg@13
   281
		zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat);
franta-hg@13
   282
	}
franta-hg@0
   283
franta-hg@13
   284
	private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) {
franta-hg@13
   285
		zobrazInformacniDialog(this, nadpis, text, loguj);
franta-hg@13
   286
	}
franta-hg@0
   287
franta-hg@13
   288
	private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
franta-hg@13
   289
		zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat);
franta-hg@13
   290
	}
franta-hg@0
   291
franta-hg@13
   292
	/** This method is called from within the constructor to
franta-hg@13
   293
	 * initialize the form.
franta-hg@13
   294
	 * WARNING: Do NOT modify this code. The content of this method is
franta-hg@13
   295
	 * always regenerated by the Form Editor.
franta-hg@13
   296
	 */
franta-hg@0
   297
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
franta-hg@0
   298
    private void initComponents() {
franta-hg@0
   299
franta-hg@0
   300
        panelDatabaze = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   301
        jLabel9 = new javax.swing.JLabel();
franta-hg@0
   302
        vstupDatabaze = new javax.swing.JTextField();
franta-hg@0
   303
        jLabel10 = new javax.swing.JLabel();
franta-hg@0
   304
        vstupDBjmeno = new javax.swing.JTextField();
franta-hg@0
   305
        vstupDBheslo = new javax.swing.JPasswordField();
franta-hg@0
   306
        jLabel11 = new javax.swing.JLabel();
franta-hg@0
   307
        vyzkousetPripojeniTlacitko = new javax.swing.JButton();
franta-hg@0
   308
        vystupDBzprava = new javax.swing.JLabel();
franta-hg@0
   309
        panelOdeslat = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   310
        jPanel1 = new javax.swing.JPanel();
franta-hg@0
   311
        rozeslatZkusebniTlacitko = new javax.swing.JButton();
franta-hg@0
   312
        rozeslatHromadnouZpravuTlacitko = new javax.swing.JButton();
franta-hg@0
   313
        zobrazitVsechnyPrijemceTlacitko = new javax.swing.JButton();
franta-hg@0
   314
        prijemciZkusebni = new cz.frantovo.superPostak.PanelPrijemcu();
franta-hg@0
   315
        jSeparator2 = new javax.swing.JSeparator();
franta-hg@0
   316
        jLabel14 = new javax.swing.JLabel();
franta-hg@0
   317
        panelPrijemci = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   318
        jLabel13 = new javax.swing.JLabel();
franta-hg@0
   319
        jScrollPane3 = new javax.swing.JScrollPane();
franta-hg@0
   320
        vstupSQL = new javax.swing.JTextArea();
franta-hg@0
   321
        vyzkousetSQLTlacitko = new javax.swing.JButton();
franta-hg@0
   322
        vystupSQLZprava = new javax.swing.JLabel();
franta-hg@0
   323
        prijemciDodatecni = new cz.frantovo.superPostak.PanelPrijemcu();
franta-hg@0
   324
        jSeparator1 = new javax.swing.JSeparator();
franta-hg@0
   325
        jLabel16 = new javax.swing.JLabel();
franta-hg@0
   326
        zobrazitSQLPrijemceTlacitko = new javax.swing.JButton();
franta-hg@0
   327
        panelServer = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   328
        jLabel4 = new javax.swing.JLabel();
franta-hg@0
   329
        jLabel5 = new javax.swing.JLabel();
franta-hg@0
   330
        vstupSMTPserver = new javax.swing.JTextField();
franta-hg@0
   331
        vstupSMTPport = new javax.swing.JSpinner();
franta-hg@0
   332
        napovedaSMTPscroll = new javax.swing.JScrollPane();
franta-hg@0
   333
        napovedaSMTP = new javax.swing.JTextArea();
franta-hg@0
   334
        jLabel6 = new javax.swing.JLabel();
franta-hg@0
   335
        vstupSMTPjmeno = new javax.swing.JTextField();
franta-hg@0
   336
        vstupSMTPheslo = new javax.swing.JPasswordField();
franta-hg@0
   337
        jLabel7 = new javax.swing.JLabel();
franta-hg@0
   338
        vstupSMTPlimitPrijemcu = new javax.swing.JSpinner();
franta-hg@0
   339
        jLabel8 = new javax.swing.JLabel();
franta-hg@0
   340
        panelVychoziPrijemci = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   341
        prijemciVychozi = new cz.frantovo.superPostak.PanelPrijemcu();
franta-hg@0
   342
        jLabel12 = new javax.swing.JLabel();
franta-hg@0
   343
        panelZprava = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   344
        jLabel1 = new javax.swing.JLabel();
franta-hg@0
   345
        vstupPredmet = new javax.swing.JTextField();
franta-hg@0
   346
        jLabel2 = new javax.swing.JLabel();
franta-hg@0
   347
        vstupJmenoOdesilatele = new javax.swing.JTextField();
franta-hg@0
   348
        vstupAdresaOdesilatele = new javax.swing.JTextField();
franta-hg@0
   349
        jScrollPane1 = new javax.swing.JScrollPane();
franta-hg@0
   350
        vstupZprava = new javax.swing.JTextArea();
franta-hg@0
   351
        jLabel15 = new javax.swing.JLabel();
franta-hg@0
   352
        odpovedetKomuOdkaz = new org.jdesktop.swingx.JXHyperlink();
franta-hg@17
   353
        formátProstý = new javax.swing.JRadioButton();
franta-hg@17
   354
        formátXHTML = new javax.swing.JRadioButton();
franta-hg@17
   355
        formátOboje = new javax.swing.JRadioButton();
franta-hg@0
   356
        odpovedetKomuDialog = new javax.swing.JDialog();
franta-hg@0
   357
        jLabel18 = new javax.swing.JLabel();
franta-hg@0
   358
        jLabel19 = new javax.swing.JLabel();
franta-hg@0
   359
        jLabel17 = new javax.swing.JLabel();
franta-hg@0
   360
        odpovedetKomuJmeno = new javax.swing.JTextField();
franta-hg@0
   361
        odpovedetKomuAdresa = new javax.swing.JTextField();
franta-hg@0
   362
        odpovedetKomuHotovo = new javax.swing.JButton();
franta-hg@17
   363
        formátSkupina = new javax.swing.ButtonGroup();
franta-hg@0
   364
        jXHeader1 = new org.jdesktop.swingx.JXHeader();
franta-hg@0
   365
        taskPanel = new org.jdesktop.swingx.JXTaskPaneContainer();
franta-hg@0
   366
        jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane();
franta-hg@0
   367
        lnText = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   368
        lnPrijemci = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   369
        lnOdeslat = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   370
        jXTaskPane2 = new org.jdesktop.swingx.JXTaskPane();
franta-hg@0
   371
        lnServer = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   372
        lnDatabaze = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   373
        lnVychoziPrijemci = new org.jdesktop.swingx.JXHyperlink();
franta-hg@0
   374
        panel = new org.jdesktop.swingx.JXPanel();
franta-hg@0
   375
franta-hg@0
   376
        jLabel9.setText("Databáze");
franta-hg@0
   377
franta-hg@0
   378
        jLabel10.setText("Jméno");
franta-hg@0
   379
franta-hg@0
   380
        jLabel11.setText("Heslo");
franta-hg@0
   381
franta-hg@0
   382
        vyzkousetPripojeniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N
franta-hg@0
   383
        vyzkousetPripojeniTlacitko.setMnemonic('y');
franta-hg@0
   384
        vyzkousetPripojeniTlacitko.setText("Vyzkoušet spojení");
franta-hg@0
   385
        vyzkousetPripojeniTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   386
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   387
                vyzkousetPripojeniTlacitkoActionPerformed(evt);
franta-hg@0
   388
            }
franta-hg@0
   389
        });
franta-hg@0
   390
franta-hg@0
   391
        vystupDBzprava.setText(" ");
franta-hg@0
   392
franta-hg@0
   393
        javax.swing.GroupLayout panelDatabazeLayout = new javax.swing.GroupLayout(panelDatabaze);
franta-hg@0
   394
        panelDatabaze.setLayout(panelDatabazeLayout);
franta-hg@0
   395
        panelDatabazeLayout.setHorizontalGroup(
franta-hg@0
   396
            panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   397
            .addGroup(panelDatabazeLayout.createSequentialGroup()
franta-hg@0
   398
                .addContainerGap()
franta-hg@0
   399
                .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   400
                    .addGroup(panelDatabazeLayout.createSequentialGroup()
franta-hg@0
   401
                        .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   402
                            .addComponent(jLabel9)
franta-hg@0
   403
                            .addComponent(jLabel10)
franta-hg@0
   404
                            .addComponent(jLabel11))
franta-hg@0
   405
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   406
                        .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   407
                            .addComponent(vstupDatabaze, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
franta-hg@0
   408
                            .addComponent(vstupDBjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
franta-hg@0
   409
                            .addGroup(panelDatabazeLayout.createSequentialGroup()
franta-hg@0
   410
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
franta-hg@0
   411
                                .addComponent(vstupDBheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE))))
franta-hg@0
   412
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDatabazeLayout.createSequentialGroup()
franta-hg@0
   413
                        .addComponent(vystupDBzprava, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE)
franta-hg@0
   414
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   415
                        .addComponent(vyzkousetPripojeniTlacitko)))
franta-hg@0
   416
                .addContainerGap())
franta-hg@0
   417
        );
franta-hg@0
   418
        panelDatabazeLayout.setVerticalGroup(
franta-hg@0
   419
            panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   420
            .addGroup(panelDatabazeLayout.createSequentialGroup()
franta-hg@0
   421
                .addContainerGap()
franta-hg@0
   422
                .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   423
                    .addComponent(jLabel9)
franta-hg@0
   424
                    .addComponent(vstupDatabaze, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   425
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   426
                .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   427
                    .addComponent(jLabel10)
franta-hg@0
   428
                    .addComponent(vstupDBjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   429
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   430
                .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   431
                    .addComponent(jLabel11)
franta-hg@0
   432
                    .addComponent(vstupDBheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   433
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
franta-hg@0
   434
                .addGroup(panelDatabazeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   435
                    .addComponent(vyzkousetPripojeniTlacitko)
franta-hg@0
   436
                    .addComponent(vystupDBzprava))
franta-hg@0
   437
                .addContainerGap(183, Short.MAX_VALUE))
franta-hg@0
   438
        );
franta-hg@0
   439
franta-hg@0
   440
        rozeslatZkusebniTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/apply.png"))); // NOI18N
franta-hg@0
   441
        rozeslatZkusebniTlacitko.setMnemonic('u');
franta-hg@0
   442
        rozeslatZkusebniTlacitko.setText("Rozeslat zkušební");
franta-hg@0
   443
        rozeslatZkusebniTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   444
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   445
                rozeslatZkusebniTlacitkoActionPerformed(evt);
franta-hg@0
   446
            }
franta-hg@0
   447
        });
franta-hg@0
   448
franta-hg@0
   449
        rozeslatHromadnouZpravuTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/adept_commit.png"))); // NOI18N
franta-hg@0
   450
        rozeslatHromadnouZpravuTlacitko.setMnemonic('h');
franta-hg@0
   451
        rozeslatHromadnouZpravuTlacitko.setText("Rozeslat hromadnou zprávu");
franta-hg@0
   452
        rozeslatHromadnouZpravuTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   453
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   454
                rozeslatHromadnouZpravuTlacitkoActionPerformed(evt);
franta-hg@0
   455
            }
franta-hg@0
   456
        });
franta-hg@0
   457
franta-hg@0
   458
        zobrazitVsechnyPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N
franta-hg@0
   459
        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>");
franta-hg@0
   460
        zobrazitVsechnyPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   461
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   462
                zobrazitVsechnyPrijemceTlacitkoActionPerformed(evt);
franta-hg@0
   463
            }
franta-hg@0
   464
        });
franta-hg@0
   465
franta-hg@0
   466
        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
franta-hg@0
   467
        jPanel1.setLayout(jPanel1Layout);
franta-hg@0
   468
        jPanel1Layout.setHorizontalGroup(
franta-hg@0
   469
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   470
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
franta-hg@0
   471
                .addContainerGap(106, Short.MAX_VALUE)
franta-hg@0
   472
                .addComponent(rozeslatZkusebniTlacitko)
franta-hg@0
   473
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   474
                .addComponent(rozeslatHromadnouZpravuTlacitko)
franta-hg@0
   475
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   476
                .addComponent(zobrazitVsechnyPrijemceTlacitko)
franta-hg@0
   477
                .addContainerGap())
franta-hg@0
   478
        );
franta-hg@0
   479
        jPanel1Layout.setVerticalGroup(
franta-hg@0
   480
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   481
            .addGroup(jPanel1Layout.createSequentialGroup()
franta-hg@0
   482
                .addContainerGap()
franta-hg@0
   483
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   484
                    .addComponent(rozeslatHromadnouZpravuTlacitko)
franta-hg@0
   485
                    .addComponent(zobrazitVsechnyPrijemceTlacitko)
franta-hg@0
   486
                    .addComponent(rozeslatZkusebniTlacitko))
franta-hg@0
   487
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
franta-hg@0
   488
        );
franta-hg@0
   489
franta-hg@0
   490
        jLabel14.setText("Zkušební příjemci");
franta-hg@0
   491
franta-hg@0
   492
        javax.swing.GroupLayout panelOdeslatLayout = new javax.swing.GroupLayout(panelOdeslat);
franta-hg@0
   493
        panelOdeslat.setLayout(panelOdeslatLayout);
franta-hg@0
   494
        panelOdeslatLayout.setHorizontalGroup(
franta-hg@0
   495
            panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   496
            .addGroup(panelOdeslatLayout.createSequentialGroup()
franta-hg@0
   497
                .addContainerGap()
franta-hg@0
   498
                .addGroup(panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   499
                    .addComponent(prijemciZkusebni, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE)
franta-hg@0
   500
                    .addComponent(jSeparator2, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE)
franta-hg@0
   501
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
franta-hg@0
   502
                    .addComponent(jLabel14))
franta-hg@0
   503
                .addContainerGap())
franta-hg@0
   504
        );
franta-hg@0
   505
        panelOdeslatLayout.setVerticalGroup(
franta-hg@0
   506
            panelOdeslatLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   507
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelOdeslatLayout.createSequentialGroup()
franta-hg@0
   508
                .addContainerGap()
franta-hg@0
   509
                .addComponent(jLabel14)
franta-hg@0
   510
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   511
                .addComponent(prijemciZkusebni, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
franta-hg@0
   512
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
franta-hg@0
   513
                .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   514
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   515
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   516
                .addContainerGap())
franta-hg@0
   517
        );
franta-hg@0
   518
franta-hg@0
   519
        jLabel13.setText("SQL dotaz");
franta-hg@0
   520
franta-hg@0
   521
        vstupSQL.setColumns(20);
franta-hg@0
   522
        vstupSQL.setRows(5);
franta-hg@0
   523
        jScrollPane3.setViewportView(vstupSQL);
franta-hg@0
   524
franta-hg@0
   525
        vyzkousetSQLTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/fork.png"))); // NOI18N
franta-hg@0
   526
        vyzkousetSQLTlacitko.setMnemonic('y');
franta-hg@0
   527
        vyzkousetSQLTlacitko.setText("Vyzkoušet");
franta-hg@0
   528
        vyzkousetSQLTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   529
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   530
                vyzkousetSQLTlacitkoActionPerformed(evt);
franta-hg@0
   531
            }
franta-hg@0
   532
        });
franta-hg@0
   533
franta-hg@0
   534
        vystupSQLZprava.setText(" ");
franta-hg@0
   535
franta-hg@0
   536
        prijemciDodatecni.setToolTipText("Zde můžete dopnit další přijemce.");
franta-hg@0
   537
franta-hg@0
   538
        jLabel16.setText("Dodateční příjemci:");
franta-hg@0
   539
franta-hg@0
   540
        zobrazitSQLPrijemceTlacitko.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/zobrazit_adresy.png"))); // NOI18N
franta-hg@0
   541
        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>");
franta-hg@0
   542
        zobrazitSQLPrijemceTlacitko.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   543
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   544
                zobrazitSQLPrijemceTlacitkoActionPerformed(evt);
franta-hg@0
   545
            }
franta-hg@0
   546
        });
franta-hg@0
   547
franta-hg@0
   548
        javax.swing.GroupLayout panelPrijemciLayout = new javax.swing.GroupLayout(panelPrijemci);
franta-hg@0
   549
        panelPrijemci.setLayout(panelPrijemciLayout);
franta-hg@0
   550
        panelPrijemciLayout.setHorizontalGroup(
franta-hg@0
   551
            panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   552
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPrijemciLayout.createSequentialGroup()
franta-hg@0
   553
                .addContainerGap()
franta-hg@0
   554
                .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   555
                    .addComponent(prijemciDodatecni, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
franta-hg@0
   556
                    .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
franta-hg@0
   557
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 344, Short.MAX_VALUE)
franta-hg@0
   558
                    .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   559
                    .addGroup(panelPrijemciLayout.createSequentialGroup()
franta-hg@0
   560
                        .addComponent(vystupSQLZprava, javax.swing.GroupLayout.DEFAULT_SIZE, 52, Short.MAX_VALUE)
franta-hg@0
   561
                        .addGap(127, 127, 127)
franta-hg@0
   562
                        .addComponent(vyzkousetSQLTlacitko)
franta-hg@0
   563
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   564
                        .addComponent(zobrazitSQLPrijemceTlacitko))
franta-hg@0
   565
                    .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.LEADING))
franta-hg@0
   566
                .addContainerGap())
franta-hg@0
   567
        );
franta-hg@0
   568
        panelPrijemciLayout.setVerticalGroup(
franta-hg@0
   569
            panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   570
            .addGroup(panelPrijemciLayout.createSequentialGroup()
franta-hg@0
   571
                .addContainerGap()
franta-hg@0
   572
                .addComponent(jLabel13)
franta-hg@0
   573
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   574
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   575
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   576
                .addGroup(panelPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   577
                    .addComponent(vystupSQLZprava, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   578
                    .addComponent(zobrazitSQLPrijemceTlacitko)
franta-hg@0
   579
                    .addComponent(vyzkousetSQLTlacitko))
franta-hg@0
   580
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   581
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   582
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   583
                .addComponent(jLabel16)
franta-hg@0
   584
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   585
                .addComponent(prijemciDodatecni, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
franta-hg@0
   586
                .addContainerGap())
franta-hg@0
   587
        );
franta-hg@0
   588
franta-hg@0
   589
        jLabel4.setText("SMTP server");
franta-hg@0
   590
franta-hg@0
   591
        jLabel5.setText("Port");
franta-hg@0
   592
franta-hg@0
   593
        vstupSMTPserver.setText("localhost");
franta-hg@0
   594
franta-hg@0
   595
        vstupSMTPport.setValue(25);
franta-hg@0
   596
franta-hg@0
   597
        napovedaSMTP.setColumns(20);
franta-hg@0
   598
        napovedaSMTP.setEditable(false);
franta-hg@0
   599
        napovedaSMTP.setLineWrap(true);
franta-hg@0
   600
        napovedaSMTP.setRows(5);
franta-hg@0
   601
        napovedaSMTP.setText("Tip: některé SMTP servery mají omezený seznam počítačů, ze kterých přijímají poštu");
franta-hg@0
   602
        napovedaSMTP.setWrapStyleWord(true);
franta-hg@0
   603
        napovedaSMTPscroll.setViewportView(napovedaSMTP);
franta-hg@0
   604
franta-hg@0
   605
        jLabel6.setText("Jméno");
franta-hg@0
   606
franta-hg@0
   607
        jLabel7.setText("Heslo");
franta-hg@0
   608
franta-hg@0
   609
        vstupSMTPlimitPrijemcu.setValue(1000);
franta-hg@0
   610
franta-hg@0
   611
        jLabel8.setText("Limit příjemců");
franta-hg@0
   612
franta-hg@0
   613
        javax.swing.GroupLayout panelServerLayout = new javax.swing.GroupLayout(panelServer);
franta-hg@0
   614
        panelServer.setLayout(panelServerLayout);
franta-hg@0
   615
        panelServerLayout.setHorizontalGroup(
franta-hg@0
   616
            panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   617
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelServerLayout.createSequentialGroup()
franta-hg@0
   618
                .addContainerGap()
franta-hg@0
   619
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   620
                    .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE)
franta-hg@0
   621
                    .addGroup(panelServerLayout.createSequentialGroup()
franta-hg@0
   622
                        .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   623
                            .addComponent(jLabel4)
franta-hg@0
   624
                            .addComponent(jLabel6)
franta-hg@0
   625
                            .addComponent(jLabel5)
franta-hg@0
   626
                            .addComponent(jLabel7)
franta-hg@0
   627
                            .addComponent(jLabel8))
franta-hg@0
   628
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   629
                        .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   630
                            .addComponent(vstupSMTPserver, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
franta-hg@0
   631
                            .addComponent(vstupSMTPport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
franta-hg@0
   632
                            .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
franta-hg@0
   633
                            .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
franta-hg@0
   634
                            .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE))))
franta-hg@0
   635
                .addContainerGap())
franta-hg@0
   636
        );
franta-hg@0
   637
        panelServerLayout.setVerticalGroup(
franta-hg@0
   638
            panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   639
            .addGroup(panelServerLayout.createSequentialGroup()
franta-hg@0
   640
                .addContainerGap()
franta-hg@0
   641
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   642
                    .addComponent(jLabel4)
franta-hg@0
   643
                    .addComponent(vstupSMTPserver, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   644
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   645
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   646
                    .addComponent(vstupSMTPport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   647
                    .addComponent(jLabel5))
franta-hg@0
   648
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   649
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   650
                    .addComponent(jLabel6)
franta-hg@0
   651
                    .addComponent(vstupSMTPjmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   652
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   653
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   654
                    .addComponent(vstupSMTPheslo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   655
                    .addComponent(jLabel7))
franta-hg@0
   656
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   657
                .addGroup(panelServerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   658
                    .addComponent(vstupSMTPlimitPrijemcu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   659
                    .addComponent(jLabel8))
franta-hg@0
   660
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
franta-hg@0
   661
                .addComponent(napovedaSMTPscroll, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
franta-hg@0
   662
                .addContainerGap())
franta-hg@0
   663
        );
franta-hg@0
   664
franta-hg@0
   665
        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
   666
franta-hg@0
   667
        javax.swing.GroupLayout panelVychoziPrijemciLayout = new javax.swing.GroupLayout(panelVychoziPrijemci);
franta-hg@0
   668
        panelVychoziPrijemci.setLayout(panelVychoziPrijemciLayout);
franta-hg@0
   669
        panelVychoziPrijemciLayout.setHorizontalGroup(
franta-hg@0
   670
            panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   671
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelVychoziPrijemciLayout.createSequentialGroup()
franta-hg@0
   672
                .addContainerGap()
franta-hg@0
   673
                .addGroup(panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   674
                    .addComponent(prijemciVychozi, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
franta-hg@0
   675
                    .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE))
franta-hg@0
   676
                .addContainerGap())
franta-hg@0
   677
        );
franta-hg@0
   678
        panelVychoziPrijemciLayout.setVerticalGroup(
franta-hg@0
   679
            panelVychoziPrijemciLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   680
            .addGroup(panelVychoziPrijemciLayout.createSequentialGroup()
franta-hg@0
   681
                .addContainerGap()
franta-hg@0
   682
                .addComponent(jLabel12)
franta-hg@0
   683
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
franta-hg@0
   684
                .addComponent(prijemciVychozi, javax.swing.GroupLayout.DEFAULT_SIZE, 261, Short.MAX_VALUE)
franta-hg@0
   685
                .addContainerGap())
franta-hg@0
   686
        );
franta-hg@0
   687
franta-hg@0
   688
        jLabel1.setLabelFor(vstupPredmet);
franta-hg@0
   689
        jLabel1.setText("Předmět");
franta-hg@0
   690
franta-hg@0
   691
        vstupPredmet.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   692
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   693
                vstupPredmetActionPerformed(evt);
franta-hg@0
   694
            }
franta-hg@0
   695
        });
franta-hg@0
   696
franta-hg@0
   697
        jLabel2.setText("Jméno odesílatele");
franta-hg@0
   698
franta-hg@0
   699
        vstupZprava.setColumns(20);
franta-hg@0
   700
        vstupZprava.setRows(5);
franta-hg@0
   701
        jScrollPane1.setViewportView(vstupZprava);
franta-hg@0
   702
franta-hg@0
   703
        jLabel15.setText("Formát zprávy");
franta-hg@0
   704
franta-hg@0
   705
        odpovedetKomuOdkaz.setForeground(javax.swing.UIManager.getDefaults().getColor("windowText"));
franta-hg@0
   706
        odpovedetKomuOdkaz.setMnemonic('e');
franta-hg@0
   707
        odpovedetKomuOdkaz.setText("Adresa odesílatele");
franta-hg@0
   708
        odpovedetKomuOdkaz.setToolTipText("<html><p>Klikněte sem pro nastavení adresy,</p><p>na kterou mají chodit odpovědi</p></html>");
franta-hg@0
   709
        odpovedetKomuOdkaz.setClickedColor(javax.swing.UIManager.getDefaults().getColor("windowText"));
franta-hg@0
   710
        odpovedetKomuOdkaz.setUnclickedColor(javax.swing.UIManager.getDefaults().getColor("windowText"));
franta-hg@0
   711
        odpovedetKomuOdkaz.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   712
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   713
                odpovedetKomuOdkazActionPerformed(evt);
franta-hg@0
   714
            }
franta-hg@0
   715
        });
franta-hg@0
   716
franta-hg@17
   717
        formátSkupina.add(formátProstý);
franta-hg@17
   718
        formátProstý.setSelected(true);
franta-hg@17
   719
        formátProstý.setText("Prostý text");
franta-hg@17
   720
franta-hg@17
   721
        formátSkupina.add(formátXHTML);
franta-hg@17
   722
        formátXHTML.setText("(X)HTML");
franta-hg@17
   723
        formátXHTML.addActionListener(new java.awt.event.ActionListener() {
franta-hg@17
   724
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@17
   725
                formátXHTMLActionPerformed(evt);
franta-hg@17
   726
            }
franta-hg@17
   727
        });
franta-hg@17
   728
franta-hg@17
   729
        formátSkupina.add(formátOboje);
franta-hg@17
   730
        formátOboje.setText("Oboje");
franta-hg@17
   731
        formátOboje.addActionListener(new java.awt.event.ActionListener() {
franta-hg@17
   732
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@17
   733
                formátObojeActionPerformed(evt);
franta-hg@17
   734
            }
franta-hg@17
   735
        });
franta-hg@17
   736
franta-hg@0
   737
        javax.swing.GroupLayout panelZpravaLayout = new javax.swing.GroupLayout(panelZprava);
franta-hg@0
   738
        panelZprava.setLayout(panelZpravaLayout);
franta-hg@0
   739
        panelZpravaLayout.setHorizontalGroup(
franta-hg@0
   740
            panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   741
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup()
franta-hg@0
   742
                .addContainerGap()
franta-hg@17
   743
                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@17
   744
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 461, Short.MAX_VALUE)
franta-hg@17
   745
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup()
franta-hg@0
   746
                        .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   747
                            .addGroup(panelZpravaLayout.createSequentialGroup()
franta-hg@0
   748
                                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   749
                                    .addComponent(jLabel2)
franta-hg@0
   750
                                    .addComponent(jLabel1))
franta-hg@0
   751
                                .addGap(17, 17, 17))
franta-hg@0
   752
                            .addGroup(panelZpravaLayout.createSequentialGroup()
franta-hg@0
   753
                                .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   754
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
franta-hg@0
   755
                        .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@17
   756
                            .addComponent(vstupJmenoOdesilatele)
franta-hg@17
   757
                            .addComponent(vstupAdresaOdesilatele)
franta-hg@17
   758
                            .addComponent(vstupPredmet)))
franta-hg@17
   759
                    .addGroup(panelZpravaLayout.createSequentialGroup()
franta-hg@0
   760
                        .addComponent(jLabel15)
franta-hg@17
   761
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@17
   762
                        .addComponent(formátProstý)
franta-hg@17
   763
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@17
   764
                        .addComponent(formátXHTML)
franta-hg@17
   765
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@17
   766
                        .addComponent(formátOboje)
franta-hg@17
   767
                        .addGap(0, 0, Short.MAX_VALUE)))
franta-hg@0
   768
                .addContainerGap())
franta-hg@0
   769
        );
franta-hg@0
   770
        panelZpravaLayout.setVerticalGroup(
franta-hg@0
   771
            panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   772
            .addGroup(panelZpravaLayout.createSequentialGroup()
franta-hg@0
   773
                .addContainerGap()
franta-hg@0
   774
                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   775
                    .addComponent(jLabel1)
franta-hg@0
   776
                    .addComponent(vstupPredmet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   777
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   778
                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   779
                    .addComponent(jLabel2)
franta-hg@0
   780
                    .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   781
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   782
                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   783
                    .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   784
                    .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   785
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   786
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 184, Short.MAX_VALUE)
franta-hg@0
   787
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   788
                .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   789
                    .addComponent(jLabel15)
franta-hg@17
   790
                    .addComponent(formátProstý)
franta-hg@17
   791
                    .addComponent(formátXHTML)
franta-hg@17
   792
                    .addComponent(formátOboje))
franta-hg@0
   793
                .addContainerGap())
franta-hg@0
   794
        );
franta-hg@0
   795
franta-hg@0
   796
        odpovedetKomuDialog.setTitle("Adresa pro odpovědi");
franta-hg@0
   797
        odpovedetKomuDialog.setModal(true);
franta-hg@0
   798
franta-hg@0
   799
        jLabel18.setText("Jméno");
franta-hg@0
   800
franta-hg@0
   801
        jLabel19.setText("Adresa");
franta-hg@0
   802
franta-hg@0
   803
        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>");
franta-hg@0
   804
franta-hg@0
   805
        odpovedetKomuHotovo.setText("Hotovo");
franta-hg@0
   806
        odpovedetKomuHotovo.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   807
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   808
                odpovedetKomuHotovoActionPerformed(evt);
franta-hg@0
   809
            }
franta-hg@0
   810
        });
franta-hg@0
   811
franta-hg@0
   812
        javax.swing.GroupLayout odpovedetKomuDialogLayout = new javax.swing.GroupLayout(odpovedetKomuDialog.getContentPane());
franta-hg@0
   813
        odpovedetKomuDialog.getContentPane().setLayout(odpovedetKomuDialogLayout);
franta-hg@0
   814
        odpovedetKomuDialogLayout.setHorizontalGroup(
franta-hg@0
   815
            odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   816
            .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
franta-hg@0
   817
                .addContainerGap()
franta-hg@0
   818
                .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   819
                    .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
franta-hg@0
   820
                        .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   821
                            .addComponent(jLabel19)
franta-hg@0
   822
                            .addComponent(jLabel18))
franta-hg@0
   823
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   824
                        .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   825
                            .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE)
franta-hg@0
   826
                            .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE)))
franta-hg@0
   827
                    .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE)
franta-hg@0
   828
                    .addComponent(odpovedetKomuHotovo, javax.swing.GroupLayout.Alignment.TRAILING))
franta-hg@0
   829
                .addContainerGap())
franta-hg@0
   830
        );
franta-hg@0
   831
        odpovedetKomuDialogLayout.setVerticalGroup(
franta-hg@0
   832
            odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   833
            .addGroup(odpovedetKomuDialogLayout.createSequentialGroup()
franta-hg@0
   834
                .addContainerGap()
franta-hg@0
   835
                .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
franta-hg@0
   836
                    .addComponent(jLabel18)
franta-hg@0
   837
                    .addComponent(odpovedetKomuJmeno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   838
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   839
                .addGroup(odpovedetKomuDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   840
                    .addComponent(jLabel19)
franta-hg@0
   841
                    .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
franta-hg@0
   842
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@17
   843
                .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   844
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
franta-hg@0
   845
                .addComponent(odpovedetKomuHotovo)
franta-hg@0
   846
                .addContainerGap())
franta-hg@0
   847
        );
franta-hg@0
   848
franta-hg@0
   849
        setTitle("SuperPošťák");
franta-hg@0
   850
        addWindowListener(new java.awt.event.WindowAdapter() {
franta-hg@0
   851
            public void windowClosing(java.awt.event.WindowEvent evt) {
franta-hg@0
   852
                formWindowClosing(evt);
franta-hg@0
   853
            }
franta-hg@0
   854
        });
franta-hg@0
   855
franta-hg@0
   856
        jXHeader1.setDescription("Program pro posílání hromadných zpráv elektronickou poštou.\nNezneužívejte pro rozesílání spamu.");
franta-hg@0
   857
        jXHeader1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/xfmail.png"))); // NOI18N
franta-hg@0
   858
        jXHeader1.setTitle("SuperPošťák");
franta-hg@0
   859
franta-hg@0
   860
        taskPanel.setBackground(javax.swing.UIManager.getDefaults().getColor("Button.background"));
franta-hg@0
   861
franta-hg@0
   862
        jXTaskPane1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/mail_generic.png"))); // NOI18N
franta-hg@0
   863
        jXTaskPane1.setTitle("Hromadná zpráva");
franta-hg@0
   864
franta-hg@0
   865
        lnText.setMnemonic('z');
franta-hg@0
   866
        lnText.setText("Text zprávy");
franta-hg@0
   867
        lnText.setActionCommand("Zpráva");
franta-hg@0
   868
        lnText.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   869
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   870
                lnTextActionPerformed(evt);
franta-hg@0
   871
            }
franta-hg@0
   872
        });
franta-hg@0
   873
        jXTaskPane1.getContentPane().add(lnText);
franta-hg@0
   874
franta-hg@0
   875
        lnPrijemci.setMnemonic('p');
franta-hg@0
   876
        lnPrijemci.setText("Příjemci");
franta-hg@0
   877
        lnPrijemci.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   878
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   879
                lnPrijemciActionPerformed(evt);
franta-hg@0
   880
            }
franta-hg@0
   881
        });
franta-hg@0
   882
        jXTaskPane1.getContentPane().add(lnPrijemci);
franta-hg@0
   883
franta-hg@0
   884
        lnOdeslat.setMnemonic('o');
franta-hg@0
   885
        lnOdeslat.setText("Odeslat");
franta-hg@0
   886
        lnOdeslat.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   887
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   888
                lnOdeslatActionPerformed(evt);
franta-hg@0
   889
            }
franta-hg@0
   890
        });
franta-hg@0
   891
        jXTaskPane1.getContentPane().add(lnOdeslat);
franta-hg@0
   892
franta-hg@0
   893
        taskPanel.add(jXTaskPane1);
franta-hg@0
   894
franta-hg@0
   895
        jXTaskPane2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/frantovo/superPostak/obrazky/gear.png"))); // NOI18N
franta-hg@0
   896
        jXTaskPane2.setTitle("Nastavení");
franta-hg@0
   897
franta-hg@0
   898
        lnServer.setMnemonic('s');
franta-hg@0
   899
        lnServer.setText("Poštovní server");
franta-hg@0
   900
        lnServer.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   901
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   902
                lnServerActionPerformed(evt);
franta-hg@0
   903
            }
franta-hg@0
   904
        });
franta-hg@0
   905
        jXTaskPane2.getContentPane().add(lnServer);
franta-hg@0
   906
franta-hg@0
   907
        lnDatabaze.setMnemonic('d');
franta-hg@0
   908
        lnDatabaze.setText("Databáze");
franta-hg@0
   909
        lnDatabaze.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   910
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   911
                lnDatabazeActionPerformed(evt);
franta-hg@0
   912
            }
franta-hg@0
   913
        });
franta-hg@0
   914
        jXTaskPane2.getContentPane().add(lnDatabaze);
franta-hg@0
   915
franta-hg@0
   916
        lnVychoziPrijemci.setMnemonic('v');
franta-hg@0
   917
        lnVychoziPrijemci.setText("Výchozí příjemci");
franta-hg@0
   918
        lnVychoziPrijemci.addActionListener(new java.awt.event.ActionListener() {
franta-hg@0
   919
            public void actionPerformed(java.awt.event.ActionEvent evt) {
franta-hg@0
   920
                lnVychoziPrijemciActionPerformed(evt);
franta-hg@0
   921
            }
franta-hg@0
   922
        });
franta-hg@0
   923
        jXTaskPane2.getContentPane().add(lnVychoziPrijemci);
franta-hg@0
   924
franta-hg@0
   925
        taskPanel.add(jXTaskPane2);
franta-hg@0
   926
franta-hg@0
   927
        panel.setLayout(new java.awt.CardLayout());
franta-hg@0
   928
franta-hg@0
   929
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
franta-hg@0
   930
        getContentPane().setLayout(layout);
franta-hg@0
   931
        layout.setHorizontalGroup(
franta-hg@0
   932
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   933
            .addGroup(layout.createSequentialGroup()
franta-hg@0
   934
                .addComponent(taskPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   935
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   936
                .addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, 342, Short.MAX_VALUE))
franta-hg@0
   937
            .addComponent(jXHeader1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE)
franta-hg@0
   938
        );
franta-hg@0
   939
        layout.setVerticalGroup(
franta-hg@0
   940
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
franta-hg@0
   941
            .addGroup(layout.createSequentialGroup()
franta-hg@0
   942
                .addComponent(jXHeader1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
franta-hg@0
   943
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
franta-hg@0
   944
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
franta-hg@0
   945
                    .addComponent(taskPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE)
franta-hg@0
   946
                    .addComponent(panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 340, Short.MAX_VALUE)))
franta-hg@0
   947
        );
franta-hg@0
   948
franta-hg@0
   949
        pack();
franta-hg@0
   950
    }// </editor-fold>//GEN-END:initComponents
franta-hg@0
   951
    private void vstupPredmetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vstupPredmetActionPerformed
franta-hg@0
   952
}//GEN-LAST:event_vstupPredmetActionPerformed
franta-hg@0
   953
franta-hg@0
   954
    private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed
franta-hg@13
   955
		setPanel(panelZprava);
franta-hg@0
   956
    }//GEN-LAST:event_lnTextActionPerformed
franta-hg@0
   957
franta-hg@0
   958
    private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed
franta-hg@13
   959
		setPanel(panelPrijemci);
franta-hg@0
   960
    }//GEN-LAST:event_lnPrijemciActionPerformed
franta-hg@0
   961
franta-hg@0
   962
    private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed
franta-hg@13
   963
		setPanel(panelOdeslat);
franta-hg@0
   964
    }//GEN-LAST:event_lnOdeslatActionPerformed
franta-hg@0
   965
franta-hg@0
   966
    private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed
franta-hg@13
   967
		setPanel(panelServer);
franta-hg@0
   968
    }//GEN-LAST:event_lnServerActionPerformed
franta-hg@0
   969
franta-hg@0
   970
    private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed
franta-hg@13
   971
		setPanel(panelDatabaze);
franta-hg@0
   972
    }//GEN-LAST:event_lnDatabazeActionPerformed
franta-hg@0
   973
franta-hg@0
   974
    private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed
franta-hg@13
   975
		setPanel(panelVychoziPrijemci);
franta-hg@0
   976
    }//GEN-LAST:event_lnVychoziPrijemciActionPerformed
franta-hg@0
   977
franta-hg@0
   978
    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
franta-hg@13
   979
		ulozNastaveni();
franta-hg@13
   980
		log.log(Level.WARNING, "Ukončuji program.");
franta-hg@0
   981
    }//GEN-LAST:event_formWindowClosing
franta-hg@0
   982
franta-hg@13
   983
	/**
franta-hg@13
   984
	 * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců,
franta-hg@13
   985
	 * ti se přidají až dodatečně, podle toho,
franta-hg@13
   986
	 * jestli jde o zkušební nebo skutečné rozesílání.
franta-hg@13
   987
	 */
franta-hg@13
   988
	private HromadnaZprava getZprava() throws UnsupportedEncodingException {
franta-hg@13
   989
		HromadnaZprava zprava = new HromadnaZprava();
franta-hg@13
   990
		zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText()));
franta-hg@13
   991
		zprava.setPredmet(vstupPredmet.getText());
franta-hg@13
   992
		zprava.setText(vstupZprava.getText());
franta-hg@17
   993
franta-hg@17
   994
		if (formátProstý.isSelected()) {
franta-hg@17
   995
			zprava.setFormatHTML(HromadnaZprava.FORMÁT.PROSTÝ_TEXT);
franta-hg@17
   996
		} else if (formátXHTML.isSelected()) {
franta-hg@17
   997
			zprava.setFormatHTML(HromadnaZprava.FORMÁT.XHTML);
franta-hg@17
   998
		} else if (formátOboje.isSelected()) {
franta-hg@17
   999
			zprava.setFormatHTML(HromadnaZprava.FORMÁT.OBOJE);
franta-hg@17
  1000
		} else {
franta-hg@17
  1001
			log.severe("Není zvolen formát zprávy → nastavuji: prostý text.");
franta-hg@17
  1002
			zprava.setFormatHTML(HromadnaZprava.FORMÁT.PROSTÝ_TEXT);
franta-hg@17
  1003
		}
franta-hg@0
  1004
franta-hg@13
  1005
		if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) {
franta-hg@13
  1006
			InternetAddress komu = new InternetAddress();
franta-hg@13
  1007
			komu.setPersonal(odpovedetKomuJmeno.getText());
franta-hg@13
  1008
			komu.setAddress(odpovedetKomuAdresa.getText());
franta-hg@13
  1009
			zprava.setOdpovedetKomu(komu);
franta-hg@13
  1010
		}
franta-hg@0
  1011
franta-hg@13
  1012
		return zprava;
franta-hg@13
  1013
	}
franta-hg@0
  1014
franta-hg@13
  1015
	/** Všichni příjemci, kterým bude odeslána ostrá zpráva. */
franta-hg@13
  1016
	private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException {
franta-hg@13
  1017
		ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>();
franta-hg@13
  1018
		Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci();
franta-hg@13
  1019
		Collection<InternetAddressKomu> adresySQL = getPrijemciSQL();
franta-hg@13
  1020
		Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy();
franta-hg@0
  1021
franta-hg@13
  1022
		if (adresyVychozi != null) {
franta-hg@13
  1023
			vsichni.addAll(adresyVychozi);
franta-hg@13
  1024
		}
franta-hg@13
  1025
		if (adresySQL != null) {
franta-hg@13
  1026
			vsichni.addAll(adresySQL);
franta-hg@13
  1027
		}
franta-hg@13
  1028
		if (adresyDodatecne != null) {
franta-hg@13
  1029
			vsichni.addAll(adresyDodatecne);
franta-hg@13
  1030
		}
franta-hg@13
  1031
		return vsichni;
franta-hg@13
  1032
	}
franta-hg@0
  1033
franta-hg@0
  1034
    private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
franta-hg@13
  1035
		try {
franta-hg@13
  1036
			ulozNastaveniGUI();
franta-hg@13
  1037
			HromadnaZprava zprava = getZprava();
franta-hg@13
  1038
			zprava.setPrijemci(getPrijemciVsichni());
franta-hg@0
  1039
franta-hg@13
  1040
			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
  1041
			if (volba == JOptionPane.YES_OPTION) {
franta-hg@13
  1042
				odesli(zprava);
franta-hg@13
  1043
				Postak.vypisPrijemce(zprava.getPrijemci());
franta-hg@13
  1044
				zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true);
franta-hg@13
  1045
			}
franta-hg@13
  1046
		} catch (Exception e) {
franta-hg@13
  1047
			zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
franta-hg@13
  1048
		}
franta-hg@0
  1049
}//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
franta-hg@0
  1050
franta-hg@0
  1051
    private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed
franta-hg@13
  1052
		try {
franta-hg@13
  1053
			ulozNastaveniGUI();
franta-hg@13
  1054
			HromadnaZprava zprava = getZprava();
franta-hg@13
  1055
			zprava.setPrijemci(prijemciZkusebni.getAdresy());
franta-hg@0
  1056
franta-hg@13
  1057
			odesli(zprava);
franta-hg@0
  1058
franta-hg@13
  1059
			zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true);
franta-hg@13
  1060
		} catch (Exception e) {
franta-hg@13
  1061
			zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
franta-hg@13
  1062
		}
franta-hg@0
  1063
    }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed
franta-hg@0
  1064
franta-hg@0
  1065
    private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed
franta-hg@13
  1066
		try {
franta-hg@0
  1067
            getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed
franta-hg@13
  1068
			zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false);
franta-hg@13
  1069
		} catch (SQLException e) {
franta-hg@13
  1070
			zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true);
franta-hg@13
  1071
		}
franta-hg@13
  1072
	}
franta-hg@0
  1073
franta-hg@0
  1074
    private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed
franta-hg@13
  1075
		try {
franta-hg@0
  1076
            Collection<InternetAddressKomu> adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed
franta-hg@13
  1077
			if (adresy == null) {
franta-hg@13
  1078
				zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false);
franta-hg@13
  1079
			} else {
franta-hg@13
  1080
				zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false);
franta-hg@13
  1081
			}
franta-hg@13
  1082
		} catch (Exception e) {
franta-hg@13
  1083
			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
franta-hg@13
  1084
		}
franta-hg@13
  1085
	}
franta-hg@0
  1086
franta-hg@0
  1087
    private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
franta-hg@13
  1088
		try {
franta-hg@13
  1089
			Collection<InternetAddressKomu> adresy = getPrijemciSQL();
franta-hg@0
  1090
franta-hg@13
  1091
			ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
franta-hg@5
  1092
			zobrazovac.setNastaveni(nastaveni);
franta-hg@13
  1093
			zobrazovac.setAdresy(adresy);
franta-hg@13
  1094
			zobrazovac.setLocationRelativeTo(this);
franta-hg@13
  1095
			zobrazovac.setVisible(true);
franta-hg@0
  1096
franta-hg@13
  1097
		} catch (Exception e) {
franta-hg@13
  1098
			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
franta-hg@13
  1099
		}
franta-hg@0
  1100
    }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
franta-hg@0
  1101
franta-hg@0
  1102
    private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
franta-hg@13
  1103
		try {
franta-hg@13
  1104
			Collection<InternetAddressKomu> adresy = getPrijemciVsichni();
franta-hg@0
  1105
franta-hg@13
  1106
			ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
franta-hg@13
  1107
			zobrazovac.setAdresy(adresy);
franta-hg@13
  1108
			zobrazovac.setLocationRelativeTo(this);
franta-hg@13
  1109
			zobrazovac.setVisible(true);
franta-hg@0
  1110
franta-hg@13
  1111
		} catch (Exception e) {
franta-hg@13
  1112
			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
franta-hg@13
  1113
		}
franta-hg@0
  1114
    }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
franta-hg@0
  1115
franta-hg@0
  1116
    private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed
franta-hg@13
  1117
		odpovedetKomuDialog.pack();
franta-hg@13
  1118
		odpovedetKomuDialog.setLocationRelativeTo(this);
franta-hg@13
  1119
		odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL);
franta-hg@13
  1120
		odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo);
franta-hg@13
  1121
		odpovedetKomuDialog.setVisible(true);
franta-hg@0
  1122
}//GEN-LAST:event_odpovedetKomuOdkazActionPerformed
franta-hg@0
  1123
franta-hg@0
  1124
    private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed
franta-hg@13
  1125
		odpovedetKomuDialog.setVisible(false);
franta-hg@14
  1126
franta-hg@14
  1127
		if (vstupJmenoOdesilatele.getText().isEmpty()) {
franta-hg@14
  1128
			vstupJmenoOdesilatele.setText(odpovedetKomuJmeno.getText());
franta-hg@14
  1129
		}
franta-hg@14
  1130
franta-hg@14
  1131
		if (vstupAdresaOdesilatele.getText().isEmpty()) {
franta-hg@14
  1132
			String[] částiAdresy = odpovedetKomuAdresa.getText().split("@");
franta-hg@14
  1133
			if (částiAdresy.length == 2) {
franta-hg@14
  1134
				vstupAdresaOdesilatele.setText("noreply@" + částiAdresy[1]);
franta-hg@14
  1135
			}
franta-hg@14
  1136
		}
franta-hg@0
  1137
}//GEN-LAST:event_odpovedetKomuHotovoActionPerformed
franta-hg@0
  1138
franta-hg@17
  1139
	private void formátXHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formátXHTMLActionPerformed
franta-hg@17
  1140
		nastavVýchozíXHTML();
franta-hg@17
  1141
	}//GEN-LAST:event_formátXHTMLActionPerformed
franta-hg@17
  1142
franta-hg@17
  1143
	private void formátObojeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formátObojeActionPerformed
franta-hg@17
  1144
		nastavVýchozíXHTML();
franta-hg@17
  1145
	}//GEN-LAST:event_formátObojeActionPerformed
franta-hg@17
  1146
franta-hg@17
  1147
	/**
franta-hg@17
  1148
	 * Pokud ještě není vyplněn žádný text, vložíme šablonu.
franta-hg@17
  1149
	 */
franta-hg@17
  1150
	private void nastavVýchozíXHTML() {
franta-hg@17
  1151
		if (vstupZprava.getText().isEmpty()) {
franta-hg@17
  1152
			vstupZprava.setText("<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
franta-hg@17
  1153
					+ "<body>\n\n"
franta-hg@17
  1154
					+ "<p></p>\n"
franta-hg@17
  1155
					+ "<div class=\"patička\"></div>\n\n"
franta-hg@17
  1156
					+ "</body>\n"
franta-hg@17
  1157
					+ "</html>");
franta-hg@17
  1158
		}
franta-hg@17
  1159
	}
franta-hg@17
  1160
franta-hg@13
  1161
	/** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */
franta-hg@13
  1162
	private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException {
franta-hg@13
  1163
		if ("".equals(vstupSQL.getText())) {
franta-hg@13
  1164
			return null;
franta-hg@13
  1165
		} else {
franta-hg@13
  1166
			return getSpojeni().getAdresy(vstupSQL.getText());
franta-hg@13
  1167
		}
franta-hg@13
  1168
	}
franta-hg@0
  1169
franta-hg@13
  1170
	private DataSQL getSpojeni() throws SQLException {
franta-hg@13
  1171
		return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword());
franta-hg@13
  1172
	}
franta-hg@0
  1173
franta-hg@13
  1174
	/** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */
franta-hg@13
  1175
	private void odesli(HromadnaZprava zprava) throws MessagingException {
franta-hg@13
  1176
		setCursor(new Cursor(Cursor.WAIT_CURSOR));
franta-hg@13
  1177
		try {
franta-hg@13
  1178
			postak.setNastaveni(nastaveni);
franta-hg@13
  1179
			postak.odesli(zprava);
franta-hg@0
  1180
franta-hg@13
  1181
		} catch (MessagingException e) {
franta-hg@13
  1182
			throw e;
franta-hg@13
  1183
		} finally {
franta-hg@13
  1184
			setCursor(Cursor.getDefaultCursor());
franta-hg@13
  1185
		}
franta-hg@13
  1186
	}
franta-hg@0
  1187
franta-hg@13
  1188
	private void setPanel(JComponent komponenta) {
franta-hg@0
  1189
franta-hg@13
  1190
		if (panel.getLayout() instanceof CardLayout) {
franta-hg@13
  1191
			CardLayout l = (CardLayout) panel.getLayout();
franta-hg@13
  1192
			l.show(panel, komponenta.getName());
franta-hg@13
  1193
		} else {
franta-hg@13
  1194
			log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout");
franta-hg@13
  1195
		}
franta-hg@0
  1196
franta-hg@13
  1197
	}
franta-hg@0
  1198
franta-hg@13
  1199
	/** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */
franta-hg@13
  1200
	private void vyresitTabFocusProblem(JTextArea textArea) {
franta-hg@13
  1201
		textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null);
franta-hg@13
  1202
		textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null);
franta-hg@13
  1203
	}
franta-hg@0
  1204
franta-hg@13
  1205
	public JXTaskPaneContainer getTaskPanel() {
franta-hg@13
  1206
		return taskPanel;
franta-hg@13
  1207
	}
franta-hg@0
  1208
franta-hg@13
  1209
	/**
franta-hg@13
  1210
	 * @param args the command line arguments
franta-hg@13
  1211
	 */
franta-hg@13
  1212
	public static void main(String args[]) {
franta-hg@13
  1213
		final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit"));
franta-hg@0
  1214
franta-hg@13
  1215
		try {
franta-hg@13
  1216
			//LookAndFeel laf = UIManager.getLookAndFeel();
franta-hg@0
  1217
franta-hg@13
  1218
			//laf = new SubstanceLookAndFeel();
franta-hg@13
  1219
			//laf = new SubstanceBusinessLookAndFeel();
franta-hg@13
  1220
			//laf = new SubstanceBusinessBlueSteelLookAndFeel();
franta-hg@13
  1221
			//laf = new SubstanceBusinessBlackSteelLookAndFeel();
franta-hg@0
  1222
franta-hg@13
  1223
			UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel");
franta-hg@13
  1224
		} catch (ClassNotFoundException ex) {
franta-hg@13
  1225
			log.log(Level.SEVERE, null, ex);
franta-hg@13
  1226
		} catch (InstantiationException ex) {
franta-hg@13
  1227
			log.log(Level.SEVERE, null, ex);
franta-hg@13
  1228
		} catch (IllegalAccessException ex) {
franta-hg@13
  1229
			log.log(Level.SEVERE, null, ex);
franta-hg@13
  1230
		} catch (UnsupportedLookAndFeelException ex) {
franta-hg@13
  1231
			log.log(Level.SEVERE, null, ex);
franta-hg@13
  1232
		}
franta-hg@0
  1233
franta-hg@13
  1234
		java.awt.EventQueue.invokeLater(new Runnable() {
franta-hg@0
  1235
franta-hg@13
  1236
			public void run() {
franta-hg@13
  1237
				new SuperPostak(ladit, true).setVisible(true);
franta-hg@13
  1238
			}
franta-hg@13
  1239
		});
franta-hg@13
  1240
	}
franta-hg@0
  1241
    // Variables declaration - do not modify//GEN-BEGIN:variables
franta-hg@17
  1242
    private javax.swing.JRadioButton formátOboje;
franta-hg@17
  1243
    private javax.swing.JRadioButton formátProstý;
franta-hg@17
  1244
    private javax.swing.ButtonGroup formátSkupina;
franta-hg@17
  1245
    private javax.swing.JRadioButton formátXHTML;
franta-hg@0
  1246
    private javax.swing.JLabel jLabel1;
franta-hg@0
  1247
    private javax.swing.JLabel jLabel10;
franta-hg@0
  1248
    private javax.swing.JLabel jLabel11;
franta-hg@0
  1249
    private javax.swing.JLabel jLabel12;
franta-hg@0
  1250
    private javax.swing.JLabel jLabel13;
franta-hg@0
  1251
    private javax.swing.JLabel jLabel14;
franta-hg@0
  1252
    private javax.swing.JLabel jLabel15;
franta-hg@0
  1253
    private javax.swing.JLabel jLabel16;
franta-hg@0
  1254
    private javax.swing.JLabel jLabel17;
franta-hg@0
  1255
    private javax.swing.JLabel jLabel18;
franta-hg@0
  1256
    private javax.swing.JLabel jLabel19;
franta-hg@0
  1257
    private javax.swing.JLabel jLabel2;
franta-hg@0
  1258
    private javax.swing.JLabel jLabel4;
franta-hg@0
  1259
    private javax.swing.JLabel jLabel5;
franta-hg@0
  1260
    private javax.swing.JLabel jLabel6;
franta-hg@0
  1261
    private javax.swing.JLabel jLabel7;
franta-hg@0
  1262
    private javax.swing.JLabel jLabel8;
franta-hg@0
  1263
    private javax.swing.JLabel jLabel9;
franta-hg@0
  1264
    private javax.swing.JPanel jPanel1;
franta-hg@0
  1265
    private javax.swing.JScrollPane jScrollPane1;
franta-hg@0
  1266
    private javax.swing.JScrollPane jScrollPane3;
franta-hg@0
  1267
    private javax.swing.JSeparator jSeparator1;
franta-hg@0
  1268
    private javax.swing.JSeparator jSeparator2;
franta-hg@0
  1269
    private org.jdesktop.swingx.JXHeader jXHeader1;
franta-hg@0
  1270
    private org.jdesktop.swingx.JXTaskPane jXTaskPane1;
franta-hg@0
  1271
    private org.jdesktop.swingx.JXTaskPane jXTaskPane2;
franta-hg@0
  1272
    private org.jdesktop.swingx.JXHyperlink lnDatabaze;
franta-hg@0
  1273
    private org.jdesktop.swingx.JXHyperlink lnOdeslat;
franta-hg@0
  1274
    private org.jdesktop.swingx.JXHyperlink lnPrijemci;
franta-hg@0
  1275
    private org.jdesktop.swingx.JXHyperlink lnServer;
franta-hg@0
  1276
    private org.jdesktop.swingx.JXHyperlink lnText;
franta-hg@0
  1277
    private org.jdesktop.swingx.JXHyperlink lnVychoziPrijemci;
franta-hg@0
  1278
    private javax.swing.JTextArea napovedaSMTP;
franta-hg@0
  1279
    private javax.swing.JScrollPane napovedaSMTPscroll;
franta-hg@0
  1280
    private javax.swing.JTextField odpovedetKomuAdresa;
franta-hg@0
  1281
    private javax.swing.JDialog odpovedetKomuDialog;
franta-hg@0
  1282
    private javax.swing.JButton odpovedetKomuHotovo;
franta-hg@0
  1283
    private javax.swing.JTextField odpovedetKomuJmeno;
franta-hg@0
  1284
    private org.jdesktop.swingx.JXHyperlink odpovedetKomuOdkaz;
franta-hg@0
  1285
    private org.jdesktop.swingx.JXPanel panel;
franta-hg@0
  1286
    private org.jdesktop.swingx.JXPanel panelDatabaze;
franta-hg@0
  1287
    private org.jdesktop.swingx.JXPanel panelOdeslat;
franta-hg@0
  1288
    private org.jdesktop.swingx.JXPanel panelPrijemci;
franta-hg@0
  1289
    private org.jdesktop.swingx.JXPanel panelServer;
franta-hg@0
  1290
    private org.jdesktop.swingx.JXPanel panelVychoziPrijemci;
franta-hg@0
  1291
    private org.jdesktop.swingx.JXPanel panelZprava;
franta-hg@0
  1292
    private cz.frantovo.superPostak.PanelPrijemcu prijemciDodatecni;
franta-hg@0
  1293
    private cz.frantovo.superPostak.PanelPrijemcu prijemciVychozi;
franta-hg@0
  1294
    private cz.frantovo.superPostak.PanelPrijemcu prijemciZkusebni;
franta-hg@0
  1295
    private javax.swing.JButton rozeslatHromadnouZpravuTlacitko;
franta-hg@0
  1296
    private javax.swing.JButton rozeslatZkusebniTlacitko;
franta-hg@0
  1297
    private org.jdesktop.swingx.JXTaskPaneContainer taskPanel;
franta-hg@0
  1298
    private javax.swing.JTextField vstupAdresaOdesilatele;
franta-hg@0
  1299
    private javax.swing.JPasswordField vstupDBheslo;
franta-hg@0
  1300
    private javax.swing.JTextField vstupDBjmeno;
franta-hg@0
  1301
    private javax.swing.JTextField vstupDatabaze;
franta-hg@0
  1302
    private javax.swing.JTextField vstupJmenoOdesilatele;
franta-hg@0
  1303
    private javax.swing.JTextField vstupPredmet;
franta-hg@0
  1304
    private javax.swing.JPasswordField vstupSMTPheslo;
franta-hg@0
  1305
    private javax.swing.JTextField vstupSMTPjmeno;
franta-hg@0
  1306
    private javax.swing.JSpinner vstupSMTPlimitPrijemcu;
franta-hg@0
  1307
    private javax.swing.JSpinner vstupSMTPport;
franta-hg@0
  1308
    private javax.swing.JTextField vstupSMTPserver;
franta-hg@0
  1309
    private javax.swing.JTextArea vstupSQL;
franta-hg@0
  1310
    private javax.swing.JTextArea vstupZprava;
franta-hg@0
  1311
    private javax.swing.JLabel vystupDBzprava;
franta-hg@0
  1312
    private javax.swing.JLabel vystupSQLZprava;
franta-hg@0
  1313
    private javax.swing.JButton vyzkousetPripojeniTlacitko;
franta-hg@0
  1314
    private javax.swing.JButton vyzkousetSQLTlacitko;
franta-hg@0
  1315
    private javax.swing.JButton zobrazitSQLPrijemceTlacitko;
franta-hg@0
  1316
    private javax.swing.JButton zobrazitVsechnyPrijemceTlacitko;
franta-hg@0
  1317
    // End of variables declaration//GEN-END:variables
franta-hg@0
  1318
}