1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from timelinelib.db.objects.timeperiod import TimePeriod
20
21
23
24 - def __init__(self, time_type, start_time, end_time, text, category=None,
25 fuzzy=False, locked=False, ends_today=False):
26 self.time_type = time_type
27 self.fuzzy = fuzzy
28 self.locked = locked
29 self.ends_today = ends_today
30 self.id = None
31 self.selected = False
32 self.draw_ballon = False
33 self.update(start_time, end_time, text, category)
34 self.data = {}
35
37 return self.id is not None
38
41
42 - def update(self, start_time, end_time, text, category=None, fuzzy=None,
43 locked=None, ends_today=None):
44 """Change the event data."""
45 self.time_period = TimePeriod(self.time_type, start_time, end_time)
46 self.text = text
47 self.category = category
48 if ends_today is not None:
49 if not self.locked:
50 self.ends_today = ends_today
51 if fuzzy is not None:
52 self.fuzzy = fuzzy
53 if locked is not None:
54 self.locked = locked
55
57 """Change the event period."""
58 self.time_period = TimePeriod(self.time_type, start_time, end_time)
59
61 self.update_period(new_period.start_time, new_period.end_time)
62
64 """Change the event data."""
65 if start_time <= self.time_period.end_time:
66 self.time_period = TimePeriod(
67 self.time_type, start_time, self.time_period.end_time)
68 return True
69 return False
70
72 """Change the event data."""
73 if end_time >= self.time_period.start_time:
74 self.time_period = TimePeriod(
75 self.time_type, self.time_period.start_time, end_time)
76 return True
77 return False
78
80 """Wrapper for time period method."""
81 return self.time_period.overlap(time_period)
82
84 """Wrapper for time period method."""
85 return self.time_period.is_period()
86
88 """Wrapper for time period method."""
89 return self.time_period.mean_time()
90
92 """
93 Return data with the given id or None if no data with that id exists.
94
95 See set_data for information how ids map to data.
96 """
97 return self.data.get(id, None)
98
100 """
101 Set data with the given id.
102
103 Here is how ids map to data:
104
105 description - string
106 icon - wx.Bitmap
107 """
108 self.data[id] = data
109
111 """Return True if the event has associated data, or False if not."""
112 for id in self.data:
113 if self.data[id] != None:
114 return True
115 return False
116
118 """Returns a unicode label describing the event."""
119 return u"%s (%s)" % (self.text, self.time_period.get_label())
120
122
123 new_event = Event(self.time_type, self.time_period.start_time,
124 self.time_period.end_time, self.text, self.category)
125
126 new_event.set_data("description", self.get_data("description") )
127
128
129 new_event.set_data("icon", self.get_data("icon"))
130 new_event.set_data("hyperlink", self.get_data("hyperlink"))
131 return new_event
132
135
138
140 return self.time_period.end_time - self.time_period.start_time
141