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 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 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 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