예제 #1
0
 def addRow(self, name):
     """Add row to end"""
     ek = self.ek
     i = ek.length()
     TableModel.addRow(self, i)
     ek.add()
     return
예제 #2
0
파일: Tables.py 프로젝트: shambo001/peat
    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
예제 #3
0
파일: Tables.py 프로젝트: shambo001/peat
 def addRow(self, name):
     """Add row to end"""
     ek=self.ek   
     i = ek.length()
     TableModel.addRow(self, i)
     ek.add()
     return
예제 #4
0
파일: DictEdit.py 프로젝트: shambo001/peat
 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
예제 #5
0
파일: DictEdit.py 프로젝트: tubapala/peat
    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
예제 #6
0
파일: Meta.py 프로젝트: shambo001/peat
    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
예제 #7
0
파일: Meta.py 프로젝트: tubapala/peat
    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
예제 #8
0
 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
예제 #9
0
    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
예제 #10
0
    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
예제 #11
0
파일: Tables.py 프로젝트: shambo001/peat
 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
예제 #12
0
파일: Tables.py 프로젝트: shambo001/peat
 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
예제 #13
0
 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
예제 #14
0
    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
예제 #15
0
 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
예제 #16
0
 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
예제 #17
0
파일: Actions.py 프로젝트: shambo001/peat
 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
예제 #18
0
 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
예제 #19
0
 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