class TraitListView(KListView): def __init__(self, parent, file_type='template', name='TraitListView'): KListView.__init__(self, parent, name) self.app = get_application_pointer() self.conn = self.app.conn self.file_type = file_type self.scripts = None self.templates = None self.traits = None self.trait = None self.setRootIsDecorated(True) self.addColumn('trait/file') self.addColumn('name') self.addColumn('package') def set_suite(self, suite): self.scripts = TraitScript(self.conn, suite) self.templates = TraitTemplate(self.conn, suite) self.traits = Traits(self.conn, suite) def set_trait(self, trait): self.trait = trait def refreshlistView(self): self.clear() self.setColumnText(1, self.file_type) if self.trait is None: traits = self.traits.list() else: traits = [self.trait] for trait in traits: item = KListViewItem(self, trait) item.trait = trait # expand tree by default item.setOpen(True) if self.file_type == 'template': for row in self.templates.templates(trait): template_item = KListViewItem(item, str(row.templatefile), row.template) template_item.trait = trait template_item.row = row elif self.file_type == 'script': # perhaps we need to make a method to obtain scriptnames # in TraitScript object for row in self.scripts.cmd.select(clause=Eq('trait', trait), order='script'): script_item = KListViewItem(item, str(row.scriptfile), row.script) script_item.trait = trait script_item.row = row else: raise ValueError, "unknown file_type %s" % self.file_type # get template or script contents def getData(self): item = self.currentItem() if self.file_type == 'template': self.templates.set_trait(item.trait) return self.templates.templatedata(item.row.template) elif self.file_type == 'script': self.scripts.set_trait(item.trait) return self.scripts.scriptdata(item.row.script) else: raise ValueError, "unknown file_type %s" % self.file_type # replace template or script contents def updateData(self, data): item = self.currentItem() row = item.row if self.file_type == 'template': self.templates.set_trait(item.trait) self.templates.update_template(row.template, contents=data) elif self.file_type == 'script': self.scripts.set_trait(item.trait) self.scripts.update_scriptdata(row.script, data) else: raise ValueError, "unknown file_type %s" % self.file_type
class TraitList(KListView): def __init__(self, app, parent, ftype='template', name='TraitList'): KListView.__init__(self, parent, name) dbwidget(self, app) self.ftype = ftype self.scripts = None self.templates = None self.traits = None self.trait = None self.setRootIsDecorated(True) self.addColumn('trait/file') self.addColumn('name') self.addColumn('package') def set_suite(self, suite): self.scripts = TraitScript(self.conn, suite) self.templates = TraitTemplate(self.conn, suite) self.traits = Traits(self.conn, suite) def set_trait(self, trait): self.trait = trait def refreshlistView(self): self.clear() if self.ftype == 'template': self.setColumnText(1, 'template') elif self.ftype == 'script': self.setColumnText(1, 'script') if self.trait is None: traits = self.traits.list() else: traits = [self.trait] for trait in traits: item = KListViewItem(self, trait) item.trait = trait if self.ftype == 'template': for row in self.templates.templates(trait): titem = KListViewItem(item, str(row.templatefile), row.template, row.package) titem.trait = trait titem.row = row elif self.ftype == 'script': for row in self.scripts.cmd.select(clause=Eq('trait', trait), order='script'): sitem = KListViewItem(item, str(row.scriptfile), row.script) sitem.trait = trait sitem.row = row def getData(self): item = self.currentItem() if self.ftype == 'template': self.templates.set_trait(item.trait) return self.templates.templatedata(item.row.package, item.row.template) elif self.ftype == 'script': self.scripts.set_trait(item.trait) return self.scripts.scriptdata(item.row.script) def updateData(self, data): item = self.currentItem() row = item.row if self.ftype == 'template': self.templates.set_trait(item.trait) self.templates.update_templatedata(row.package, row.template, data) elif self.ftype == 'script': self.scripts.set_trait(item.trait) self.scripts.update_scriptdata(row.script, data)