1 # -*- coding: UTF-8 -*-
8 class StanTimetable(gtk.VBox):
11 self.current_timetable = False
12 self.navigation = False
14 def set_activated_callback(self, new_callback):
15 self.cell_activated = new_callback
17 def cell_activated(self, data):
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)
25 def navigation_buttons(self):
35 def load(self, lineobj, date, time):
37 if (self.current_timetable):
38 self.remove(self.current_timetable)
40 self.timetable_struct = STAN().load_timetable(lineobj['id'], date, time)
42 self.timetable_navigation = self.timetable_struct['navigation']
43 self.timetable_struct = self.timetable_struct['timetable']
45 self.timetable_store = gtk.ListStore(*([str] * len(self.timetable_struct[0])))
46 for line in self.timetable_struct:
49 self.timetable_store.append( line )
50 self.timetable_view = gtk.TreeView(self.timetable_store)
52 self.timetable_view.connect("row-activated", self.__cell_activated)
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)
62 nb_curses_columns = len(self.timetable_struct[0])-1
63 #nb_curses_columns -= 2
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)
73 self.timetable_view.set_search_column(0)
75 self.current_timetable = gtk.ScrolledWindow()
77 self.current_timetable.add(self.timetable_view)
79 if self.navigation != False:
80 self.remove(self.navigation)
81 self.navigation = self.navigation_buttons()
82 self.add(self.navigation)
84 self.add(self.current_timetable)