1 package org.columba.mail.gui.tree.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.command.ApplyFilterCommand; 33 import org.columba.mail.gui.frame.AbstractMailFrameController; 34 import org.columba.mail.gui.frame.MailFrameMediator; 35 import org.columba.mail.gui.tree.selection.TreeSelectionChangedEvent; 36 import org.columba.mail.util.MailResourceLoader; 37 38 44 public class ApplyFilterAction extends AbstractColumbaAction implements 45 ISelectionListener { 46 public ApplyFilterAction(IFrameMediator frameMediator) { 47 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 48 "menu_folder_applyfilter")); 49 50 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 52 "mainframe", "menu_folder_applyfilter").replaceAll("&", "")); 53 54 58 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A, 60 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | ActionEvent.SHIFT_MASK)); 61 62 setEnabled(false); 63 64 ((MailFrameMediator) frameMediator).registerTreeSelectionListener(this); 65 } 66 67 72 public void actionPerformed(ActionEvent evt) { 73 IMailFolderCommandReference r = ((AbstractMailFrameController) getFrameMediator()) 74 .getTreeSelection(); 75 76 CommandProcessor.getInstance().addOp(new ApplyFilterCommand(r)); 78 } 79 80 85 public void selectionChanged(SelectionChangedEvent e) { 86 if (((TreeSelectionChangedEvent) e).getSelected().length == 1 && ((TreeSelectionChangedEvent) e).getSelected()[0] instanceof IMailbox) { 87 setEnabled(true); 88 } else { 89 setEnabled(false); 90 } 91 } 92 } | Popular Tags |