1 package org.columba.mail.gui.tree.action; 17 18 import java.awt.event.ActionEvent ; 19 20 import javax.swing.JOptionPane ; 21 22 import org.columba.api.gui.frame.IFrameMediator; 23 import org.columba.api.selection.ISelectionListener; 24 import org.columba.api.selection.SelectionChangedEvent; 25 import org.columba.core.command.CommandProcessor; 26 import org.columba.core.gui.action.AbstractColumbaAction; 27 import org.columba.core.gui.frame.FrameManager; 28 import org.columba.core.resourceloader.ImageLoader; 29 import org.columba.mail.command.IMailFolderCommandReference; 30 import org.columba.mail.config.IFolderItem; 31 import org.columba.mail.folder.IMailFolder; 32 import org.columba.mail.folder.IMailbox; 33 import org.columba.mail.folder.command.RemoveFolderCommand; 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 RemoveFolderAction extends AbstractColumbaAction implements 45 ISelectionListener { 46 public RemoveFolderAction(IFrameMediator frameMediator) { 47 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 48 "menu_folder_removefolder")); 49 50 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 52 "mainframe", "menu_folder_removefolder").replaceAll("&", "")); 53 54 58 setEnabled(false); 59 60 ((MailFrameMediator) frameMediator).registerTreeSelectionListener(this); 61 } 62 63 68 public void actionPerformed(ActionEvent evt) { 69 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()) 70 .getTreeSelection(); 71 IMailFolder folder = (IMailFolder) r.getSourceFolder(); 72 73 if (!folder.isLeaf()) { 74 JOptionPane.showMessageDialog(FrameManager.getInstance() 76 .getActiveFrame(), 77 "Your can only remove leaf folders!"); 78 79 return; 80 } else { 81 int n = JOptionPane.showConfirmDialog(null, MailResourceLoader 83 .getString("tree", "tree", "folder_warning"), 84 MailResourceLoader.getString("tree", "tree", 85 "folder_warning_title"), JOptionPane.YES_NO_OPTION); 86 87 if (n == JOptionPane.NO_OPTION) { 88 return; 89 } 90 } 91 92 CommandProcessor.getInstance().addOp(new RemoveFolderCommand(r)); 93 } 94 95 100 public void selectionChanged(SelectionChangedEvent e) { 101 if (((TreeSelectionChangedEvent) e).getSelected().length ==1 ) { 102 IMailFolder folder = ((TreeSelectionChangedEvent) e).getSelected()[0]; 103 104 if (folder instanceof IMailbox) { 105 IFolderItem item = folder.getConfiguration(); 106 107 if (item.getString("property", "accessrights").equals("user")) { 108 setEnabled(true); 109 } else { 110 setEnabled(false); 111 } 112 } 113 } else { 114 setEnabled(false); 115 } 116 } 117 } | Popular Tags |