01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //limitations under the License.
10: //
11: //The Original Code is "The Columba Project"
12: //
13: //The Initial Developers of the Original Code are Frederik Dietz and Timo
14: // Stich.
15: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16: //
17: //All Rights Reserved.
18: package org.columba.mail.folder.command;
19:
20: import org.columba.api.command.ICommandReference;
21: import org.columba.api.command.IWorkerStatusController;
22: import org.columba.core.command.Command;
23: import org.columba.core.command.StatusObservableImpl;
24: import org.columba.core.command.Worker;
25: import org.columba.mail.command.IMailFolderCommandReference;
26: import org.columba.mail.folder.IMailbox;
27:
28: /**
29: * Expunge folder.
30: * <p>
31: * Delete all messages from this folder, which are marked as expunged.
32: *
33: * @author fdietz
34: *
35: */
36: public class ExpungeFolderCommand extends Command {
37:
38: /**
39: * Constructor for ExpungeFolderCommand.
40: *
41: * @param frameMediator
42: * @param reference
43: */
44: public ExpungeFolderCommand(ICommandReference reference) {
45: super (reference);
46: }
47:
48: /**
49: * @see org.columba.api.command.Command#execute(Worker)
50: */
51: public void execute(IWorkerStatusController worker)
52: throws Exception {
53:
54: // get source references
55: IMailFolderCommandReference r = (IMailFolderCommandReference) getReference();
56:
57: IMailbox srcFolder = (IMailbox) r.getSourceFolder();
58:
59: // register for status events
60: ((StatusObservableImpl) srcFolder.getObservable())
61: .setWorker(worker);
62:
63: // update status message
64: worker
65: .setDisplayText("Expunging " + srcFolder.getName()
66: + "..");
67:
68: // expunge folder
69: srcFolder.expungeFolder();
70:
71: }
72: }
|