1 package org.columba.mail.gui.table.action; 17 18 import java.awt.Toolkit ; 19 import java.awt.event.ActionEvent ; 20 import java.awt.event.KeyEvent ; 21 22 import javax.swing.KeyStroke ; 23 24 import org.columba.api.gui.frame.IFrameMediator; 25 import org.columba.api.selection.ISelectionListener; 26 import org.columba.api.selection.SelectionChangedEvent; 27 import org.columba.core.command.CommandProcessor; 28 import org.columba.core.gui.action.AbstractColumbaAction; 29 import org.columba.core.resourceloader.ImageLoader; 30 import org.columba.mail.command.IMailFolderCommandReference; 31 import org.columba.mail.folder.IMailbox; 32 import org.columba.mail.folder.RootFolder; 33 import org.columba.mail.folder.command.ExpungeFolderCommand; 34 import org.columba.mail.folder.command.MarkMessageCommand; 35 import org.columba.mail.folder.command.MoveMessageCommand; 36 import org.columba.mail.gui.frame.MailFrameMediator; 37 import org.columba.mail.gui.messageframe.MessageFrameController; 38 import org.columba.mail.gui.table.selection.TableSelectionChangedEvent; 39 import org.columba.mail.util.MailResourceLoader; 40 41 47 public class DeleteMessageAction extends AbstractColumbaAction implements 48 ISelectionListener { 49 public DeleteMessageAction(IFrameMediator frameMediator) { 50 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 51 "menu_message_delete")); 52 53 putValue(TOOLBAR_NAME, MailResourceLoader.getString("menu", 55 "mainframe", "menu_message_delete_toolbar")); 56 57 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 59 "mainframe", "menu_message_delete_tooltip").replaceAll("&", "")); 60 61 putValue(SMALL_ICON, ImageLoader 63 .getSmallIcon("user-trash-full.png")); 64 65 putValue(LARGE_ICON, ImageLoader.getIcon("user-trash-full.png")); 67 68 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_D, 70 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); 71 72 setShowToolBarText(false); 74 75 setEnabled(false); 76 77 ((MailFrameMediator) frameMediator) 78 .registerTableSelectionListener(this); 79 } 80 81 86 public void actionPerformed(ActionEvent evt) { 87 88 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()) 89 .getTableSelection(); 90 r.setMarkVariant(MarkMessageCommand.MARK_AS_EXPUNGED); 91 92 IMailbox folder = (IMailbox) r.getSourceFolder(); 93 String uid = folder.getConfiguration().get("uid"); 94 IMailbox trash = (IMailbox) ((RootFolder) folder.getRootFolder()) 95 .getTrashFolder(); 96 97 CommandProcessor.getInstance().addOp(new MarkMessageCommand(r)); 99 100 if (uid.equals(trash.getId())) { 104 CommandProcessor.getInstance().addOp(new ExpungeFolderCommand(r)); 107 } else { 108 IMailbox destFolder = trash; 110 111 IMailFolderCommandReference result = ((MailFrameMediator) getFrameMediator()) 112 .getTableSelection(); 113 result.setDestinationFolder(destFolder); 114 115 MoveMessageCommand c = new MoveMessageCommand(result); 116 117 CommandProcessor.getInstance().addOp(c); 118 } 119 120 if (getFrameMediator() instanceof MessageFrameController) { 123 getFrameMediator().fireClosed(); 125 } 126 } 127 128 133 public void selectionChanged(SelectionChangedEvent e) { 134 setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0); 135 } 136 } 137 | Popular Tags |