KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > calendar > ui > action > MoveActivityMenu


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.calendar.ui.action;
19
20 import java.awt.event.ActionEvent JavaDoc;
21 import java.awt.event.ActionListener JavaDoc;
22 import java.util.Enumeration JavaDoc;
23 import java.util.Hashtable JavaDoc;
24
25 import javax.swing.JMenuItem JavaDoc;
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 JavaDoc<String JavaDoc, JMenuItem JavaDoc> table = new Hashtable JavaDoc<String JavaDoc, JMenuItem JavaDoc>();
47
48     public MoveActivityMenu(IFrameMediator controller) {
49         super(controller, "Move", "MoveActivity");
50
51         ICalendarList list = Config.getInstance().getCalendarList();
52         Enumeration JavaDoc<ICalendarItem> e = list.getElements();
53         while (e.hasMoreElements()) {
54             final ICalendarItem calendarItem = e.nextElement();
55             JMenuItem JavaDoc item = new JMenuItem JavaDoc(calendarItem.getId());
56             table.put(calendarItem.getId(), item);
57
58             item.addActionListener(new ActionListener JavaDoc() {
59                 public void actionPerformed(ActionEvent JavaDoc e) {
60                     /**
61                      * move activity
62                      */

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             // enable all menuitems
96
Enumeration JavaDoc<JMenuItem JavaDoc> e = table.elements();
97             while (e.hasMoreElements()) {
98                 JMenuItem JavaDoc m = e.nextElement();
99                 m.setEnabled(true);
100             }
101
102             // retrieve selected activity
103
IActivity activity = event.getSelection()[0];
104             // activity belongs to calendar id ?
105
String JavaDoc calendarId = activity.getCalendarId();
106
107             // disable this calendar's id
108
JMenuItem JavaDoc menuItem = table.get(calendarId);
109             menuItem.setEnabled(false);
110         }
111
112     }
113 }
Popular Tags