creating wizard view - creating out to table object - src/outtable.py
[findit] / src / outtable.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4
5 import gtk
6
7 class Out_Table_Control(object):
8     def __init__(self, config):
9         win_width = config.get('window_width')
10         win_height = config.get('window_height')
11         self.out_ui = Out_Table_Presentation(win_width, win_height)
12
13     def show(self, filelist):
14         self.out_ui.show_result(filelist)
15
16     def run(self):
17         self.out_ui.run()
18
19
20 class Out_Table_Abstraction(object):
21     pass
22
23
24 class Out_Table_Presentation(gtk.Window):
25     def __init__(self, win_width, win_height):
26         # Список файлов
27         gtk.Window.__init__(self)
28         self.set_default_size(win_width, win_height)
29         self.set_border_width(4)
30         self.connect('delete_event', gtk.main_quit) 
31
32         scrollwind = gtk.ScrolledWindow()
33         scrollwind.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
34
35         # Определяем переменную в которой будет храниться выводимый список
36         self.liststore = gtk.ListStore(str, str, int)
37         self.treeview = gtk.TreeView(self.liststore)
38         # На таблетке не отображаються заголовки столбцов по умолчанию -
39         # след строка заставляет их отображаться принудительно
40         self.treeview.set_headers_visible(1)
41         self.liststore.append(['', '', 0])
42
43         # Создаем и настраиваем колонку с размером файла
44         size_col = gtk.TreeViewColumn( 'Size')
45         cell = gtk.CellRendererText()
46         cell.set_property('width', 90)
47         size_col.pack_start(cell, True)
48         size_col.add_attribute(cell, 'text', 1)
49         self.treeview.append_column(size_col)
50         # Создаем и настраиваем колонку с именем файла
51         path_col = gtk.TreeViewColumn( 'Path')
52         cell2 = gtk.CellRendererText()
53         path_col.pack_start(cell2, True)
54         path_col.add_attribute(cell2, 'text', 0)
55         self.treeview.append_column(path_col)
56
57         # Добавляем сортировку для колонок
58         self.treeview.set_search_column(1)
59         path_col.set_sort_column_id(0)
60         size_col.set_sort_column_id(2)
61
62         scrollwind.add(self.treeview)
63         self.add(scrollwind)
64
65     def show_result(self, filelist):
66         self.liststore.clear()
67         for stroka in filelist:
68             self.liststore.append(stroka)
69
70     def run(self):
71         self.show_all()
72         gtk.main()