/* * MessageInfo.java * * Created on den 13 september 2001, 12:53 */ package ip1.u7.b; import javax.swing.*; import javax.mail.*; import java.awt.event.*; import javax.swing.event.EventListenerList; /** MessageInfo ansvarar för att visa upp ett enstaka e-postmeddelande i * en sammanfattande form (Ämnesraden typ). Enumerationanvändare skall kunna välja meddelandet, varvid * ett MessageChosenEvent skickas till dess prenumeranter.
* MessageInfo är att betrakta som hjälpklass till MailInfoViewer. * * @author Henrik Johansson, DS80 * @version ht 2001 */ public class MessageInfo extends javax.swing.JPanel { private Message message; private EventListenerList messageChosenListeners; /** Skapar ett nytt MessageInfo-objekt * * @param message Meddelandet som skall "visas upp" */ public MessageInfo(Message message) { messageChosenListeners = new EventListenerList(); try { this.message = message; initComponents(); messageSubject.setText(message.getSubject()); } catch(MessagingException e) { System.err.println(e.getMessage()); } } /** Sätt om denna MessageInfo är vald * * @param chosen true om ja, annars false */ public void setChosen(boolean chosen) { if(chosen) messageSubject.setForeground(java.awt.Color.magenta); else messageSubject.setForeground(java.awt.Color.black); } /** Låter andra prenumerera på MessageChosenEvents från de meddelanden komponenten hyser. * * @param listener prenumerant */ public void addMessageChosenListener(MessageChosenListener listener) { messageChosenListeners.add(MessageChosenListener.class, listener); } /** Låter andra avlägsna prenumeration på MessageChosenEvents från de meddelanden komponenten hyser. * * @param listener prenumerant */ public void removeMessageChosenListener(MessageChosenListener listener) { messageChosenListeners.remove(MessageChosenListener.class, listener); } /** Vidaresänder MessageChosenEvents till eventuella prenumeranter * * @param evt det Event som skall skickas vidare till prenumeranterna */ protected void fireMessageChosen(MessageChosenEvent evt) { Object[] listeners = messageChosenListeners.getListenerList(); // loop through each listener and pass on the event if needed for(int i = 0; i < listeners.length; i++) { if (listeners[i] == MessageChosenListener.class) { // pass the event to the listeners event dispatch method ((MessageChosenListener)listeners[i + 1]).dispatchMessageChosen(evt); } } } private class CheckBoxListener implements ItemListener { public void itemStateChanged(ItemEvent e) { System.out.println("CheckBoxListener"); try { if(message.isSet(Flags.Flag.DELETED)) message.setFlag(Flags.Flag.DELETED, true); else message.setFlag(Flags.Flag.DELETED, false); } catch(MessagingException me) { System.err.println(me); } } } /** 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 messageSubject = new javax.swing.JTextField(); setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints1; setBackground(java.awt.Color.white); messageSubject.setEditable(false); messageSubject.setDisabledTextColor(java.awt.Color.lightGray); messageSubject.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { messageSubjectMousePressed(evt); } }); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints1.insets = new java.awt.Insets(0, 5, 0, 5); gridBagConstraints1.weightx = 1.0; add(messageSubject, gridBagConstraints1); }//GEN-END:initComponents private void messageSubjectMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_messageSubjectMousePressed fireMessageChosen(new MessageChosenEvent(message, this)); setChosen(true); }//GEN-LAST:event_messageSubjectMousePressed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField messageSubject; // End of variables declaration//GEN-END:variables }