1 package org.columba.calendar.ui.action; 19 20 import java.awt.event.ActionEvent ; 21 import java.io.File ; 22 23 import javax.swing.JFileChooser ; 24 import javax.swing.JOptionPane ; 25 26 import org.columba.api.gui.frame.IFrameMediator; 27 import org.columba.calendar.base.api.ICalendarItem; 28 import org.columba.calendar.command.CalendarCommandReference; 29 import org.columba.calendar.command.ImportCalendarCommand; 30 import org.columba.calendar.store.CalendarStoreFactory; 31 import org.columba.calendar.store.api.ICalendarStore; 32 import org.columba.calendar.ui.frame.api.ICalendarMediator; 33 import org.columba.calendar.ui.list.api.CalendarSelectionChangedEvent; 34 import org.columba.calendar.ui.list.api.ICalendarListView; 35 import org.columba.calendar.ui.list.api.ICalendarSelectionChangedListener; 36 import org.columba.core.command.Command; 37 import org.columba.core.command.CommandProcessor; 38 import org.columba.core.gui.action.AbstractColumbaAction; 39 import org.columba.core.gui.frame.FrameManager; 40 41 50 public class ImportCalendarAction extends AbstractColumbaAction implements 51 ICalendarSelectionChangedListener { 52 53 public ImportCalendarAction(IFrameMediator frameMediator) { 54 super(frameMediator, "Import Calendar"); 55 56 setEnabled(false); 57 58 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 59 ICalendarListView list = m.getListView(); 60 61 list.addSelectionChangedListener(this); 62 63 } 64 65 public void actionPerformed(ActionEvent e) { 66 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 67 ICalendarListView list = m.getListView(); 68 69 ICalendarItem calendar = list.getSelected(); 71 72 if (calendar == null) { 73 JOptionPane.showMessageDialog(FrameManager.getInstance() 74 .getActiveFrame(), 75 "No calendar for import selected."); 76 return; 77 } 78 79 JFileChooser fc = new JFileChooser (); 80 fc.setMultiSelectionEnabled(true); 81 fc.setFileSelectionMode(JFileChooser.FILES_ONLY); 82 fc.setFileHidingEnabled(false); 83 84 if (fc.showOpenDialog(frameMediator.getContainer().getFrame()) == JFileChooser.APPROVE_OPTION) { 85 File [] sourceFiles = fc.getSelectedFiles(); 86 87 if (sourceFiles.length >= 1) { 88 ICalendarStore store = CalendarStoreFactory.getInstance() 89 .getLocaleStore(); 90 91 Command command = new ImportCalendarCommand( 92 new CalendarCommandReference(store, calendar), sourceFiles); 93 94 CommandProcessor.getInstance().addOp(command); 95 96 } 97 } 98 } 99 100 public void selectionChanged(CalendarSelectionChangedEvent event) { 101 if (event.getSelection() != null) 102 setEnabled(true); 103 else 104 setEnabled(false); 105 106 } 107 } 108 | Popular Tags |