1 package org.columba.calendar.command; 19 20 import java.io.File ; 21 import java.util.Iterator ; 22 23 import javax.swing.JOptionPane ; 24 25 import org.columba.api.command.IWorkerStatusController; 26 import org.columba.calendar.base.api.ICalendarItem; 27 import org.columba.calendar.model.api.IEventInfo; 28 import org.columba.calendar.parser.CalendarImporter; 29 import org.columba.calendar.store.api.ICalendarStore; 30 import org.columba.calendar.store.api.StoreException; 31 import org.columba.core.command.Command; 32 import org.columba.core.gui.frame.FrameManager; 33 34 public class ImportCalendarCommand extends Command { 35 36 private File [] sourceFiles; 37 38 public ImportCalendarCommand(CalendarCommandReference ref, 39 File [] sourceFiles) { 40 super(ref); 41 42 this.sourceFiles = sourceFiles; 43 } 44 45 @Override 46 public void execute(IWorkerStatusController worker) throws Exception { 47 ICalendarStore store = ((CalendarCommandReference) getReference()) 48 .getStore(); 49 ICalendarItem calendar = ((CalendarCommandReference) getReference()) 50 .getSrcCalendar(); 51 52 for (int i = 0; i < sourceFiles.length; i++) { 53 54 Iterator <IEventInfo> it = new CalendarImporter() 55 .importCalendar(calendar, sourceFiles[i]); 56 57 while (it.hasNext()) { 58 IEventInfo event = it.next(); 59 event.setCalendar(calendar.getId()); 60 61 try { 62 store.add(event); 63 } catch (StoreException e) { 64 JOptionPane.showMessageDialog(FrameManager.getInstance() 65 .getActiveFrame(), e.getMessage()); 66 e.printStackTrace(); 67 } 68 } 69 70 } 71 } 72 } 73 | Popular Tags |