class TableIndexes(gtk.ScrolledWindow): def __init__(self, table): super(TableIndexes, self).__init__() self.table = table self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.tv_indexes_model = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, ) self.tv_indexes = gtk.TreeView() self.tv_indexes.set_rules_hint(True) self.tv_indexes.set_model(self.tv_indexes_model) self.tv_indexes.connect("button-release-event", self.on_button_release) self.pop_up = TableIndexesPopUp() self.pop_up.add.connect('activate', self.on_add_activate) self.pop_up.edit.connect('activate', self.on_edit_activate) self.pop_up.drop.connect('activate', self.on_drop_activate) self.add(self.tv_indexes) def on_add_activate(self, item): if not item: return def on_edit_activate(self, item): if not item: return def on_drop_activate(self, item): if not item: return def refresh(self): for col in self.tv_indexes.get_columns(): self.tv_indexes.remove_column(col) if self.tv_indexes_model: self.tv_indexes_model.clear() self.tv_indexes.append_column(gtk.TreeViewColumn("Name", gtk.CellRendererText(), text=0)) self.tv_indexes.append_column(gtk.TreeViewColumn("Column", gtk.CellRendererText(), text=1)) self.tv_indexes.append_column(gtk.TreeViewColumn("Unique", gtk.CellRendererText(), text=2)) for ix in self.table.indexes: self.tv_indexes_model.append( ( ix.name, ix.column, ix.is_unique, ) ) def on_button_release(self, tv, event): if not tv or not event or not event.button == 3: return False self.pop_up.popup(None, None, None, event.button, event.time, tv)
def __init__(self, table): super(TableIndexes, self).__init__() self.table = table self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.tv_indexes_model = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, ) self.tv_indexes = gtk.TreeView() self.tv_indexes.set_rules_hint(True) self.tv_indexes.set_model(self.tv_indexes_model) self.tv_indexes.connect("button-release-event", self.on_button_release) self.pop_up = TableIndexesPopUp() self.pop_up.add.connect('activate', self.on_add_activate) self.pop_up.edit.connect('activate', self.on_edit_activate) self.pop_up.drop.connect('activate', self.on_drop_activate) self.add(self.tv_indexes)