diff -r 9175a185d9c0 -r 9cb46ca7e26c java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java --- a/java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java Fri Mar 30 15:35:17 2012 +0200 +++ b/java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java Mon Apr 23 00:24:31 2012 +0200 @@ -9,6 +9,8 @@ import java.awt.Cursor; import java.awt.Dialog.ModalityType; import java.awt.KeyboardFocusManager; +import java.awt.event.ActionListener; +import java.awt.event.ItemListener; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.BufferedInputStream; @@ -28,19 +30,15 @@ import java.util.zip.GZIPOutputStream; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JOptionPane; -import javax.swing.JTextArea; -import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.*; +import javax.swing.event.ChangeListener; import org.jdesktop.swingx.JXErrorPane; import org.jdesktop.swingx.JXTaskPaneContainer; import org.jdesktop.swingx.error.ErrorInfo; /** * - * @author fiki + * @author fiki */ public class SuperPostak extends javax.swing.JFrame { @@ -56,6 +54,7 @@ /** * Creates new form SuperPostak + * * @param ladit předvyplní testovací hodnoty - zprávu * @param exit při zavření okna ukončí program */ @@ -350,8 +349,10 @@ jScrollPane1 = new javax.swing.JScrollPane(); vstupZprava = new javax.swing.JTextArea(); jLabel15 = new javax.swing.JLabel(); - vstupFormatHTML = new javax.swing.JCheckBox(); odpovedetKomuOdkaz = new org.jdesktop.swingx.JXHyperlink(); + formátProstý = new javax.swing.JRadioButton(); + formátXHTML = new javax.swing.JRadioButton(); + formátOboje = new javax.swing.JRadioButton(); odpovedetKomuDialog = new javax.swing.JDialog(); jLabel18 = new javax.swing.JLabel(); jLabel19 = new javax.swing.JLabel(); @@ -359,6 +360,7 @@ odpovedetKomuJmeno = new javax.swing.JTextField(); odpovedetKomuAdresa = new javax.swing.JTextField(); odpovedetKomuHotovo = new javax.swing.JButton(); + formátSkupina = new javax.swing.ButtonGroup(); jXHeader1 = new org.jdesktop.swingx.JXHeader(); taskPanel = new org.jdesktop.swingx.JXTaskPaneContainer(); jXTaskPane1 = new org.jdesktop.swingx.JXTaskPane(); @@ -700,10 +702,6 @@ jLabel15.setText("Formát zprávy"); - vstupFormatHTML.setMnemonic('h'); - vstupFormatHTML.setText("HTML"); - vstupFormatHTML.setToolTipText("Při nezaškrtnutí se odešle jako prostý text"); - odpovedetKomuOdkaz.setForeground(javax.swing.UIManager.getDefaults().getColor("windowText")); odpovedetKomuOdkaz.setMnemonic('e'); odpovedetKomuOdkaz.setText("Adresa odesílatele"); @@ -716,15 +714,35 @@ } }); + formátSkupina.add(formátProstý); + formátProstý.setSelected(true); + formátProstý.setText("Prostý text"); + + formátSkupina.add(formátXHTML); + formátXHTML.setText("(X)HTML"); + formátXHTML.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + formátXHTMLActionPerformed(evt); + } + }); + + formátSkupina.add(formátOboje); + formátOboje.setText("Oboje"); + formátOboje.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + formátObojeActionPerformed(evt); + } + }); + javax.swing.GroupLayout panelZpravaLayout = new javax.swing.GroupLayout(panelZprava); panelZprava.setLayout(panelZpravaLayout); panelZpravaLayout.setHorizontalGroup( panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup() .addContainerGap() - .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE) - .addGroup(panelZpravaLayout.createSequentialGroup() + .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 461, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelZpravaLayout.createSequentialGroup() .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(panelZpravaLayout.createSequentialGroup() .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -735,14 +753,18 @@ .addComponent(odpovedetKomuOdkaz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))) .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(vstupJmenoOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) - .addComponent(vstupAdresaOdesilatele, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) - .addComponent(vstupPredmet, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE))) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelZpravaLayout.createSequentialGroup() + .addComponent(vstupJmenoOdesilatele) + .addComponent(vstupAdresaOdesilatele) + .addComponent(vstupPredmet))) + .addGroup(panelZpravaLayout.createSequentialGroup() .addComponent(jLabel15) - .addGap(33, 33, 33) - .addComponent(vstupFormatHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) - .addGap(247, 247, 247))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(formátProstý) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(formátXHTML) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(formátOboje) + .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); panelZpravaLayout.setVerticalGroup( @@ -765,7 +787,9 @@ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelZpravaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel15) - .addComponent(vstupFormatHTML)) + .addComponent(formátProstý) + .addComponent(formátXHTML) + .addComponent(formátOboje)) .addContainerGap()) ); @@ -816,7 +840,7 @@ .addComponent(jLabel19) .addComponent(odpovedetKomuAdresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel17) + .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(odpovedetKomuHotovo) .addContainerGap()) @@ -966,7 +990,17 @@ zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); zprava.setPredmet(vstupPredmet.getText()); zprava.setText(vstupZprava.getText()); - zprava.setFormatHTML(vstupFormatHTML.isSelected()); + + if (formátProstý.isSelected()) { + zprava.setFormatHTML(HromadnaZprava.FORMÁT.PROSTÝ_TEXT); + } else if (formátXHTML.isSelected()) { + zprava.setFormatHTML(HromadnaZprava.FORMÁT.XHTML); + } else if (formátOboje.isSelected()) { + zprava.setFormatHTML(HromadnaZprava.FORMÁT.OBOJE); + } else { + log.severe("Není zvolen formát zprávy → nastavuji: prostý text."); + zprava.setFormatHTML(HromadnaZprava.FORMÁT.PROSTÝ_TEXT); + } if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { InternetAddress komu = new InternetAddress(); @@ -1102,6 +1136,28 @@ } }//GEN-LAST:event_odpovedetKomuHotovoActionPerformed + private void formátXHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formátXHTMLActionPerformed + nastavVýchozíXHTML(); + }//GEN-LAST:event_formátXHTMLActionPerformed + + private void formátObojeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formátObojeActionPerformed + nastavVýchozíXHTML(); + }//GEN-LAST:event_formátObojeActionPerformed + + /** + * Pokud ještě není vyplněn žádný text, vložíme šablonu. + */ + private void nastavVýchozíXHTML() { + if (vstupZprava.getText().isEmpty()) { + vstupZprava.setText("\n" + + "\n\n" + + "

\n" + + "
\n\n" + + "\n" + + ""); + } + } + /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ private Collection getPrijemciSQL() throws SQLException, UnsupportedEncodingException { if ("".equals(vstupSQL.getText())) { @@ -1183,6 +1239,10 @@ }); } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JRadioButton formátOboje; + private javax.swing.JRadioButton formátProstý; + private javax.swing.ButtonGroup formátSkupina; + private javax.swing.JRadioButton formátXHTML; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; @@ -1239,7 +1299,6 @@ private javax.swing.JPasswordField vstupDBheslo; private javax.swing.JTextField vstupDBjmeno; private javax.swing.JTextField vstupDatabaze; - private javax.swing.JCheckBox vstupFormatHTML; private javax.swing.JTextField vstupJmenoOdesilatele; private javax.swing.JTextField vstupPredmet; private javax.swing.JPasswordField vstupSMTPheslo;