1 package org.columba.mail.gui.table.action; 17 18 import java.awt.event.ActionEvent ; 19 20 import org.columba.api.gui.frame.IFrameMediator; 21 import org.columba.api.selection.ISelectionListener; 22 import org.columba.api.selection.SelectionChangedEvent; 23 import org.columba.core.command.CommandProcessor; 24 import org.columba.core.gui.action.AbstractColumbaAction; 25 import org.columba.core.resourceloader.IconKeys; 26 import org.columba.core.resourceloader.ImageLoader; 27 import org.columba.mail.command.IMailFolderCommandReference; 28 import org.columba.mail.gui.frame.MailFrameMediator; 29 import org.columba.mail.gui.frame.TableViewOwner; 30 import org.columba.mail.gui.message.command.ViewMessageCommand; 31 import org.columba.mail.gui.table.IMessageNode; 32 import org.columba.mail.gui.table.ITableController; 33 import org.columba.mail.gui.table.model.MessageNode; 34 import org.columba.mail.gui.table.selection.TableSelectionChangedEvent; 35 import org.columba.mail.util.MailResourceLoader; 36 37 49 public class PreviousMessageAction extends AbstractColumbaAction implements 50 ISelectionListener { 51 public PreviousMessageAction(IFrameMediator frameMediator) { 52 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 53 "menu_view_prevmessage")); 54 55 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 57 "mainframe", "menu_view_prevmessage_tooltip").replaceAll("&", 58 "")); 59 60 putValue(LARGE_ICON, ImageLoader.getIcon(IconKeys.GO_PREVIOUS)); 62 putValue(SMALL_ICON, ImageLoader.getSmallIcon(IconKeys.GO_PREVIOUS)); 63 64 67 setShowToolBarText(false); 69 70 72 74 78 } 79 80 84 public void actionPerformed(ActionEvent evt) { 85 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()) 86 .getTableSelection(); 87 ITableController table = ((TableViewOwner) getFrameMediator()) 88 .getTableController(); 89 if ( table == null ) return; 90 91 if (r == null) 92 return; 93 94 IMessageNode[] nodes = table.getSelectedNodes(); 95 if (nodes.length == 0) 96 return; 97 98 MessageNode node = (MessageNode) nodes[0]; 99 MessageNode previousNode = (MessageNode) node.getPreviousNode(); 100 if (previousNode == null) 101 return; 102 103 r.setUids(new Object [] { previousNode.getUid() }); 105 ((MailFrameMediator) getFrameMediator()).setTableSelection(r); 106 CommandProcessor.getInstance().addOp(new ViewMessageCommand( 107 getFrameMediator(), r)); 108 109 table.setSelected(new Object [] { previousNode.getUid() }); 111 } 112 113 117 public void selectionChanged(SelectionChangedEvent e) { 118 setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0); 119 } 120 } | Popular Tags |