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.gui.action.AbstractColumbaAction; 28 import org.columba.core.resourceloader.ImageLoader; 29 import org.columba.mail.folder.IMailFolder; 30 import org.columba.mail.folder.imap.IMAPFolder; 31 import org.columba.mail.folder.imap.IMAPRootFolder; 32 import org.columba.mail.gui.config.subscribe.SubscribeDialog; 33 import org.columba.mail.gui.frame.MailFrameMediator; 34 import org.columba.mail.gui.tree.selection.TreeSelectionChangedEvent; 35 import org.columba.mail.util.MailResourceLoader; 36 37 43 public class SubscribeFolderAction extends AbstractColumbaAction implements 44 ISelectionListener { 45 private IMAPRootFolder rootFolder; 46 47 public SubscribeFolderAction(IFrameMediator frameMediator) { 48 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 49 "menu_folder_subscribe")); 50 51 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 53 "mainframe", "menu_folder_subscribe").replaceAll("&", "")); 54 55 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, 57 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | ActionEvent.SHIFT_MASK)); 58 59 setEnabled(false); 60 61 ((MailFrameMediator) frameMediator).registerTreeSelectionListener(this); 62 } 63 64 69 public void actionPerformed(ActionEvent evt) { 70 new SubscribeDialog(getFrameMediator().getView().getFrame(), rootFolder); 71 } 72 73 78 public void selectionChanged(SelectionChangedEvent e) { 79 if (((TreeSelectionChangedEvent) e).getSelected().length > 0) { 80 IMailFolder selected = ((TreeSelectionChangedEvent) e) 81 .getSelected()[0]; 82 83 if (selected instanceof IMAPFolder) { 84 rootFolder = (IMAPRootFolder) ((IMAPFolder) selected) 85 .getRootFolder(); 86 setEnabled(true); 87 } else if (selected instanceof IMAPRootFolder) { 88 rootFolder = (IMAPRootFolder) selected; 89 setEnabled(true); 90 } else { 91 setEnabled(false); 92 } 93 } else { 94 setEnabled(false); 95 } 96 } 97 } 98 | Popular Tags |