/* * AttachmentPanel.java * * Created on den 19 september 2001, 18:53 */ package ip1.u9; import javax.swing.*; import javax.swing.event.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import ip1.u9.util.*; import java.awt.event.*; /** Hjälpkomponent till MultiContentPanel som sköter dess attachmenthantering. * * @author Henrik Johansson, DS80 * @version ht2001 */ public class AttachmentPanel extends javax.swing.JPanel { protected boolean enabled = true; protected JFileChooser chooser = null; /** Skapar en ny AttachmentPanel */ public AttachmentPanel() { initComponents(); attachments.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(attachments.getSelectedObjects() != null) delete.setEnabled(true); else delete.setEnabled(false); } }); } /** Slår av och på denna komponent * *@param bool true = på. */ public void setEnabled(boolean bool) { enabled = bool; delete.setEnabled(false); if(bool) { add.setEnabled(true); attachments.setEnabled(true); } else { add.setEnabled(false); attachments.setEnabled(false); } } public boolean isEnabled() { return enabled; } public Attachment[] getAttachmentFiles() { DefaultComboBoxModel model = (DefaultComboBoxModel) attachments.getModel(); Attachment[] tmp = new Attachment[model.getSize()]; for(int i = 0; i < model.getSize(); i++) { tmp[i] = (Attachment) model.getElementAt(i); } return tmp; } public boolean hasAttachments() { return attachments.getModel().getSize() > 0; } public void setAttachments(Attachment[] attachments) { this.attachments.setModel(new DefaultComboBoxModel(attachments)); } /** 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 add = new javax.swing.JButton(); delete = new javax.swing.JButton(); attachments = new javax.swing.JComboBox(); setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints1; setPreferredSize(new java.awt.Dimension(0, 27)); setMinimumSize(new java.awt.Dimension(0, 27)); add.setText("Attachment"); add.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addActionPerformed(evt); } }); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTH; add(add, gridBagConstraints1); delete.setText("Ta bort"); delete.setEnabled(false); delete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteActionPerformed(evt); } }); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.gridx = 2; gridBagConstraints1.gridy = 0; gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTH; add(delete, gridBagConstraints1); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.gridx = 1; gridBagConstraints1.gridy = 0; gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints1.weightx = 1.0; add(attachments, gridBagConstraints1); }//GEN-END:initComponents // Lägger via en filväljare till filer som skall skickas med som attachments private void addActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addActionPerformed if(chooser == null) { chooser = new JFileChooser(); chooser.setApproveButtonText("Attach"); chooser.setCurrentDirectory(new File("/")); } int returnVal = chooser.showOpenDialog(this); if(returnVal == JFileChooser.APPROVE_OPTION) { try { BodyPart body = new MimeBodyPart(); DataSource source = new FileDataSource(chooser.getSelectedFile()); body.setDataHandler(new DataHandler(source)); body.setFileName(chooser.getSelectedFile().getName()); body.setDisposition(Part.ATTACHMENT); Attachment attachment = new Attachment(body); ((DefaultComboBoxModel) attachments.getModel()).addElement(attachment); } catch(MessagingException e) { System.err.println(e.getMessage()); } } }//GEN-LAST:event_addActionPerformed // För att ta bort ett attachment man tidigare lagt till private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteActionPerformed Object[] delete = attachments.getSelectedObjects(); DefaultComboBoxModel model = (DefaultComboBoxModel) attachments.getModel(); for(int i = 0; i < delete.length; i++) { model.removeElement(delete[i]); } }//GEN-LAST:event_deleteActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton add; private javax.swing.JButton delete; private javax.swing.JComboBox attachments; // End of variables declaration//GEN-END:variables }