1 | class NextUnreadMessageAction extends AbstractColumbaAction ↵ | | 1 | class PreviousUnreadMessageAction extends AbstractColumbaAction↵
|
2 | implements↵ | | 2 | implements↵
|
3 | ISelectionListener {↵ | | 3 | ISelectionListener {↵
|
4 | /**↵ | | 4 | ↵
|
5 | * @param frameMediator↵ | | |
|
6 | * @param name↵ | | |
|
7 | * @param longDescription↵ | | |
|
8 | * @param actionCommand↵ | | |
|
9 | * @param small_icon↵ | | |
|
10 | * @param big_icon↵ | | |
|
11 | * @param mnemonic↵ | | |
|
12 | * @param keyStroke↵ | | |
|
13 | */↵ | | |
|
14 | public NextUnreadMessageAction(IFrameMediator frameMediator) {↵ | | 5 | public PreviousUnreadMessageAction(IFrameMediator frameMediator) {↵
|
15 | super(frameMediator, MailResourceLoader.getString("menu", "mainframe",↵ | | 6 | super(frameMediator, MailResourceLoader.getString("menu", "mainframe",↵
|
16 | "menu_view_nextunreadmessage"));↵ | | 7 | "menu_view_prevunreadmessage"));↵
|
|
17 | // tooltip text↵ | | 8 | // tooltip text↵
|
18 | putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu",↵ | | 9 | putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu",↵
|
19 | "mainframe", "menu_view_nextunreadmessage_tooltip").replaceAll(↵ | | 10 | "mainframe", "menu_view_prevunreadmessage_tooltip").replaceAll(↵
|
20 | "&", ""));↵ | | 11 | "&", ""));↵
|
|
21 | // Shortcut key↵ | | 12 | // shortcut key↵
|
22 | //putValue(ACCELERATOR_KEY,↵ | | 13 | //putValue(ACCELERATOR_KEY,↵
|
23 | // KeyStroke.getKeyStroke(KeyEvent.VK_BRACELEFT,0));↵ | | 14 | // KeyStroke.getKeyStroke(KeyEvent.VK_BRACELEFT, 0));↵
|
|
24 | //setEnabled(false);↵ | | 15 | //setEnabled(false);↵
|
|
25 | // uncomment to enable action↵ | | 16 | // uncomment to enable action↵
|
|
26 | /*↵ | | 17 | /*↵
|
27 | * ( ( AbstractMailFrameController)↵ | | 18 | * ((MailFrameMediator)↵
|
28 | frameMediator)↵ | | 19 | * frameMediator)↵
|
29 | * .registerTableSelectionListener( this);↵ | | 20 | .registerTableSelectionListener(this);↵
|
30 | */↵ | | 21 | */↵
|
31 | }↵ | | 22 | }↵
|
|
32 | /**↵ | | 23 | /**↵
|
33 | * ↵ | | 24 | * ↵
|
34 | * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)↵ | | 25 | * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)↵
|
35 | */↵ | | 26 | */↵
|
36 | public void actionPerformed(ActionEvent evt) {↵ | | 27 | public void actionPerformed(ActionEvent evt) {↵
|
37 | IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator())↵ | | 28 | IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator())↵
|
38 | .getTableSelection();↵ | | 29 | .getTableSelection();↵
|
|
39 | ITableController table = ((TableViewOwner) getFrameMediator())↵ | | 30 | ITableController table = ((TableViewOwner) getFrameMediator())↵
|
40 | .getTableController();↵ | | 31 | .getTableController();↵
|
41 | if ( table == null ) return;↵ | | 32 | if ( table == null ) return;↵
|
| | | 33 | ↵
|
42 | if (r == null)↵ | | 34 | if (r == null)↵
|
43 | return;↵ | | 35 | return;↵
|
|
44 | IMessageNode[] nodes = table.getSelectedNodes();↵ | | 36 | IMessageNode[] nodes = table.getSelectedNodes();↵
|
45 | if (nodes.length == 0)↵ | | 37 | if (nodes.length == 0)↵
|
46 | return;↵ | | 38 | return;↵
|
|
47 | MessageNode node = (MessageNode) nodes[0];↵ | | 39 | MessageNode node = (MessageNode) nodes[0];↵
|
48 | MessageNode nextNode = node;↵ | | 40 | MessageNode previousNode = node;↵
|
49 | boolean seen = true;↵ | | 41 | boolean seen = true;↵
|
50 | while (seen) {↵ | | 42 | while (seen) {↵
|
51 | nextNode = (MessageNode) nextNode.getNextNode();↵ | | 43 | previousNode = (MessageNode) previousNode.getPreviousNode();↵
|
52 | if (nextNode == null)↵ | | 44 | if (previousNode == null)↵
|
53 | return;↵ | | 45 | return;↵
|
|
54 | IColumbaHeader h = nextNode.getHeader();↵ | | 46 | IColumbaHeader h = previousNode.getHeader();↵
|
55 | seen = h.getFlags().getSeen();↵ | | 47 | seen = h.getFlags().getSeen();↵
|
56 | }↵ | | 48 | }↵
|
|
57 | // necessary for the message-frame only↵ | | 49 | // necessary for the message-frame only↵
|
58 | r.setUids(new Object[] { nextNode.getUid() });↵ | | 50 | r.setUids(new Object[] { previousNode.getUid() });↵
|
59 | ((MailFrameMediator) getFrameMediator()).setTableSelection(r);↵ | | 51 | ((MailFrameMediator) getFrameMediator()).setTableSelection(r);↵
|
60 | CommandProcessor.getInstance().addOp(new ViewMessageCommand(↵ | | 52 | CommandProcessor.getInstance().addOp(new ViewMessageCommand(↵
|
61 | getFrameMediator(), r));↵ | | 53 | getFrameMediator(), r));↵
|
|
62 | // select message in message list↵ | | 54 | // select message in message list↵
|
63 | table.setSelected(new Object[] { nextNode.getUid() });↵ | | 55 | table.setSelected(new Object[] { previousNode.getUid() });↵
|
64 | }↵ | | 56 | }↵
|
|
65 | /**↵ | | 57 | /**↵
|
66 | * ↵ | | 58 | * ↵
|
67 | * @see org.columba.core.gui.util.ISelectionListener#connectionChanged(org.columba.core.gui.util.SelectionChangedEvent)↵ | | 59 | * @see org.columba.core.gui.util.ISelectionListener#connectionChanged(org.columba.core.gui.util.SelectionChangedEvent)↵
|
68 | */↵ | | 60 | */↵
|
69 | public void selectionChanged(SelectionChangedEvent e) {↵ | | 61 | public void selectionChanged(SelectionChangedEvent e) {↵
|
70 | setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0);↵ | | 62 | setEnabled(((TableSelectionChangedEvent) e).getUids().length > 0);↵
|
71 | }↵ | | 63 | }↵
|
72 | } | | 64 | }
|