base version
[pystan] / debian / pystan / usr / lib / python2.5 / site-packages / pystan / lib / timetable.py
diff --git a/debian/pystan/usr/lib/python2.5/site-packages/pystan/lib/timetable.py b/debian/pystan/usr/lib/python2.5/site-packages/pystan/lib/timetable.py
new file mode 100644 (file)
index 0000000..73b6f70
--- /dev/null
@@ -0,0 +1,90 @@
+# -*- coding: UTF-8 -*-
+
+import gtk
+import sys
+
+from stan import STAN
+
+class StanTimetable(gtk.VBox):
+
+    def create(self):
+        self.current_timetable = False
+        self.navigation = False
+
+    def set_activated_callback(self, new_callback):
+        self.cell_activated = new_callback
+
+    def cell_activated(self, data):
+        print data
+
+    def __cell_activated(self, timetable_view=None, cell_position=None, column_view=None):
+        if len(cell_position) ==  1:
+            data = self.timetable_struct[ cell_position[0] ][0]
+            self.cell_activated(data)
+
+    def navigation_buttons(self):
+        box = gtk.HBox()
+
+        next = gtk.Button()
+        prev = gtk.Button()
+
+        box.add(prev)
+        box.add(next)
+        return box
+
+    def load(self, lineobj, date, time):
+
+        if (self.current_timetable):
+            self.remove(self.current_timetable)
+
+        self.timetable_struct = STAN().load_timetable(lineobj['id'], date, time)
+
+        self.timetable_navigation = self.timetable_struct['navigation']
+        self.timetable_struct = self.timetable_struct['timetable']
+
+        self.timetable_store = gtk.ListStore(*([str] * len(self.timetable_struct[0])))
+        for line in self.timetable_struct:
+            print line
+
+            self.timetable_store.append( line )
+        self.timetable_view = gtk.TreeView(self.timetable_store)
+
+        self.timetable_view.connect("row-activated", self.__cell_activated)
+
+        #
+
+        column_name = gtk.TreeViewColumn(u"Name")
+        self.timetable_view.append_column(column_name)
+        cell = gtk.CellRendererText()
+        column_name.pack_start(cell, True)
+        column_name.add_attribute(cell, 'text', 0)
+
+        nb_curses_columns = len(self.timetable_struct[0])-1
+        #nb_curses_columns -= 2
+
+        for i in range(nb_curses_columns):
+            column = gtk.TreeViewColumn(None)
+            self.timetable_view.append_column(column)
+            cell = gtk.CellRendererText()
+            cell.set_property('xalign', 0.5)
+            column.pack_start(cell, True)
+            column.add_attribute(cell, 'text', i+1)
+
+        self.timetable_view.set_search_column(0)
+
+        self.current_timetable = gtk.ScrolledWindow()
+
+        self.current_timetable.add(self.timetable_view)
+
+        if self.navigation != False:
+            self.remove(self.navigation)
+        self.navigation = self.navigation_buttons()
+        self.add(self.navigation)
+
+        self.add(self.current_timetable)
+
+        self.show_all()
+
+
+
+        pass