1 package org.columba.mail.folder.command; 17 18 import java.util.logging.Logger ; 19 20 import org.columba.api.command.ICommandReference; 21 import org.columba.api.command.IWorkerStatusController; 22 import org.columba.core.command.StatusObservableImpl; 23 import org.columba.core.command.Worker; 24 import org.columba.mail.command.IMailFolderCommandReference; 25 import org.columba.mail.folder.IMailbox; 26 27 34 public class MoveMessageCommand extends CopyMessageCommand { 35 36 37 private static final Logger LOG = Logger 38 .getLogger("org.columba.mail.folder.command"); 39 40 46 public MoveMessageCommand(ICommandReference reference) { 47 super(reference); 48 } 49 50 53 public void execute(IWorkerStatusController worker) throws Exception { 54 55 r = (IMailFolderCommandReference) getReference(); 57 58 IMailbox srcFolder = (IMailbox) r.getSourceFolder(); 60 61 destFolder = (IMailbox) r.getDestinationFolder(); 63 64 if ( srcFolder.getId() == destFolder.getId() ) return; 66 67 doExecute(worker, "move_messages", "err_copy_messages_retry", 70 "err_copy_messages_ignore", "err_move_messages_msg", 71 "err_move_messages_title", "move_messages_cancelled"); 72 73 Object [] uids = r.getUids(); 75 76 ((StatusObservableImpl) srcFolder.getObservable()).setWorker(worker); 78 79 srcFolder.setLastSelection(null); 81 82 LOG.info("src=" + srcFolder + " dest=" + destFolder); 83 84 worker.setDisplayText("Moving messages to " + destFolder.getName() 86 + "..."); 87 worker.setProgressBarMaximum(uids.length); 88 89 srcFolder.markMessage(uids, MarkMessageCommand.MARK_AS_EXPUNGED); 91 92 srcFolder.expungeFolder(); 94 95 worker.clearDisplayTextWithDelay(); 97 98 } 99 } | Popular Tags |