1 package org.columba.calendar.config; 19 20 import java.awt.Color ; 21 import java.io.File ; 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 calendarDirectory; 39 40 private Config() throws Exception { 41 42 File file = DefaultConfigDirectory.getDefaultPath(); 44 45 calendarDirectory = new File (file, "calendar"); 47 DiskIO.ensureDirectory(calendarDirectory); 48 persistence = new XMLPersistence(calendarDirectory); 49 50 boolean success = persistence.load(); 52 if ( success == false) { 53 createDefaults(); 54 } 55 56 ShutdownManager.getInstance().register(new Runnable () { 58 public void run() { 59 try { 60 persistence.save(); 61 } catch (Exception 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 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 (-19276)); 85 calendarList.add("work", ICalendarItem.TYPE.LOCAL, "Work", new Color (-4915276)); 86 } 87 88 public ICalendarList getCalendarList() { 89 return calendarList; 90 } 91 92 public File getConfigDirectory() { 93 return calendarDirectory; 94 } 95 96 } 97
| Popular Tags
|