01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //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.folderoptions;
19:
20: import org.columba.core.xml.XmlElement;
21: import org.columba.mail.folder.IMailbox;
22:
23: /**
24: * @author fdietz
25: *
26: */
27: public interface IFolderOptionsController {
28: /**
29: * Get plugin with specific name.
30: *
31: * @param name name of plugin
32: * @return instance of plugin
33: */
34: //AbstractFolderOptionsPlugin getPlugin(String name);
35: /**
36: * Load all folder options for this folder.
37: *
38: * @param folder selected folder
39: */
40: void load(IMailbox folder, int state);
41:
42: /**
43: * Save all folder options for this folder.
44: *
45: * @param folder selected folder
46: */
47: void save(IMailbox folder);
48:
49: /**
50: * Load all folder options globally.
51: *
52: */
53: void load(int state);
54:
55: /**
56: * Get parent configuration node of plugin.
57: * <p>
58: * Example for the sorting plugin configuration node. This is
59: * how it can be found in options.xml and tree.xml:<br>
60: * <pre>
61: * <sorting column="Date" order="true" />
62: * </pre>
63: * <p>
64: *
65: * @param folder selected folder
66: * @param name name of plugin (example: ColumnOptions)
67: * @return parent configuration node
68: */
69: XmlElement getConfigNode(IMailbox folder, String name);
70:
71: /**
72: * Create default settings for this folder.
73: *
74: * @param folder selected folder
75: */
76: void createDefaultSettings(IMailbox folder);
77: }
|