1 package org.columba.mail.gui.composer; 17 18 import java.awt.datatransfer.DataFlavor ; 19 import java.awt.datatransfer.Transferable ; 20 import java.awt.datatransfer.UnsupportedFlavorException ; 21 import java.io.File ; 22 import java.io.IOException ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 import java.util.logging.Logger ; 26 27 import javax.swing.JComponent ; 28 import javax.swing.TransferHandler ; 29 30 31 38 class ComposerAttachmentTransferHandler extends TransferHandler { 39 40 private AttachmentController attachmentController; 41 42 private static final Logger LOG = Logger.getLogger("org.columba.mail.gui.composer"); 43 44 47 public ComposerAttachmentTransferHandler(AttachmentController controller) { 48 attachmentController = controller; 49 } 50 51 57 public boolean canImport(JComponent comp, DataFlavor [] transferFlavors) { 58 boolean canImport = false; 59 for (int i = 0; (i < transferFlavors.length) && (!canImport); i++) { 60 if (transferFlavors[i].equals(DataFlavor.javaFileListFlavor)) { 61 canImport = true; 62 } 63 } 64 return canImport; 65 } 66 67 73 public boolean importData(JComponent comp, Transferable data) { 74 boolean dataWasImported = false; 75 76 try { 77 List files = (List ) data.getTransferData(DataFlavor.javaFileListFlavor); 78 for (Iterator iterator = files.iterator(); iterator.hasNext();) { 79 80 attachmentController.addFileAttachment((File ) iterator.next()); 81 } 82 dataWasImported = true; 83 } catch (UnsupportedFlavorException e) { 84 LOG.warning("A transferable with unsupported flavors tried to import data into the attachment gui."); 85 } catch (IOException e) { 86 LOG.warning("The data that was DnD into the attachment was no longer available."); 87 } 88 return dataWasImported; 89 } 90 } 91 | Popular Tags |