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.folder.command; 17 18 import org.columba.api.command.ICommandReference; 19 import org.columba.api.command.IWorkerStatusController; 20 import org.columba.core.command.Command; 21 import org.columba.core.folder.api.IFolderCommandReference; 22 import org.columba.mail.folder.IMailFolder; 23 24 /** 25 * A Command for moving a folder to another folder. 26 * <p> 27 * The command reference should be inserted as these: 28 * <ol> 29 * <li> A <code>Folder</code> that is going to be moved. 30 * <li> A <code>FolderTreeNode</code> that the above folder is moved to. 31 * </ol> 32 * 33 * @author redsolo 34 */ 35 public class MoveFolderCommand extends Command { 36 37 private IMailFolder destParentFolder; 38 39 /** 40 * @param references 41 * the folder references. 42 */ 43 public MoveFolderCommand(ICommandReference reference) { 44 super(reference); 45 } 46 47 /** {@inheritDoc} */ 48 /* 49 * public void updateGUI() throws Exception { // update treemodel if 50 * (srcParentFolder != null) { 51 * MailInterface.treeModel.nodesWereRemoved(srcParentFolder, 52 * srcChildIndicies, srcChildObjects); } 53 * 54 * if (destParentFolder != null) { 55 * MailInterface.treeModel.nodesWereInserted(destParentFolder, 56 * destChildIndicies); } } 57 */ 58 59 /** {@inheritDoc} */ 60 public void execute(IWorkerStatusController worker) throws Exception { 61 // get folder that is going to be moved 62 IMailFolder movedFolder = (IMailFolder) ((IFolderCommandReference) getReference()) 63 .getSourceFolder(); 64 65 // get destination folder 66 destParentFolder = (IMailFolder) ((IFolderCommandReference) getReference()) 67 .getDestinationFolder(); 68 69 // AbstractFolder.append also automatically removes the folder 70 // from its parent 71 movedFolder.moveTo(destParentFolder); 72 73 } 74 } 75