KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > calendar > config > Config


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//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.calendar.config;
19
20 import java.awt.Color JavaDoc;
21 import java.io.File JavaDoc;
22
23 import org.columba.calendar.base.api.ICalendarItem;
24 import org.columba.calendar.config.api.ICalendarList;
25 import org.columba.calendar.config.api.IConfig;
26 import org.columba.core.config.DefaultConfigDirectory;
27 import org.columba.core.io.DiskIO;
28 import org.columba.core.shutdown.ShutdownManager;
29
30 public class Config implements IConfig {
31
32     private ICalendarList calendarList;
33
34     private static Config instance;
35
36     private XMLPersistence persistence;
37
38     private File JavaDoc calendarDirectory;
39
40     private Config() throws Exception JavaDoc {
41
42         // get Columba's top-level configuration directory
43
File JavaDoc file = DefaultConfigDirectory.getDefaultPath();
44
45         // create top-level configuration directory
46
calendarDirectory = new File JavaDoc(file, "calendar");
47         DiskIO.ensureDirectory(calendarDirectory);
48         persistence = new XMLPersistence(calendarDirectory);
49
50         // load configuration from persistence
51
boolean success = persistence.load();
52         if ( success == false) {
53             createDefaults();
54         }
55
56         // make sure configuration is saved when exiting
57
ShutdownManager.getInstance().register(new Runnable JavaDoc() {
58             public void run() {
59                 try {
60                     persistence.save();
61                 } catch (Exception JavaDoc e) {
62                     e.printStackTrace();
63                 }
64             }
65         });
66
67     }
68
69     public static IConfig getInstance() {
70         if (instance == null) {
71             try {
72                 instance = new Config();
73             } catch (Exception JavaDoc e) {
74                 e.printStackTrace();
75             }
76         }
77
78         return instance;
79     }
80
81     private void createDefaults() {
82         calendarList = new CalendarList();
83
84         calendarList.add("private", ICalendarItem.TYPE.LOCAL, "Private", new Color JavaDoc(-19276));
85         calendarList.add("work", ICalendarItem.TYPE.LOCAL, "Work", new Color JavaDoc(-4915276));
86     }
87
88     public ICalendarList getCalendarList() {
89         return calendarList;
90     }
91
92     public File JavaDoc getConfigDirectory() {
93         return calendarDirectory;
94     }
95
96 }
97
Popular Tags