1 package org.columba.calendar.ui.action; 19 20 import java.awt.event.ActionEvent ; 21 import java.awt.event.ActionListener ; 22 import java.util.Enumeration ; 23 import java.util.Hashtable ; 24 25 import javax.swing.JMenuItem ; 26 27 import org.columba.api.gui.frame.IFrameMediator; 28 import org.columba.calendar.base.api.IActivity; 29 import org.columba.calendar.base.api.ICalendarItem; 30 import org.columba.calendar.command.CalendarCommandReference; 31 import org.columba.calendar.command.CopyEventCommand; 32 import org.columba.calendar.config.Config; 33 import org.columba.calendar.config.api.ICalendarList; 34 import org.columba.calendar.store.CalendarStoreFactory; 35 import org.columba.calendar.store.api.ICalendarStore; 36 import org.columba.calendar.ui.calendar.api.ActivitySelectionChangedEvent; 37 import org.columba.calendar.ui.calendar.api.IActivitySelectionChangedListener; 38 import org.columba.calendar.ui.frame.api.ICalendarMediator; 39 import org.columba.core.command.Command; 40 import org.columba.core.command.CommandProcessor; 41 import org.columba.core.gui.menu.IMenu; 42 43 48 public class CopyActivityMenu extends IMenu implements 49 IActivitySelectionChangedListener { 50 51 54 private static final long serialVersionUID = 7014530206628904351L; 55 56 private Hashtable <String , JMenuItem > table = new Hashtable <String , JMenuItem >(); 57 58 62 public CopyActivityMenu(IFrameMediator controller) { 63 super(controller, "Copy", "CopyActivity"); 64 65 ICalendarList list = Config.getInstance().getCalendarList(); 66 Enumeration <ICalendarItem> e = list.getElements(); 67 while (e.hasMoreElements()) { 68 final ICalendarItem calendarItem = e.nextElement(); 69 JMenuItem item = new JMenuItem (calendarItem.getId()); 70 table.put(calendarItem.getId(), item); 71 72 item.addActionListener(new ActionListener () { 73 public void actionPerformed(ActionEvent e) { 74 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 75 76 IActivity activity = m.getCalendarView() 77 .getSelectedActivity(); 78 79 ICalendarStore store = CalendarStoreFactory.getInstance() 81 .getLocaleStore(); 82 83 Command command = new CopyEventCommand( 84 new CalendarCommandReference(store, calendarItem, 85 activity)); 86 87 CommandProcessor.getInstance().addOp(command); 88 } 89 }); 90 91 add(item); 92 } 93 94 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 95 m.getCalendarView().addSelectionChangedListener(this); 96 } 97 98 101 public void selectionChanged(ActivitySelectionChangedEvent event) { 102 if (event.getSelection().length == 0) 103 setEnabled(false); 104 else { 105 setEnabled(true); 106 107 Enumeration <JMenuItem > e = table.elements(); 109 while (e.hasMoreElements()) { 110 JMenuItem m = e.nextElement(); 111 m.setEnabled(true); 112 } 113 114 IActivity activity = event.getSelection()[0]; 116 String calendarId = activity.getCalendarId(); 118 119 JMenuItem menuItem = table.get(calendarId); 121 menuItem.setEnabled(false); 122 } 123 } 124 } 125 | Popular Tags |