java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java
changeset 13 b15d81be8af3
parent 7 66667bb5a6cc
child 14 3a12bd9312b1
     1.1 --- a/java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java	Wed Jan 05 14:19:35 2011 +0100
     1.2 +++ b/java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java	Tue Nov 29 17:16:47 2011 +0100
     1.3 @@ -44,255 +44,255 @@
     1.4   */
     1.5  public class SuperPostak extends javax.swing.JFrame {
     1.6  
     1.7 -    /** Soubor, kde je uložené nastavení */
     1.8 -    private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz";
     1.9 -    private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore";
    1.10 -    private static final String NASTAVENI_SLOZKA = ".SuperPostak";
    1.11 -    private static final String DOMACI_ADRESAR = System.getProperty("user.home");
    1.12 -    private static final Logger log = Logger.getLogger(SuperPostak.class.getName());
    1.13 -    private static final long serialVersionUID = -7026850569575604048L;
    1.14 -    private Nastaveni nastaveni = new Nastaveni();
    1.15 -    private Postak postak = new Postak(nastaveni);
    1.16 +	/** Soubor, kde je uložené nastavení */
    1.17 +	private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz";
    1.18 +	private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore";
    1.19 +	private static final String NASTAVENI_SLOZKA = ".SuperPostak";
    1.20 +	private static final String DOMACI_ADRESAR = System.getProperty("user.home");
    1.21 +	private static final Logger log = Logger.getLogger(SuperPostak.class.getName());
    1.22 +	private static final long serialVersionUID = -7026850569575604048L;
    1.23 +	private Nastaveni nastaveni = new Nastaveni();
    1.24 +	private Postak postak = new Postak(nastaveni);
    1.25  
    1.26 -    /**
    1.27 -     * Creates new form SuperPostak
    1.28 -     * @param ladit předvyplní testovací hodnoty - zprávu
    1.29 -     * @param exit při zavření okna ukončí program     
    1.30 -     */
    1.31 -    public SuperPostak(boolean ladit, boolean exit) {
    1.32 -        log.log(Level.WARNING, "Program byl spuštěn.");
    1.33 -        nactiOvladaceJDBC();
    1.34 -        vytvorSlozkuProgramu();
    1.35 -        initComponents();
    1.36 +	/**
    1.37 +	 * Creates new form SuperPostak
    1.38 +	 * @param ladit předvyplní testovací hodnoty - zprávu
    1.39 +	 * @param exit při zavření okna ukončí program
    1.40 +	 */
    1.41 +	public SuperPostak(boolean ladit, boolean exit) {
    1.42 +		log.log(Level.WARNING, "Program byl spuštěn.");
    1.43 +		nactiOvladaceJDBC();
    1.44 +		vytvorSlozkuProgramu();
    1.45 +		initComponents();
    1.46  
    1.47 -        nactiNastaveni();
    1.48 -        ulozNastaveni();
    1.49 -        nastaveni.setCestaKCertifikatum(getCestaKCertifikatum());
    1.50 +		nactiNastaveni();
    1.51 +		ulozNastaveni();
    1.52 +		nastaveni.setCestaKCertifikatum(getCestaKCertifikatum());
    1.53  
    1.54 -        inicializujCardLayout();
    1.55 -        setLocationRelativeTo(null);
    1.56 +		inicializujCardLayout();
    1.57 +		setLocationRelativeTo(null);
    1.58  
    1.59  		/** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */
    1.60  		prijemciDodatecni.setNastaveni(nastaveni);
    1.61  		prijemciVychozi.setNastaveni(nastaveni);
    1.62  		prijemciZkusebni.setNastaveni(nastaveni);
    1.63  
    1.64 -        /** Vyřešíme problém TAB vs. Focus */
    1.65 -        vyresitTabFocusProblem(vstupSQL);
    1.66 -        vyresitTabFocusProblem(vstupZprava);
    1.67 +		/** Vyřešíme problém TAB vs. Focus */
    1.68 +		vyresitTabFocusProblem(vstupSQL);
    1.69 +		vyresitTabFocusProblem(vstupZprava);
    1.70  
    1.71 -        /** Ladicí hodnoty */
    1.72 -        if (ladit) {
    1.73 -            nastavLadiciHodnoty();
    1.74 -        }
    1.75 +		/** Ladicí hodnoty */
    1.76 +		if (ladit) {
    1.77 +			nastavLadiciHodnoty();
    1.78 +		}
    1.79  
    1.80 -        if (exit) {
    1.81 -            setDefaultCloseOperation(EXIT_ON_CLOSE);
    1.82 -        }
    1.83 +		if (exit) {
    1.84 +			setDefaultCloseOperation(EXIT_ON_CLOSE);
    1.85 +		}
    1.86  
    1.87  
    1.88 -    }
    1.89 +	}
    1.90  
    1.91 -    private void inicializujCardLayout() {
    1.92 -        panelDatabaze.setName("panelDatabaze");
    1.93 -        panelOdeslat.setName("panelOdeslat");
    1.94 -        panelPrijemci.setName("panelPrijemci");
    1.95 -        panelServer.setName("panelServer");
    1.96 -        panelVychoziPrijemci.setName("panelVychoziPrijemci");
    1.97 -        panelZprava.setName("panelZprava");
    1.98 +	private void inicializujCardLayout() {
    1.99 +		panelDatabaze.setName("panelDatabaze");
   1.100 +		panelOdeslat.setName("panelOdeslat");
   1.101 +		panelPrijemci.setName("panelPrijemci");
   1.102 +		panelServer.setName("panelServer");
   1.103 +		panelVychoziPrijemci.setName("panelVychoziPrijemci");
   1.104 +		panelZprava.setName("panelZprava");
   1.105  
   1.106 -        panel.add(panelDatabaze, panelDatabaze.getName());
   1.107 -        panel.add(panelOdeslat, panelOdeslat.getName());
   1.108 -        panel.add(panelPrijemci, panelPrijemci.getName());
   1.109 -        panel.add(panelServer, panelServer.getName());
   1.110 -        panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName());
   1.111 -        panel.add(panelZprava, panelZprava.getName());
   1.112 +		panel.add(panelDatabaze, panelDatabaze.getName());
   1.113 +		panel.add(panelOdeslat, panelOdeslat.getName());
   1.114 +		panel.add(panelPrijemci, panelPrijemci.getName());
   1.115 +		panel.add(panelServer, panelServer.getName());
   1.116 +		panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName());
   1.117 +		panel.add(panelZprava, panelZprava.getName());
   1.118  
   1.119 -        setPanel(panelZprava);
   1.120 -        pack();
   1.121 -    }
   1.122 +		setPanel(panelZprava);
   1.123 +		pack();
   1.124 +	}
   1.125  
   1.126 -    /**
   1.127 -     * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami,
   1.128 -     * aby se dal program testovat jedním kliknutím.
   1.129 -     */
   1.130 -    private void nastavLadiciHodnoty() {
   1.131 -        try {
   1.132 -            vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz");
   1.133 -            vstupJmenoOdesilatele.setText("SuperPošťák");
   1.134 -            vstupPredmet.setText("Zkušební zpráva od SuperPošťáka");
   1.135 -            vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)");
   1.136 -            ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>();
   1.137 -            adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák"));
   1.138 -            prijemciZkusebni.setAdresy(adresy);
   1.139 -        } catch (UnsupportedEncodingException e) {
   1.140 -            log.log(Level.SEVERE, null, e);
   1.141 -        }
   1.142 -    }
   1.143 +	/**
   1.144 +	 * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami,
   1.145 +	 * aby se dal program testovat jedním kliknutím.
   1.146 +	 */
   1.147 +	private void nastavLadiciHodnoty() {
   1.148 +		try {
   1.149 +			vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz");
   1.150 +			vstupJmenoOdesilatele.setText("SuperPošťák");
   1.151 +			vstupPredmet.setText("Zkušební zpráva od SuperPošťáka");
   1.152 +			vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)");
   1.153 +			ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>();
   1.154 +			adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák"));
   1.155 +			prijemciZkusebni.setAdresy(adresy);
   1.156 +		} catch (UnsupportedEncodingException e) {
   1.157 +			log.log(Level.SEVERE, null, e);
   1.158 +		}
   1.159 +	}
   1.160  
   1.161 -    /**
   1.162 -     * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu.
   1.163 -     * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách.
   1.164 -     * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161
   1.165 -     */
   1.166 -    private void nactiOvladaceJDBC() {
   1.167 -        nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL");
   1.168 -        nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL");
   1.169 -        nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL");
   1.170 -        nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com");
   1.171 -        nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle");
   1.172 -    }
   1.173 +	/**
   1.174 +	 * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu.
   1.175 +	 * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách.
   1.176 +	 * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161
   1.177 +	 */
   1.178 +	private void nactiOvladaceJDBC() {
   1.179 +		nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL");
   1.180 +		nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL");
   1.181 +		nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL");
   1.182 +		nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com");
   1.183 +		nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle");
   1.184 +	}
   1.185  
   1.186 -    /**
   1.187 -     * @param trida ovladač databáze, který se má načíst
   1.188 -     * @param jmeno název databáze     
   1.189 -     */
   1.190 -    private void nactiOvladacJDBC(String trida, String jmeno) {
   1.191 -        try {
   1.192 -            Class.forName(trida);
   1.193 -            log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " byl úspěšně načten.");
   1.194 -        } catch (ClassNotFoundException e) {
   1.195 -            log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " se nepodařilo načíst.");
   1.196 -        }
   1.197 -    }
   1.198 +	/**
   1.199 +	 * @param trida ovladač databáze, který se má načíst
   1.200 +	 * @param jmeno název databáze
   1.201 +	 */
   1.202 +	private void nactiOvladacJDBC(String trida, String jmeno) {
   1.203 +		try {
   1.204 +			Class.forName(trida);
   1.205 +			log.log(Level.INFO, "JDBC ovladač pro {0} byl úspěšně načten.", jmeno);
   1.206 +		} catch (ClassNotFoundException e) {
   1.207 +			log.log(Level.INFO, "JDBC ovladač pro {0} se nepodařilo načíst.", jmeno);
   1.208 +		}
   1.209 +	}
   1.210  
   1.211 -    /** Vrací plnou cestu k souboru s nastavením */
   1.212 -    protected static String getCestaKCertifikatum() {
   1.213 -        return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR;
   1.214 -    }
   1.215 +	/** Vrací plnou cestu k souboru s nastavením */
   1.216 +	protected static String getCestaKCertifikatum() {
   1.217 +		return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR;
   1.218 +	}
   1.219  
   1.220 -    /** Vrací plnou cestu k souboru s nastavením */
   1.221 -    protected static String getCestaKNastaveni() {
   1.222 -        return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR;
   1.223 -    }
   1.224 +	/** Vrací plnou cestu k souboru s nastavením */
   1.225 +	protected static String getCestaKNastaveni() {
   1.226 +		return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR;
   1.227 +	}
   1.228  
   1.229 -    /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */
   1.230 -    protected static String getCestaKeSlozceProgramu() {
   1.231 -        return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator;
   1.232 -    }
   1.233 +	/** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */
   1.234 +	protected static String getCestaKeSlozceProgramu() {
   1.235 +		return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator;
   1.236 +	}
   1.237  
   1.238 -    /** Načte nastavení ze souboru */
   1.239 -    private void nactiNastaveni() {
   1.240 -        try {
   1.241 -            XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni()))));
   1.242 -            Object xmlObjekt = d.readObject();
   1.243 -            d.close();
   1.244 +	/** Načte nastavení ze souboru */
   1.245 +	private void nactiNastaveni() {
   1.246 +		try {
   1.247 +			XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni()))));
   1.248 +			Object xmlObjekt = d.readObject();
   1.249 +			d.close();
   1.250  
   1.251 -            if (xmlObjekt instanceof Nastaveni) {
   1.252 -                nastaveni = (Nastaveni) xmlObjekt;
   1.253 -            } else {
   1.254 -                nastaveni = new Nastaveni();
   1.255 -                log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí");
   1.256 -            }
   1.257 +			if (xmlObjekt instanceof Nastaveni) {
   1.258 +				nastaveni = (Nastaveni) xmlObjekt;
   1.259 +			} else {
   1.260 +				nastaveni = new Nastaveni();
   1.261 +				log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí");
   1.262 +			}
   1.263  
   1.264 -            nactiNastaveniGUI();
   1.265 +			nactiNastaveniGUI();
   1.266  
   1.267 -            log.log(Level.INFO, "Nastavení bylo načteno.");
   1.268 -        } catch (FileNotFoundException ex) {
   1.269 -            log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex);
   1.270 -        } catch (IOException ex) {
   1.271 -            log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex);
   1.272 -        }
   1.273 -    }
   1.274 +			log.log(Level.INFO, "Nastavení bylo načteno.");
   1.275 +		} catch (FileNotFoundException ex) {
   1.276 +			log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex);
   1.277 +		} catch (IOException ex) {
   1.278 +			log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex);
   1.279 +		}
   1.280 +	}
   1.281  
   1.282 -    /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */
   1.283 -    private static boolean vytvorSlozkuProgramu() {
   1.284 -        if (new File(getCestaKeSlozceProgramu()).mkdirs()) {
   1.285 -            log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: " + getCestaKeSlozceProgramu());
   1.286 -            return true;
   1.287 -        } else {
   1.288 -            return false;
   1.289 -        }
   1.290 -    }
   1.291 +	/** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */
   1.292 +	private static boolean vytvorSlozkuProgramu() {
   1.293 +		if (new File(getCestaKeSlozceProgramu()).mkdirs()) {
   1.294 +			log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: {0}", getCestaKeSlozceProgramu());
   1.295 +			return true;
   1.296 +		} else {
   1.297 +			return false;
   1.298 +		}
   1.299 +	}
   1.300  
   1.301 -    /** Uloží nastavení do souboru */
   1.302 -    private void ulozNastaveni() {
   1.303 -        try {
   1.304 -            ulozNastaveniGUI();
   1.305 +	/** Uloží nastavení do souboru */
   1.306 +	private void ulozNastaveni() {
   1.307 +		try {
   1.308 +			ulozNastaveniGUI();
   1.309  
   1.310 -            vytvorSlozkuProgramu();
   1.311 +			vytvorSlozkuProgramu();
   1.312  
   1.313 -            XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni()))));
   1.314 -            e.writeObject(nastaveni);
   1.315 -            e.close();
   1.316 -            log.log(Level.INFO, "Nastavení bylo uloženo.");
   1.317 -        } catch (FileNotFoundException ex) {
   1.318 -            log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex);
   1.319 -        } catch (IOException ex) {
   1.320 -            log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex);
   1.321 -        }
   1.322 -    }
   1.323 +			XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni()))));
   1.324 +			e.writeObject(nastaveni);
   1.325 +			e.close();
   1.326 +			log.log(Level.INFO, "Nastavení bylo uloženo.");
   1.327 +		} catch (FileNotFoundException ex) {
   1.328 +			log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex);
   1.329 +		} catch (IOException ex) {
   1.330 +			log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex);
   1.331 +		}
   1.332 +	}
   1.333  
   1.334 -    /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */
   1.335 -    private void ulozNastaveniGUI() {
   1.336 -        nastaveni.setDatabaze(vstupDatabaze.getText());
   1.337 -        nastaveni.setDbHeslo(vstupDBheslo.getPassword());
   1.338 -        nastaveni.setDbJmeno(vstupDBjmeno.getText());
   1.339 -        nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue());
   1.340 -        nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword());
   1.341 -        nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText());
   1.342 -        nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue());
   1.343 -        nastaveni.setPostovniServer(vstupSMTPserver.getText());
   1.344 -        nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy());
   1.345 -    }
   1.346 +	/** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */
   1.347 +	private void ulozNastaveniGUI() {
   1.348 +		nastaveni.setDatabaze(vstupDatabaze.getText());
   1.349 +		nastaveni.setDbHeslo(vstupDBheslo.getPassword());
   1.350 +		nastaveni.setDbJmeno(vstupDBjmeno.getText());
   1.351 +		nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue());
   1.352 +		nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword());
   1.353 +		nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText());
   1.354 +		nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue());
   1.355 +		nastaveni.setPostovniServer(vstupSMTPserver.getText());
   1.356 +		nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy());
   1.357 +	}
   1.358  
   1.359 -    /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */
   1.360 -    private void nactiNastaveniGUI() {
   1.361 -        vstupDatabaze.setText(nastaveni.getDatabaze());
   1.362 -        if (nastaveni.getDbHeslo() != null) {
   1.363 -            vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo()));
   1.364 -        }
   1.365 -        vstupDBjmeno.setText(nastaveni.getDbJmeno());
   1.366 -        vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav());
   1.367 -        if (nastaveni.getPostovniHeslo() != null) {
   1.368 -            vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo()));
   1.369 -        }
   1.370 -        vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno());
   1.371 -        vstupSMTPport.setValue(nastaveni.getPostovniPort());
   1.372 -        vstupSMTPserver.setText(nastaveni.getPostovniServer());
   1.373 -        prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci());
   1.374 -    }
   1.375 +	/** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */
   1.376 +	private void nactiNastaveniGUI() {
   1.377 +		vstupDatabaze.setText(nastaveni.getDatabaze());
   1.378 +		if (nastaveni.getDbHeslo() != null) {
   1.379 +			vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo()));
   1.380 +		}
   1.381 +		vstupDBjmeno.setText(nastaveni.getDbJmeno());
   1.382 +		vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav());
   1.383 +		if (nastaveni.getPostovniHeslo() != null) {
   1.384 +			vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo()));
   1.385 +		}
   1.386 +		vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno());
   1.387 +		vstupSMTPport.setValue(nastaveni.getPostovniPort());
   1.388 +		vstupSMTPserver.setText(nastaveni.getPostovniServer());
   1.389 +		prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci());
   1.390 +	}
   1.391  
   1.392 -    protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.393 -        zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat);
   1.394 -    }
   1.395 +	protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.396 +		zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat);
   1.397 +	}
   1.398  
   1.399 -    protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) {
   1.400 -        JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE);
   1.401 -        if (loguj) {
   1.402 -            log.log(Level.INFO, nadpis + ": " + text);
   1.403 -        }
   1.404 -    }
   1.405 +	protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) {
   1.406 +		JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE);
   1.407 +		if (loguj) {
   1.408 +			log.log(Level.INFO, "{0}: {1}", new Object[]{nadpis, text});
   1.409 +		}
   1.410 +	}
   1.411  
   1.412 -    protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.413 -        if (logovat) {
   1.414 -            log.log(zavaznost, strucnaZprava, vyjimka);
   1.415 -        }
   1.416 +	protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.417 +		if (logovat) {
   1.418 +			log.log(zavaznost, strucnaZprava, vyjimka);
   1.419 +		}
   1.420  
   1.421 -        JXErrorPane chybovyPanel = new JXErrorPane();
   1.422 -        ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null);
   1.423 -        chybovyPanel.setErrorInfo(chybovaInformace);
   1.424 -        JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel);
   1.425 -        dialog.setVisible(true);
   1.426 -    }
   1.427 +		JXErrorPane chybovyPanel = new JXErrorPane();
   1.428 +		ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null);
   1.429 +		chybovyPanel.setErrorInfo(chybovaInformace);
   1.430 +		JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel);
   1.431 +		dialog.setVisible(true);
   1.432 +	}
   1.433  
   1.434 -    private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.435 -        zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat);
   1.436 -    }
   1.437 +	private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.438 +		zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat);
   1.439 +	}
   1.440  
   1.441 -    private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) {
   1.442 -        zobrazInformacniDialog(this, nadpis, text, loguj);
   1.443 -    }
   1.444 +	private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) {
   1.445 +		zobrazInformacniDialog(this, nadpis, text, loguj);
   1.446 +	}
   1.447  
   1.448 -    private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.449 -        zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat);
   1.450 -    }
   1.451 +	private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) {
   1.452 +		zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat);
   1.453 +	}
   1.454  
   1.455 -    /** This method is called from within the constructor to
   1.456 -     * initialize the form.
   1.457 -     * WARNING: Do NOT modify this code. The content of this method is
   1.458 -     * always regenerated by the Form Editor.
   1.459 -     */
   1.460 +	/** This method is called from within the constructor to
   1.461 +	 * initialize the form.
   1.462 +	 * WARNING: Do NOT modify this code. The content of this method is
   1.463 +	 * always regenerated by the Form Editor.
   1.464 +	 */
   1.465      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
   1.466      private void initComponents() {
   1.467  
   1.468 @@ -926,249 +926,249 @@
   1.469  }//GEN-LAST:event_vstupPredmetActionPerformed
   1.470  
   1.471      private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed
   1.472 -        setPanel(panelZprava);
   1.473 +		setPanel(panelZprava);
   1.474      }//GEN-LAST:event_lnTextActionPerformed
   1.475  
   1.476      private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed
   1.477 -        setPanel(panelPrijemci);
   1.478 +		setPanel(panelPrijemci);
   1.479      }//GEN-LAST:event_lnPrijemciActionPerformed
   1.480  
   1.481      private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed
   1.482 -        setPanel(panelOdeslat);
   1.483 +		setPanel(panelOdeslat);
   1.484      }//GEN-LAST:event_lnOdeslatActionPerformed
   1.485  
   1.486      private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed
   1.487 -        setPanel(panelServer);
   1.488 +		setPanel(panelServer);
   1.489      }//GEN-LAST:event_lnServerActionPerformed
   1.490  
   1.491      private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed
   1.492 -        setPanel(panelDatabaze);
   1.493 +		setPanel(panelDatabaze);
   1.494      }//GEN-LAST:event_lnDatabazeActionPerformed
   1.495  
   1.496      private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed
   1.497 -        setPanel(panelVychoziPrijemci);
   1.498 +		setPanel(panelVychoziPrijemci);
   1.499      }//GEN-LAST:event_lnVychoziPrijemciActionPerformed
   1.500  
   1.501      private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
   1.502 -        ulozNastaveni();
   1.503 -        log.log(Level.WARNING, "Ukončuji program.");
   1.504 +		ulozNastaveni();
   1.505 +		log.log(Level.WARNING, "Ukončuji program.");
   1.506      }//GEN-LAST:event_formWindowClosing
   1.507  
   1.508 -    /**
   1.509 -     * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců,
   1.510 -     * ti se přidají až dodatečně, podle toho,
   1.511 -     * jestli jde o zkušební nebo skutečné rozesílání.
   1.512 -     */
   1.513 -    private HromadnaZprava getZprava() throws UnsupportedEncodingException {
   1.514 -        HromadnaZprava zprava = new HromadnaZprava();
   1.515 -        zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText()));
   1.516 -        zprava.setPredmet(vstupPredmet.getText());
   1.517 -        zprava.setText(vstupZprava.getText());
   1.518 -        zprava.setFormatHTML(vstupFormatHTML.isSelected());
   1.519 +	/**
   1.520 +	 * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců,
   1.521 +	 * ti se přidají až dodatečně, podle toho,
   1.522 +	 * jestli jde o zkušební nebo skutečné rozesílání.
   1.523 +	 */
   1.524 +	private HromadnaZprava getZprava() throws UnsupportedEncodingException {
   1.525 +		HromadnaZprava zprava = new HromadnaZprava();
   1.526 +		zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText()));
   1.527 +		zprava.setPredmet(vstupPredmet.getText());
   1.528 +		zprava.setText(vstupZprava.getText());
   1.529 +		zprava.setFormatHTML(vstupFormatHTML.isSelected());
   1.530  
   1.531 -        if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) {
   1.532 -            InternetAddress komu = new InternetAddress();
   1.533 -            komu.setPersonal(odpovedetKomuJmeno.getText());
   1.534 -            komu.setAddress(odpovedetKomuAdresa.getText());
   1.535 -            zprava.setOdpovedetKomu(komu);
   1.536 -        }
   1.537 +		if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) {
   1.538 +			InternetAddress komu = new InternetAddress();
   1.539 +			komu.setPersonal(odpovedetKomuJmeno.getText());
   1.540 +			komu.setAddress(odpovedetKomuAdresa.getText());
   1.541 +			zprava.setOdpovedetKomu(komu);
   1.542 +		}
   1.543  
   1.544 -        return zprava;
   1.545 -    }
   1.546 +		return zprava;
   1.547 +	}
   1.548  
   1.549 -    /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */
   1.550 -    private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException {
   1.551 -        ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>();
   1.552 -        Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci();
   1.553 -        Collection<InternetAddressKomu> adresySQL = getPrijemciSQL();
   1.554 -        Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy();
   1.555 +	/** Všichni příjemci, kterým bude odeslána ostrá zpráva. */
   1.556 +	private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException {
   1.557 +		ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>();
   1.558 +		Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci();
   1.559 +		Collection<InternetAddressKomu> adresySQL = getPrijemciSQL();
   1.560 +		Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy();
   1.561  
   1.562 -        if (adresyVychozi != null) {
   1.563 -            vsichni.addAll(adresyVychozi);
   1.564 -        }
   1.565 -        if (adresySQL != null) {
   1.566 -            vsichni.addAll(adresySQL);
   1.567 -        }
   1.568 -        if (adresyDodatecne != null) {
   1.569 -            vsichni.addAll(adresyDodatecne);
   1.570 -        }
   1.571 -        return vsichni;
   1.572 -    }
   1.573 +		if (adresyVychozi != null) {
   1.574 +			vsichni.addAll(adresyVychozi);
   1.575 +		}
   1.576 +		if (adresySQL != null) {
   1.577 +			vsichni.addAll(adresySQL);
   1.578 +		}
   1.579 +		if (adresyDodatecne != null) {
   1.580 +			vsichni.addAll(adresyDodatecne);
   1.581 +		}
   1.582 +		return vsichni;
   1.583 +	}
   1.584  
   1.585      private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
   1.586 -        try {
   1.587 -            ulozNastaveniGUI();
   1.588 -            HromadnaZprava zprava = getZprava();
   1.589 -            zprava.setPrijemci(getPrijemciVsichni());
   1.590 +		try {
   1.591 +			ulozNastaveniGUI();
   1.592 +			HromadnaZprava zprava = getZprava();
   1.593 +			zprava.setPrijemci(getPrijemciVsichni());
   1.594  
   1.595 -            int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);
   1.596 -            if (volba == JOptionPane.YES_OPTION) {
   1.597 -                odesli(zprava);
   1.598 -                Postak.vypisPrijemce(zprava.getPrijemci());
   1.599 -                zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true);
   1.600 -            }
   1.601 -        } catch (Exception e) {
   1.602 -            zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
   1.603 -        }
   1.604 +			int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);
   1.605 +			if (volba == JOptionPane.YES_OPTION) {
   1.606 +				odesli(zprava);
   1.607 +				Postak.vypisPrijemce(zprava.getPrijemci());
   1.608 +				zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true);
   1.609 +			}
   1.610 +		} catch (Exception e) {
   1.611 +			zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
   1.612 +		}
   1.613  }//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed
   1.614  
   1.615      private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed
   1.616 -        try {
   1.617 -            ulozNastaveniGUI();
   1.618 -            HromadnaZprava zprava = getZprava();
   1.619 -            zprava.setPrijemci(prijemciZkusebni.getAdresy());
   1.620 +		try {
   1.621 +			ulozNastaveniGUI();
   1.622 +			HromadnaZprava zprava = getZprava();
   1.623 +			zprava.setPrijemci(prijemciZkusebni.getAdresy());
   1.624  
   1.625 -            odesli(zprava);
   1.626 +			odesli(zprava);
   1.627  
   1.628 -            zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true);
   1.629 -        } catch (Exception e) {
   1.630 -            zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
   1.631 -        }
   1.632 +			zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true);
   1.633 +		} catch (Exception e) {
   1.634 +			zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true);
   1.635 +		}
   1.636      }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed
   1.637  
   1.638      private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed
   1.639 -        try {
   1.640 +		try {
   1.641              getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed
   1.642 -            zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false);
   1.643 -        } catch (SQLException e) {
   1.644 -            zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true);
   1.645 -        }
   1.646 -    }
   1.647 +			zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false);
   1.648 +		} catch (SQLException e) {
   1.649 +			zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true);
   1.650 +		}
   1.651 +	}
   1.652  
   1.653      private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed
   1.654 -        try {
   1.655 +		try {
   1.656              Collection<InternetAddressKomu> adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed
   1.657 -            if (adresy == null) {
   1.658 -                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false);
   1.659 -            } else {
   1.660 -                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false);
   1.661 -            }
   1.662 -        } catch (Exception e) {
   1.663 -            zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.664 -        }
   1.665 -    }
   1.666 +			if (adresy == null) {
   1.667 +				zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false);
   1.668 +			} else {
   1.669 +				zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false);
   1.670 +			}
   1.671 +		} catch (Exception e) {
   1.672 +			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.673 +		}
   1.674 +	}
   1.675  
   1.676      private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
   1.677 -        try {
   1.678 -            Collection<InternetAddressKomu> adresy = getPrijemciSQL();
   1.679 +		try {
   1.680 +			Collection<InternetAddressKomu> adresy = getPrijemciSQL();
   1.681  
   1.682 -            ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
   1.683 +			ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
   1.684  			zobrazovac.setNastaveni(nastaveni);
   1.685 -            zobrazovac.setAdresy(adresy);
   1.686 -            zobrazovac.setLocationRelativeTo(this);
   1.687 -            zobrazovac.setVisible(true);
   1.688 +			zobrazovac.setAdresy(adresy);
   1.689 +			zobrazovac.setLocationRelativeTo(this);
   1.690 +			zobrazovac.setVisible(true);
   1.691  
   1.692 -        } catch (Exception e) {
   1.693 -            zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.694 -        }
   1.695 +		} catch (Exception e) {
   1.696 +			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.697 +		}
   1.698      }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed
   1.699  
   1.700      private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
   1.701 -        try {
   1.702 -            Collection<InternetAddressKomu> adresy = getPrijemciVsichni();
   1.703 +		try {
   1.704 +			Collection<InternetAddressKomu> adresy = getPrijemciVsichni();
   1.705  
   1.706 -            ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
   1.707 -            zobrazovac.setAdresy(adresy);
   1.708 -            zobrazovac.setLocationRelativeTo(this);
   1.709 -            zobrazovac.setVisible(true);
   1.710 +			ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false);
   1.711 +			zobrazovac.setAdresy(adresy);
   1.712 +			zobrazovac.setLocationRelativeTo(this);
   1.713 +			zobrazovac.setVisible(true);
   1.714  
   1.715 -        } catch (Exception e) {
   1.716 -            zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.717 -        }
   1.718 +		} catch (Exception e) {
   1.719 +			zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true);
   1.720 +		}
   1.721      }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed
   1.722  
   1.723      private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed
   1.724 -        odpovedetKomuDialog.pack();
   1.725 -        odpovedetKomuDialog.setLocationRelativeTo(this);
   1.726 -        odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL);
   1.727 -        odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo);
   1.728 -        odpovedetKomuDialog.setVisible(true);
   1.729 +		odpovedetKomuDialog.pack();
   1.730 +		odpovedetKomuDialog.setLocationRelativeTo(this);
   1.731 +		odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL);
   1.732 +		odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo);
   1.733 +		odpovedetKomuDialog.setVisible(true);
   1.734  }//GEN-LAST:event_odpovedetKomuOdkazActionPerformed
   1.735  
   1.736      private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed
   1.737 -        odpovedetKomuDialog.setVisible(false);
   1.738 +		odpovedetKomuDialog.setVisible(false);
   1.739  }//GEN-LAST:event_odpovedetKomuHotovoActionPerformed
   1.740  
   1.741 -    /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */
   1.742 -    private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException {
   1.743 -        if ("".equals(vstupSQL.getText())) {
   1.744 -            return null;
   1.745 -        } else {
   1.746 -            return getSpojeni().getAdresy(vstupSQL.getText());
   1.747 -        }
   1.748 -    }
   1.749 +	/** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */
   1.750 +	private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException {
   1.751 +		if ("".equals(vstupSQL.getText())) {
   1.752 +			return null;
   1.753 +		} else {
   1.754 +			return getSpojeni().getAdresy(vstupSQL.getText());
   1.755 +		}
   1.756 +	}
   1.757  
   1.758 -    private DataSQL getSpojeni() throws SQLException {
   1.759 -        return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword());
   1.760 -    }
   1.761 +	private DataSQL getSpojeni() throws SQLException {
   1.762 +		return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword());
   1.763 +	}
   1.764  
   1.765 -    /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */
   1.766 -    private void odesli(HromadnaZprava zprava) throws MessagingException {
   1.767 -        setCursor(new Cursor(Cursor.WAIT_CURSOR));
   1.768 -        try {
   1.769 -            postak.setNastaveni(nastaveni);
   1.770 -            postak.odesli(zprava);
   1.771 +	/** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */
   1.772 +	private void odesli(HromadnaZprava zprava) throws MessagingException {
   1.773 +		setCursor(new Cursor(Cursor.WAIT_CURSOR));
   1.774 +		try {
   1.775 +			postak.setNastaveni(nastaveni);
   1.776 +			postak.odesli(zprava);
   1.777  
   1.778 -        } catch (MessagingException e) {
   1.779 -            throw e;
   1.780 -        } finally {
   1.781 -            setCursor(Cursor.getDefaultCursor());
   1.782 -        }
   1.783 -    }
   1.784 +		} catch (MessagingException e) {
   1.785 +			throw e;
   1.786 +		} finally {
   1.787 +			setCursor(Cursor.getDefaultCursor());
   1.788 +		}
   1.789 +	}
   1.790  
   1.791 -    private void setPanel(JComponent komponenta) {
   1.792 +	private void setPanel(JComponent komponenta) {
   1.793  
   1.794 -        if (panel.getLayout() instanceof CardLayout) {
   1.795 -            CardLayout l = (CardLayout) panel.getLayout();
   1.796 -            l.show(panel, komponenta.getName());
   1.797 -        } else {
   1.798 -            log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout");
   1.799 -        }
   1.800 +		if (panel.getLayout() instanceof CardLayout) {
   1.801 +			CardLayout l = (CardLayout) panel.getLayout();
   1.802 +			l.show(panel, komponenta.getName());
   1.803 +		} else {
   1.804 +			log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout");
   1.805 +		}
   1.806  
   1.807 -    }
   1.808 +	}
   1.809  
   1.810 -    /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */
   1.811 -    private void vyresitTabFocusProblem(JTextArea textArea) {
   1.812 -        textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null);
   1.813 -        textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null);
   1.814 -    }
   1.815 +	/** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */
   1.816 +	private void vyresitTabFocusProblem(JTextArea textArea) {
   1.817 +		textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null);
   1.818 +		textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null);
   1.819 +	}
   1.820  
   1.821 -    public JXTaskPaneContainer getTaskPanel() {
   1.822 -        return taskPanel;
   1.823 -    }
   1.824 +	public JXTaskPaneContainer getTaskPanel() {
   1.825 +		return taskPanel;
   1.826 +	}
   1.827  
   1.828 -    /**
   1.829 -     * @param args the command line arguments
   1.830 -     */
   1.831 -    public static void main(String args[]) {
   1.832 -        final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit"));
   1.833 +	/**
   1.834 +	 * @param args the command line arguments
   1.835 +	 */
   1.836 +	public static void main(String args[]) {
   1.837 +		final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit"));
   1.838  
   1.839 -        try {
   1.840 -            //LookAndFeel laf = UIManager.getLookAndFeel();
   1.841 +		try {
   1.842 +			//LookAndFeel laf = UIManager.getLookAndFeel();
   1.843  
   1.844 -            //laf = new SubstanceLookAndFeel();
   1.845 -            //laf = new SubstanceBusinessLookAndFeel();
   1.846 -            //laf = new SubstanceBusinessBlueSteelLookAndFeel();
   1.847 -            //laf = new SubstanceBusinessBlackSteelLookAndFeel();
   1.848 +			//laf = new SubstanceLookAndFeel();
   1.849 +			//laf = new SubstanceBusinessLookAndFeel();
   1.850 +			//laf = new SubstanceBusinessBlueSteelLookAndFeel();
   1.851 +			//laf = new SubstanceBusinessBlackSteelLookAndFeel();
   1.852  
   1.853 -            UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel");
   1.854 -        } catch (ClassNotFoundException ex) {
   1.855 -            log.log(Level.SEVERE, null, ex);
   1.856 -        } catch (InstantiationException ex) {
   1.857 -            log.log(Level.SEVERE, null, ex);
   1.858 -        } catch (IllegalAccessException ex) {
   1.859 -            log.log(Level.SEVERE, null, ex);
   1.860 -        } catch (UnsupportedLookAndFeelException ex) {
   1.861 -            log.log(Level.SEVERE, null, ex);
   1.862 -        }
   1.863 +			UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel");
   1.864 +		} catch (ClassNotFoundException ex) {
   1.865 +			log.log(Level.SEVERE, null, ex);
   1.866 +		} catch (InstantiationException ex) {
   1.867 +			log.log(Level.SEVERE, null, ex);
   1.868 +		} catch (IllegalAccessException ex) {
   1.869 +			log.log(Level.SEVERE, null, ex);
   1.870 +		} catch (UnsupportedLookAndFeelException ex) {
   1.871 +			log.log(Level.SEVERE, null, ex);
   1.872 +		}
   1.873  
   1.874 -        java.awt.EventQueue.invokeLater(new Runnable() {
   1.875 +		java.awt.EventQueue.invokeLater(new Runnable() {
   1.876  
   1.877 -            public void run() {
   1.878 -                new SuperPostak(ladit, true).setVisible(true);
   1.879 -            }
   1.880 -        });
   1.881 -    }
   1.882 +			public void run() {
   1.883 +				new SuperPostak(ladit, true).setVisible(true);
   1.884 +			}
   1.885 +		});
   1.886 +	}
   1.887      // Variables declaration - do not modify//GEN-BEGIN:variables
   1.888      private javax.swing.JLabel jLabel1;
   1.889      private javax.swing.JLabel jLabel10;