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