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.mail.command.IMailFolderCommandReference; 30 import org.columba.mail.command.MailFolderCommandReference; 31 import org.columba.mail.folder.IMailFolder; 32 import org.columba.mail.folder.command.CopyMessageCommand; 33 import org.columba.mail.gui.frame.MailFrameMediator; 34 import org.columba.mail.gui.table.selection.TableSelectionChangedEvent; 35 import org.columba.mail.gui.tree.util.SelectFolderDialog; 36 import org.columba.mail.resourceloader.MailImageLoader; 37 import org.columba.mail.util.MailResourceLoader; 38 39 45 public class CopyMessageAction extends AbstractColumbaAction implements 46 ISelectionListener { 47 public CopyMessageAction(IFrameMediator frameMediator) { 48 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 49 "menu_message_copy")); 50 51 putValue(TOOLBAR_NAME, MailResourceLoader.getString("menu", 53 "mainframe", "menu_message_copy_toolbar")); 54 55 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 57 "mainframe", "menu_message_copy_tooltip").replaceAll("&", "")); 58 59 putValue(SMALL_ICON, MailImageLoader.getSmallIcon("message-copy.png")); 61 putValue(LARGE_ICON, MailImageLoader.getIcon("message-copy.png")); 62 63 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_V, 64 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | ActionEvent.SHIFT_MASK)); 65 66 setShowToolBarText(false); 68 69 setEnabled(false); 70 71 ((MailFrameMediator) frameMediator) 72 .registerTableSelectionListener(this); 73 } 74 75 80 public void actionPerformed(ActionEvent evt) { 81 SelectFolderDialog dialog = new SelectFolderDialog(getFrameMediator()); 82 83 if (dialog.success()) { 84 IMailFolder destFolder = (IMailFolder) dialog.getSelectedFolder(); 85 86 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()) 87 .getTableSelection(); 88 IMailFolderCommandReference result = new MailFolderCommandReference( 89 r.getSourceFolder(), destFolder); 90 result.setUids(r.getUids()); 91 92 CopyMessageCommand c = new CopyMessageCommand(result); 93 94 CommandProcessor.getInstance().addOp(c); 95 } 96 } 97 98 103 public void selectionChanged(SelectionChangedEvent e) { 104 setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0); 105 } 106 } | Popular Tags |