1 package org.columba.mail.gui.tree.action; 19 20 import java.awt.Toolkit ; 21 import java.awt.event.ActionEvent ; 22 import java.awt.event.KeyEvent ; 23 24 import javax.swing.KeyStroke ; 25 26 import org.columba.api.gui.frame.IFrameMediator; 27 import org.columba.api.selection.ISelectionListener; 28 import org.columba.api.selection.SelectionChangedEvent; 29 import org.columba.core.gui.action.AbstractColumbaAction; 30 import org.columba.core.resourceloader.ImageLoader; 31 import org.columba.mail.command.MailFolderCommandReference; 32 import org.columba.mail.folder.FolderFactory; 33 import org.columba.mail.folder.IMailFolder; 34 import org.columba.mail.folder.virtual.VirtualFolder; 35 import org.columba.mail.gui.config.search.SearchFrame; 36 import org.columba.mail.gui.frame.AbstractMailFrameController; 37 import org.columba.mail.gui.frame.MailFrameMediator; 38 import org.columba.mail.gui.tree.FolderTreeModel; 39 import org.columba.mail.gui.tree.selection.TreeSelectionChangedEvent; 40 import org.columba.mail.gui.tree.util.CreateFolderDialog; 41 import org.columba.mail.util.MailResourceLoader; 42 43 49 public class CreateVirtualFolderAction extends AbstractColumbaAction implements 50 ISelectionListener { 51 52 public CreateVirtualFolderAction(IFrameMediator frameMediator) { 53 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 54 "menu_folder_newvirtualfolder")); 55 56 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 58 "mainframe", "menu_folder_newvirtualfolder") 59 .replaceAll("&", "")); 60 61 putValue(SMALL_ICON, ImageLoader.getSmallIcon("folder-saved-search.png")); 63 putValue(LARGE_ICON, ImageLoader.getIcon("folder-saved-search.png")); 64 65 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_V, 67 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | ActionEvent.SHIFT_MASK)); 68 69 setEnabled(false); 70 71 ((MailFrameMediator) frameMediator).registerTreeSelectionListener(this); 72 } 73 74 79 public void actionPerformed(ActionEvent evt) { 80 CreateFolderDialog dialog = new CreateFolderDialog(getFrameMediator(), 81 null); 82 83 String name; 84 85 if (dialog.success()) { 86 name = dialog.getName(); 88 89 try { 90 MailFolderCommandReference r = (MailFolderCommandReference) ((AbstractMailFrameController) getFrameMediator()) 91 .getTreeSelection(); 92 93 VirtualFolder vfolder = (VirtualFolder) FolderFactory 94 .getInstance().createVirtualFolder((IMailFolder) r.getSourceFolder(), name); 95 96 FolderTreeModel.getInstance().nodeStructureChanged((IMailFolder)r.getSourceFolder()); 97 98 vfolder.getConfiguration().setString("property", "source_uid", 100 r.getSourceFolder().getId()); 101 102 new SearchFrame((AbstractMailFrameController) frameMediator, 104 vfolder); 105 } catch (Exception ex) { 106 ex.printStackTrace(); 107 } 108 } else { 109 return; 111 } 112 } 113 114 119 public void selectionChanged(SelectionChangedEvent e) { 120 if (((TreeSelectionChangedEvent) e).getSelected().length > 0) { 121 setEnabled(true); 122 } else { 123 setEnabled(false); 124 } 125 } 126 } | Popular Tags |