base version
[pystan] / debian / pystan / usr / lib / python2.5 / site-packages / pystan / lib / timetable.py
1 # -*- coding: UTF-8 -*-
2
3 import gtk
4 import sys
5
6 from stan import STAN
7
8 class StanTimetable(gtk.VBox):
9
10     def create(self):
11         self.current_timetable = False
12         self.navigation = False
13
14     def set_activated_callback(self, new_callback):
15         self.cell_activated = new_callback
16
17     def cell_activated(self, data):
18         print data
19
20     def __cell_activated(self, timetable_view=None, cell_position=None, column_view=None):
21         if len(cell_position) ==  1:
22             data = self.timetable_struct[ cell_position[0] ][0]
23             self.cell_activated(data)
24
25     def navigation_buttons(self):
26         box = gtk.HBox()
27
28         next = gtk.Button()
29         prev = gtk.Button()
30
31         box.add(prev)
32         box.add(next)
33         return box
34
35     def load(self, lineobj, date, time):
36
37         if (self.current_timetable):
38             self.remove(self.current_timetable)
39
40         self.timetable_struct = STAN().load_timetable(lineobj['id'], date, time)
41
42         self.timetable_navigation = self.timetable_struct['navigation']
43         self.timetable_struct = self.timetable_struct['timetable']
44
45         self.timetable_store = gtk.ListStore(*([str] * len(self.timetable_struct[0])))
46         for line in self.timetable_struct:
47             print line
48
49             self.timetable_store.append( line )
50         self.timetable_view = gtk.TreeView(self.timetable_store)
51
52         self.timetable_view.connect("row-activated", self.__cell_activated)
53
54         #
55
56         column_name = gtk.TreeViewColumn(u"Name")
57         self.timetable_view.append_column(column_name)
58         cell = gtk.CellRendererText()
59         column_name.pack_start(cell, True)
60         column_name.add_attribute(cell, 'text', 0)
61
62         nb_curses_columns = len(self.timetable_struct[0])-1
63         #nb_curses_columns -= 2
64
65         for i in range(nb_curses_columns):
66             column = gtk.TreeViewColumn(None)
67             self.timetable_view.append_column(column)
68             cell = gtk.CellRendererText()
69             cell.set_property('xalign', 0.5)
70             column.pack_start(cell, True)
71             column.add_attribute(cell, 'text', i+1)
72
73         self.timetable_view.set_search_column(0)
74
75         self.current_timetable = gtk.ScrolledWindow()
76
77         self.current_timetable.add(self.timetable_view)
78
79         if self.navigation != False:
80             self.remove(self.navigation)
81         self.navigation = self.navigation_buttons()
82         self.add(self.navigation)
83
84         self.add(self.current_timetable)
85
86         self.show_all()
87
88
89
90         pass