KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > composer > action > SendLaterAction


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.gui.composer.action;
17
18 import java.awt.event.ActionEvent JavaDoc;
19
20 import org.columba.api.gui.frame.IFrameMediator;
21 import org.columba.core.command.CommandProcessor;
22 import org.columba.core.gui.action.AbstractColumbaAction;
23 import org.columba.core.resourceloader.ImageLoader;
24 import org.columba.mail.command.ComposerCommandReference;
25 import org.columba.mail.command.MailFolderCommandReference;
26 import org.columba.mail.config.AccountItem;
27 import org.columba.mail.config.SpecialFoldersItem;
28 import org.columba.mail.folder.IMailbox;
29 import org.columba.mail.folder.command.MarkMessageCommand;
30 import org.columba.mail.folder.outbox.OutboxFolder;
31 import org.columba.mail.gui.composer.ComposerController;
32 import org.columba.mail.gui.composer.ComposerModel;
33 import org.columba.mail.gui.composer.command.SaveMessageCommand;
34 import org.columba.mail.gui.tree.FolderTreeModel;
35 import org.columba.mail.util.MailResourceLoader;
36
37 /**
38  * @author frd
39  *
40  * To change this generated comment go to Window>Preferences>Java>Code
41  * Generation>Code and Comments
42  */

43 public class SendLaterAction extends AbstractColumbaAction {
44     public SendLaterAction(IFrameMediator FrameController) {
45         super(FrameController, MailResourceLoader.getString("menu", "composer",
46                 "menu_file_sendlater"));
47
48         // tooltip text
49
putValue(SHORT_DESCRIPTION, MailResourceLoader.getString("menu",
50                 "composer", "menu_file_sendlater").replaceAll("&", ""));
51
52         // small icon for menu
53
//putValue(SMALL_ICON, ImageLoader.getSmallImageIcon("send-later-16.png"));
54
}
55
56     /*
57      * (non-Javadoc)
58      *
59      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
60      */

61     public void actionPerformed(ActionEvent JavaDoc evt) {
62         final ComposerController composerController = (ComposerController) getFrameMediator();
63
64         if (composerController.checkState()) {
65             return;
66         }
67
68         AccountItem item = ((ComposerModel) composerController.getModel())
69                 .getAccountItem();
70         SpecialFoldersItem folderItem = item.getSpecialFoldersItem();
71         OutboxFolder destFolder = (OutboxFolder) FolderTreeModel.getInstance()
72                 .getFolder("103");
73
74         ComposerCommandReference r =new ComposerCommandReference(composerController, destFolder);
75
76         SaveMessageCommand c = new SaveMessageCommand(r);
77         CommandProcessor.getInstance().addOp(c);
78
79         // -> get source reference of message
80
// when replying this is the original sender's message
81
// you selected and replied to
82
try {
83             MailFolderCommandReference ref2 = composerController.getModel()
84                     .getSourceReference();
85             if (ref2 != null && ((IMailbox)ref2.getSourceFolder()).exists(ref2.getUids()[0])) {
86                 // mark message as answered
87
ref2.setMarkVariant(MarkMessageCommand.MARK_AS_ANSWERED);
88                 MarkMessageCommand c1 = new MarkMessageCommand(ref2);
89                 CommandProcessor.getInstance().addOp(c1);
90             }
91         } catch (Exception JavaDoc e) {
92         }
93
94         // close composer view
95
if (composerController.getView().getFrame() != null) {
96             composerController.getView().getFrame().setVisible(false);
97         }
98     }
99 }
Popular Tags