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.JCheckBoxMenuItem ; 23 import javax.swing.KeyStroke ; 24 25 import org.columba.api.gui.frame.IFrameMediator; 26 import org.columba.api.selection.ISelectionListener; 27 import org.columba.api.selection.SelectionChangedEvent; 28 import org.columba.core.gui.action.AbstractSelectableAction; 29 import org.columba.core.xml.XmlElement; 30 import org.columba.mail.folder.IMailFolder; 31 import org.columba.mail.folder.IMailbox; 32 import org.columba.mail.gui.frame.MailFrameMediator; 33 import org.columba.mail.gui.frame.TableViewOwner; 34 import org.columba.mail.gui.tree.selection.TreeSelectionChangedEvent; 35 import org.columba.mail.util.MailResourceLoader; 36 37 44 public class ThreadedViewAction extends AbstractSelectableAction implements 45 ISelectionListener { 46 51 public ThreadedViewAction(IFrameMediator frameMediator) { 52 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 53 "menu_view_viewthreaded")); 54 55 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 57 "mainframe", "menu_view_viewthreaded_tooltip").replaceAll("&", 58 "")); 59 60 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_T, 62 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); 63 64 ((MailFrameMediator) frameMediator).registerTreeSelectionListener(this); 65 66 setEnabled(true); 67 } 68 69 public void actionPerformed(ActionEvent e) { 70 if (!(frameMediator instanceof TableViewOwner)) { 71 return; 72 } 73 74 JCheckBoxMenuItem item = (JCheckBoxMenuItem ) e.getSource(); 75 76 boolean enableThreadedView = item.isSelected(); 77 78 82 updateTable(enableThreadedView); 83 } 84 85 protected void updateTable(boolean enableThreadedView) { 86 if (!(frameMediator instanceof TableViewOwner)) { 87 return; 88 } 89 90 ((TableViewOwner) frameMediator).getTableController() 91 .enableThreadedView(enableThreadedView, true); 92 93 } 94 95 98 public void selectionChanged(SelectionChangedEvent e) { 99 IMailFolder[] selection = ((TreeSelectionChangedEvent) e).getSelected(); 100 101 if (!(selection[0] instanceof IMailbox)) { 102 return; 103 } 104 105 if (selection.length == 1) { 106 XmlElement threadedview = ((MailFrameMediator) getFrameMediator()) 107 .getFolderOptionsController().getConfigNode( 108 (IMailbox) selection[0], "ThreadedViewOptions"); 109 if (threadedview != null) { 110 String attribute = threadedview.getAttribute("enabled"); 113 setState(Boolean.valueOf(attribute).booleanValue()); 114 } 115 } 116 } 117 } | Popular Tags |