[jToolkit-cvs] jToolkit/widgets grid.py,1.12,1.13
Brought to you by:
davidfraser,
friedelwolff
From: <dav...@us...> - 2004-02-10 09:22:16
|
Update of /cvsroot/jtoolkit/jToolkit/widgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28042 Modified Files: grid.py Log Message: Added paging to SimpleGrid. It still defaults to no paging Index: grid.py =================================================================== RCS file: /cvsroot/jtoolkit/jToolkit/widgets/grid.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** grid.py 10 Feb 2004 09:16:45 -0000 1.12 --- grid.py 10 Feb 2004 09:19:03 -0000 1.13 *************** *** 233,237 **** """a grid with common methods for config pages""" def __init__(self, gridtable, columnlist, hrefbase=None, hreftarget='', colordefs={}, colordeps={}, \ ! headingcolumns=(), hidecolumns=(), filter=None, gridcategory=SimpleGridCategory): self.hrefbase = hrefbase self.hreftarget = hreftarget --- 233,237 ---- """a grid with common methods for config pages""" def __init__(self, gridtable, columnlist, hrefbase=None, hreftarget='', colordefs={}, colordeps={}, \ ! headingcolumns=(), hidecolumns=(), filter=None, gridcategory=SimpleGridCategory,newattribs={}): self.hrefbase = hrefbase self.hreftarget = hreftarget *************** *** 245,248 **** --- 245,249 ---- self.gridcategory = gridcategory Grid.__init__(self, self.getcolumns()) + self.overrideattribs(newattribs) self.makegrid() *************** *** 274,278 **** """makes up the grid - retrieves rows, adds them, and adjusts the grid""" self.addtitlerow() - self.tablerows = self.gridtable.gettablerows(self.filter) self.addrows() self.shrinkrange() --- 275,278 ---- *************** *** 284,287 **** --- 284,289 ---- def addrows(self): + self.getrows() + for row in self.tablerows: self.addrow(row) *************** *** 304,307 **** --- 306,336 ---- self.addcell(rownum, category, widgetcell) + def handlepageargs(self): + """handle arguments that select the current page""" + page = self.attribs.get('page', 0) + try: + page = int(page) + except: + if page.lower() == 'all': + page = 0 + else: + page = 1 + self.page = page + self.numrowsinpage = self.attribs.get('numrowsinpage',20) + + def getrows(self): + """retrieves the appropriate rows from the database""" + self.handlepageargs() + if self.page == 0: + minrow, maxrow = None, None + else: + minrow, maxrow = (self.page-1)*self.numrowsinpage, self.page*self.numrowsinpage + if minrow < 0: minrow = 0 + # if maxrow > len(alllogrows): maxrow = len(alllogrows) + if minrow != None and maxrow != None: + self.tablerows = self.gridtable.getsometablerows(minrow,maxrow,self.filter) + else: + self.tablerows = self.gridtable.gettablerows(self.filter) + class NumberGridCategory(SimpleGridCategory): """A grid category that handles numbers""" |