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