1 // The contents of this file are subject to the Mozilla Public License Version 2 // 1.1 3 //(the "License"); you may not use this file except in compliance with the 4 //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ 5 // 6 //Software distributed under the License is distributed on an "AS IS" basis, 7 //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 8 //for the specific language governing rights and 9 //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) throws Exception { 52 53 // get source references 54 IMailFolderCommandReference r = (IMailFolderCommandReference) getReference(); 55 56 IMailbox srcFolder = (IMailbox) r.getSourceFolder(); 57 58 // register for status events 59 ((StatusObservableImpl) srcFolder.getObservable()).setWorker(worker); 60 61 // update status message 62 worker.setDisplayText("Expunging " + srcFolder.getName() + ".."); 63 64 // expunge folder 65 srcFolder.expungeFolder(); 66 67 } 68 }