/* * MailSenderGUI.java * * Created on den 12 september 2001, 19:37 */ package ip1.u7.a; import javax.mail.internet.*; import javax.swing.JPanel; /** * kontrollklass och grafiskt användargränssnitt för MailSender. * * @author Henrik Johansson, DS80 * @version ht 2001 */ public class MailSenderGUI extends javax.swing.JFrame { private MailSender parent; private boolean closeOnSend; private boolean standAlone; private PropertiesPanel properties = null; private ContentPanel content = null; /** Creates new form MailSenderGUI * @param smpp komponent för att fylla i egenskaper. Här fyller man i från vem till * vem, med vilken server och med vilket ämne ett e-postmeddelande skickas. * @param cp komponent där e-postmeddelandets text fylls i. * @param parent MailSenderGuis förälder. */ public MailSenderGUI(PropertiesPanel smpp, ContentPanel cp, MailSender parent) { this(smpp, cp, parent, false, true); } /** Creates new form MailSenderGUI * @param smpp komponent för att fylla i egenskaper. Här fyller man i från vem till * vem, med vilken server och med vilket ämne ett e-postmeddelande skickas. * @param cp komponent där e-postmeddelandets text fylls i. * @param parent MailSenderGuis förälder. * @param closeOnSend skall MailSender stängas när ett brev har skickats. * om true ja, om false nej. */ public MailSenderGUI(PropertiesPanel smpp, ContentPanel cp, MailSender parent, boolean closeOnSend) { this(smpp, cp, parent, closeOnSend, true); } /** Creates new form MailSenderGUI * @param smpp komponent för att fylla i egenskaper. Här fyller man i från vem till * vem, med vilken server och med vilket ämne ett e-postmeddelande skickas. * @param cp komponent där e-postmeddelandets text fylls i. * @param parent MailSenderGuis förälder. * @param closeOnSend skall MailSender stängas när ett brev har skickats. * om true ja, om false nej. * @param standAlone Används MailSenderGUI som ett eget program. eller är det en komponent * i ett större system? */ public MailSenderGUI(PropertiesPanel smpp, ContentPanel cp, MailSender parent, boolean closeOnSend, boolean standAlone) { this.parent = parent; this.closeOnSend = closeOnSend; this.standAlone = standAlone; initComponents(); setPropertiesPanel(smpp); setContentPanel(cp); pack(); setSize(640, 480); show(); } private void setPropertiesPanel(PropertiesPanel pp) { properties = pp; splitPane.setLeftComponent((JPanel) pp); } private void setContentPanel(ContentPanel cp) { content = cp; splitPane.setRightComponent((JPanel) cp); } /** Returnerar namnet på mailservern. * @return namnet på mailservern */ protected String getServer() { return properties.getServer(); } /** returnerar ämnesraden * @return Ämnesraden */ protected String getSubject() { return properties.getSubject(); } /** returnerar meddelandet * @return meddelandet */ protected String getContent() { return content.getContent(); } /** returnerar e-postadressen för mottagaren * @return mottagaren */ protected InternetAddress getTO() { return properties.getTO(); } /** returnerar e-postadressen för avsändaren * @return avsändaren */ protected InternetAddress getFrom() { return properties.getFrom(); } /** skapar ett nytt SendMail-objekt. Detta skickar meddelandet. */ public void sendMail() { new SendMail(getServer(), getContent(), getSubject(), getTO(), getFrom()); cleanup(); } /** Rensar textfälten i GUIet när ett meddelande har skickats. */ protected void cleanup() { if(closeOnSend) { closeMailSender(); } else { content.clearPanel(); properties.clearPanel(); } } private void closeMailSender() { if(standAlone) parent.exit(); else dispose(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jToolBar2 = new javax.swing.JToolBar(); send = new javax.swing.JButton(); exit = new javax.swing.JButton(); splitPane = new javax.swing.JSplitPane(); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jToolBar2.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED)); jToolBar2.setBackground(java.awt.Color.white); jToolBar2.setFont(new java.awt.Font("Dialog", 1, 14)); send.setFont(new java.awt.Font("Dialog", 1, 14)); send.setText("Skicka"); send.setBackground(java.awt.Color.white); send.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { sendActionPerformed(evt); } }); jToolBar2.add(send); exit.setFont(new java.awt.Font("Dialog", 1, 14)); exit.setText("Avsluta"); exit.setBackground(java.awt.Color.white); exit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitActionPerformed(evt); } }); jToolBar2.add(exit); getContentPane().add(jToolBar2, java.awt.BorderLayout.NORTH); splitPane.setDividerSize(3); splitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); getContentPane().add(splitPane, java.awt.BorderLayout.CENTER); pack(); }//GEN-END:initComponents private void exitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitActionPerformed closeMailSender(); }//GEN-LAST:event_exitActionPerformed private void sendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sendActionPerformed sendMail(); }//GEN-LAST:event_sendActionPerformed /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm closeMailSender(); }//GEN-LAST:event_exitForm // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JToolBar jToolBar2; private javax.swing.JButton send; private javax.swing.JButton exit; private javax.swing.JSplitPane splitPane; // End of variables declaration//GEN-END:variables }