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.MoveEventCommand; 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 public class MoveActivityMenu extends IMenu implements 44 IActivitySelectionChangedListener { 45 46 private Hashtable <String , JMenuItem > table = new Hashtable <String , JMenuItem >(); 47 48 public MoveActivityMenu(IFrameMediator controller) { 49 super(controller, "Move", "MoveActivity"); 50 51 ICalendarList list = Config.getInstance().getCalendarList(); 52 Enumeration <ICalendarItem> e = list.getElements(); 53 while (e.hasMoreElements()) { 54 final ICalendarItem calendarItem = e.nextElement(); 55 JMenuItem item = new JMenuItem (calendarItem.getId()); 56 table.put(calendarItem.getId(), item); 57 58 item.addActionListener(new ActionListener () { 59 public void actionPerformed(ActionEvent e) { 60 63 64 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 65 66 IActivity activity = m.getCalendarView() 67 .getSelectedActivity(); 68 69 ICalendarStore store = CalendarStoreFactory.getInstance() 70 .getLocaleStore(); 71 72 Command command = new MoveEventCommand( 73 new CalendarCommandReference(store, calendarItem, 74 activity)); 75 76 CommandProcessor.getInstance().addOp(command); 77 78 } 79 }); 80 81 add(item); 82 } 83 84 ICalendarMediator m = (ICalendarMediator) getFrameMediator(); 85 m.getCalendarView().addSelectionChangedListener(this); 86 } 87 88 public void selectionChanged(ActivitySelectionChangedEvent event) { 89 if (event.getSelection().length == 0) 90 setEnabled(false); 91 else { 92 93 setEnabled(true); 94 95 Enumeration <JMenuItem > e = table.elements(); 97 while (e.hasMoreElements()) { 98 JMenuItem m = e.nextElement(); 99 m.setEnabled(true); 100 } 101 102 IActivity activity = event.getSelection()[0]; 104 String calendarId = activity.getCalendarId(); 106 107 JMenuItem menuItem = table.get(calendarId); 109 menuItem.setEnabled(false); 110 } 111 112 } 113 } | Popular Tags |