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 48 public class NextMessageAction extends AbstractColumbaAction implements 49 ISelectionListener { 50 public NextMessageAction(IFrameMediator frameMediator) { 51 super(frameMediator, MailResourceLoader.getString("menu", "mainframe", 52 "menu_view_nextmessage")); 53 54 putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu", 56 "mainframe", "menu_view_nextmessage_tooltip").replaceAll("&", 57 "")); 58 59 putValue(LARGE_ICON, ImageLoader.getIcon(IconKeys.GO_NEXT)); 61 putValue(SMALL_ICON, ImageLoader.getSmallIcon(IconKeys.GO_NEXT)); 62 63 66 setShowToolBarText(false); 68 69 71 73 77 } 78 79 83 public void actionPerformed(ActionEvent evt) { 84 IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator()) 85 .getTableSelection(); 86 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 nextNode = (MessageNode) node.getNextNode(); 100 if (nextNode == null) 101 return; 102 103 r.setUids(new Object [] { nextNode.getUid() }); 105 ((MailFrameMediator) getFrameMediator()).setTableSelection(r); 106 CommandProcessor.getInstance().addOp(new ViewMessageCommand( 107 getFrameMediator(), r)); 108 109 table.setSelected(new Object [] { nextNode.getUid() }); 111 } 112 113 117 public void selectionChanged(SelectionChangedEvent e) { 118 setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0); 119 } 120 } | Popular Tags |