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.shutdown; 17 18 import java.util.Enumeration; 19 import java.util.logging.Logger; 20 21 import org.columba.core.command.CommandProcessor; 22 import org.columba.mail.command.MailFolderCommandReference; 23 import org.columba.mail.folder.IMailFolder; 24 import org.columba.mail.folder.command.SaveFolderConfigurationCommand; 25 import org.columba.mail.gui.tree.FolderTreeModel; 26 27 /** 28 * Launches a new SaveFolderConfigurationCommand for each folder in the 29 * hierarchy. 30 * 31 * @author freddy 32 */ 33 public class SaveAllFoldersPlugin implements Runnable { 34 35 /** JDK 1.4+ logging framework logger, used for logging. */ 36 private static final Logger LOG = Logger 37 .getLogger("org.columba.mail.shutdown"); 38 39 public void run() { 40 IMailFolder rootFolder = (IMailFolder) FolderTreeModel.getInstance() 41 .getRoot(); 42 saveFolder(rootFolder); 43 } 44 45 protected void saveFolder(IMailFolder parentFolder) { 46 IMailFolder child; 47 48 for (Enumeration e = parentFolder.children(); e.hasMoreElements();) { 49 child = (IMailFolder) e.nextElement(); 50 51 MailFolderCommandReference r = new MailFolderCommandReference(child); 52 53 LOG.info("Saving folder " + child.getName()); 54 55 CommandProcessor.getInstance().addOp( 56 new SaveFolderConfigurationCommand(r)); 57 58 saveFolder(child); 59 } 60 } 61 } 62