01: //The contents of this file are subject to the Mozilla Public License Version 1.1
02: //(the "License"); you may not use this file except in compliance with the
03: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
04: //
05: //Software distributed under the License is distributed on an "AS IS" basis,
06: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
07: //for the specific language governing rights and
08: //limitations under the License.
09: //
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)
61: throws Exception {
62: // get folder that is going to be moved
63: IMailFolder movedFolder = (IMailFolder) ((IFolderCommandReference) getReference())
64: .getSourceFolder();
65:
66: // get destination folder
67: destParentFolder = (IMailFolder) ((IFolderCommandReference) getReference())
68: .getDestinationFolder();
69:
70: // AbstractFolder.append also automatically removes the folder
71: // from its parent
72: movedFolder.moveTo(destParentFolder);
73:
74: }
75: }
|