def addRow(self, name): """Add row to end""" ek = self.ek i = ek.length() TableModel.addRow(self, i) ek.add() return
def __init__(self, dataset=None, fitmodel=None): """create a model dict from ekin dataset and allow simple add/remove rows""" ek = self.ek = dataset modeldata = self.createData(ek) TableModel.__init__(self, modeldata) return
def addRow(self, name): """Add row to end""" ek=self.ek i = ek.length() TableModel.addRow(self, i) ek.add() return
def __init__(self, dictdata=None): self.dict = dictdata TableModel.__init__(self) if dictdata == None: return for key in dictdata: #assumes D is dict with some text fields D = dictdata[key] if D.has_key('name'): del D['name'] self.addRecord(name=key, **D) return
def viewAll(self, parent=None): """Display all meta data in a table""" from PEATDB.Tables import TableCanvas from PEATDB.TableModels import TableModel tp = Toplevel(master=parent) tframe = Frame(tp) tframe.pack() m = TableModel() m.importDict(self.data) table = TableCanvas(tframe, model=m) table.createTableFrame() return
def updateJobsTable(self): """Show table for current jobs list""" self.checkJobsDict() jobdict = self.DB.meta.peatsa_jobs M = TableModel() #open job log from file f=open('jobstates.log','r') jl = pickle.load(f) for j in jobdict: jobid = jobdict[j] try: M.addRecord(j,state=jl[jobid]['State'],date=jl[jobid]['Date']) except: M.addRecord(j,state='Not in DB') self.jobstable = TableCanvas(self.tf, model=M, height=100, editable=False) self.jobstable.createTableFrame() self.log.yview('moveto', 1) f.close() return
def matrix2Table(self, matrix): """Creates a table model from a peatsa matrix""" M = TableModel() M.addColumn('Mutations') fields = matrix.columnHeaders() for f in fields: M.addColumn(f) i = matrix.indexOfColumnWithHeader('Mutations') for row in matrix: mutationSet = Core.Data.MutationSet(row[i]) code = '+'.join(mutationSet.mutationCodes(reduced=True)) M.addRow(code) for f in fields: j = matrix.indexOfColumnWithHeader(f) if f == 'Mutations': M.data[code]['Mutations'] = code else: M.data[code][f] = str(row[j]) return M
def setValueAt(self, value, rowIndex, columnIndex): """Overridden for ekin updates""" TableModel.setValueAt(self, value, rowIndex, columnIndex) ek = self.ek i = self.reclist[rowIndex] col = columnIndex if value == '': value = None else: value = float(value) if col == 0: ek.x[i] = value elif col == 1: ek.y[i] = value else: ek.errors[col - 2][i] = value if hasattr(self, 'callback'): self.callback() return
def setValueAt(self, value, rowIndex, columnIndex): """Overridden for ekin updates""" TableModel.setValueAt(self,value,rowIndex,columnIndex) ek = self.ek i = self.reclist[rowIndex] col=columnIndex if value=='': value=None else: value=float(value) if col==0: ek.x[i]=value elif col==1: ek.y[i]=value else: ek.errors[col-2][i] = value if hasattr(self, 'callback'): self.callback() return
def __init__(self, E): self.E = E TableModel.__init__(self) self.addColumn('name'); self.addColumn('model') for d in E.datasets: fdata = E.getFitData(d) M = E.getMetaData(d) if E.currentmode == 'NMR titration': try: edata = E.getDataset(d) M['residue'] = edata['residue'] M['resnum'] = edata['res_num'] M['atom'] = edata['atom_type'] except: pass if fdata != {} and fdata!= None: model = fdata['model'] else: model='' self.checkDict(M) self.addRecord(name=d, **M) return
def __init__(self, E): self.E = E TableModel.__init__(self) self.addColumn('name') self.addColumn('model') for d in E.datasets: fdata = E.getFitData(d) M = E.getMetaData(d) if E.currentmode == 'NMR titration': try: edata = E.getDataset(d) M['residue'] = edata['residue'] M['resnum'] = edata['res_num'] M['atom'] = edata['atom_type'] except: pass if fdata != {} and fdata != None: model = fdata['model'] else: model = '' self.checkDict(M) self.addRecord(name=d, **M) return
def sendDB2Labbook(self, DB, recs=None, cols=None, name='main'): """Send copy of selected DB cols to a labbook table convenience method to allow quick duplication of main DB data""" from PEATDB.TableModels import TableModel if cols == None: cols = DB.meta.userfields.keys() if recs == None: recs = DB.getRecs() cols.append('name') M = TableModel() #M.addColumn('name') for rec in recs: M.addRow(rec) for c in cols: M.addColumn(c) if DB[rec].has_key(c): M.data[rec][c] = DB[rec][c] DB.createLabbookSheet(name, M) return M
def updateColsMenu(self, evt=None): """create drop menus of available cols in chosen sheet""" sheet = self.smenu.getcurselection() S = self.DB.meta.labbook[sheet] model = TableModel(S) names = model.columnNames if hasattr(self, 'xcolsmenu'): self.xcolsmenu.destroy() self.ycolsmenu.destroy() self.filterbymenu.destroy() self.filtervalentry.destroy() self.bf.destroy() self.xcolsmenu = Pmw.OptionMenu(self.mainwin, labelpos='w', label_text='X-Col:', items=names, menubutton_width=10) self.xcolsmenu.pack(side=TOP, fill=BOTH) self.ycolsmenu = Pmw.OptionMenu(self.mainwin, labelpos='w', label_text='Y-Col:', items=names, menubutton_width=10) self.ycolsmenu.pack(side=TOP, fill=BOTH) self.bf = Frame(self.mainwin) self.bf.pack(side=TOP, fill=BOTH) names.extend('-') self.filterbymenu = Pmw.OptionMenu(self.bf, labelpos='w', label_text='Filter by:', items=names, initialitem='-', menubutton_width=5) self.filterbymenu.pack(side=LEFT, fill=BOTH) self.filtervalentry = Pmw.EntryField(self.bf, labelpos='w', label_text='Value:') self.filtervalentry.pack(side=LEFT, fill=BOTH) return
def updateJobsTable(self): """Show table for current jobs list""" self.checkJobsDict() jobdict = self.DB.meta.peatsa_jobs M = TableModel() #open job log from file f = open('jobstates.log', 'r') jl = pickle.load(f) for j in jobdict: jobid = jobdict[j] try: M.addRecord(j, state=jl[jobid]['State'], date=jl[jobid]['Date']) except: M.addRecord(j, state='Not in DB') self.jobstable = TableCanvas(self.tf, model=M, height=100, editable=False) self.jobstable.createTableFrame() self.log.yview('moveto', 1) f.close() return