示例#1
0
class PackagesWindow(DragListWindow):
    def __init__(self, conn, suite, name='PackagesWindow'):
        self.cmd = StatementCursor(conn, name=name)
        table = ujoin(suite, 'packages')
        self.cmd.set_table(table)
        section_query ='select distinct section from %s' % table
        sections = [x.section for x in self.cmd.get(section_query)]
        self.section_combo = MyCombo(sections)
        self.section_combo.set(sections[0])
        rows = self.cmd.select(clause="section = '%s'" % sections[0])
        packer = lambda x : rowpacker('package', x)
        DragListWindow.__init__(self, '%s packages' % suite, packer, rows,
                        TARGETS.get('package', suite), name=name)
        self.vbox.pack_start(self.section_combo,0,0,0)
        self.set_size_request(400, 300)
        self.set_ok(self.set_packages)
        
    def set_packages(self, *args):
        section = self.section_combo.get()
        fields = ['package', 'priority', 'version', 'installedsize',
                  'maintainer', 'size']
        rows = self.cmd.select(fields=fields, clause=Eq('section', section))
        self.set_rows(rows)
        self.set_select_mode('multi')