1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.schedule;
20
21 import java.io.Serializable;
22 import java.util.Date;
23 import java.util.Iterator;
24
25 import javax.faces.event.FacesEvent;
26 import javax.faces.event.FacesListener;
27
28 import org.apache.myfaces.custom.schedule.model.Interval;
29 import org.apache.myfaces.custom.schedule.model.ScheduleDay;
30
31
32
33
34
35
36
37
38 public class ScheduleMouseEvent extends FacesEvent implements Serializable
39 {
40 public static final int SCHEDULE_NOTHING_CLICKED = 0;
41 public static final int SCHEDULE_BODY_CLICKED = 1;
42 public static final int SCHEDULE_HEADER_CLICKED = 2;
43 public static final int SCHEDULE_ENTRY_CLICKED = 3;
44
45 private static final long serialVersionUID = -2810582008938303475L;
46
47 private final int eventType;
48
49 public ScheduleMouseEvent(final HtmlSchedule source, final int eventType)
50 {
51 super(source);
52
53
54 this.eventType = eventType;
55 }
56
57 public Date getClickedDate()
58 {
59 return getSchedule().getLastClickedDateAndTime();
60 }
61
62 public Date getClickedTime()
63 {
64 return getSchedule().getLastClickedDateAndTime();
65 }
66
67 public Interval getClickedInterval()
68 {
69 Date clickedDate = getClickedDate();
70
71 for (Iterator intervalIt = getSchedule().getModel().iterator(); intervalIt.hasNext(); ) {
72 ScheduleDay day = (ScheduleDay) intervalIt.next();
73
74 if (day.equalsDate(clickedDate))
75 {
76 return day.getInterval(clickedDate);
77 }
78 }
79
80 return null;
81 }
82
83 public int getEventType()
84 {
85 return eventType;
86 }
87
88
89
90
91 public HtmlSchedule getSchedule()
92 {
93 return (HtmlSchedule) getSource();
94 }
95
96
97
98
99 public boolean isAppropriateListener(FacesListener listener)
100 {
101 return (listener instanceof ScheduleMouseListener);
102 }
103
104
105
106
107 public void processListener(FacesListener listener)
108 {
109 if (listener instanceof ScheduleMouseListener)
110 {
111 ScheduleMouseListener mouseListener = (ScheduleMouseListener) listener;
112 mouseListener.processMouseEvent(this);
113 }
114 }
115
116 }