[jToolkit-cvs] jToolkit/widgets chart.py,1.5,1.6
Brought to you by:
davidfraser,
friedelwolff
From: <dav...@us...> - 2004-02-10 08:28:09
|
Update of /cvsroot/jtoolkit/jToolkit/widgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17992 Modified Files: chart.py Log Message: Factored LineChart out from Chart so we can easily create different chart types Index: chart.py =================================================================== RCS file: /cvsroot/jtoolkit/jToolkit/widgets/chart.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** chart.py 10 Feb 2004 08:24:30 -0000 1.5 --- chart.py 10 Feb 2004 08:24:56 -0000 1.6 *************** *** 14,20 **** # This class is just a container for option values. ! class SimpleChart(widgets.PlainContents): def __init__(self, charttable, xcolumn, ycolumns, xstorageformat='TEXT', xdisplay='', filter=None): self.charttable = charttable self.xcolumn = xcolumn self.ycolumns = ycolumns --- 14,21 ---- # This class is just a container for option values. ! class Chart(widgets.PlainContents): def __init__(self, charttable, xcolumn, ycolumns, xstorageformat='TEXT', xdisplay='', filter=None): self.charttable = charttable + self.chartType = gdchart.GDC_LINE self.xcolumn = xcolumn self.ycolumns = ycolumns *************** *** 31,40 **** def getdata(self): ! chartdata = self.charttable.gettablerows(self.filter) ! if self.xstorageformat == 'DATETIME': ! self.xdata = [dates.formatdate(row[self.xcolumn],self.xdisplay) for row in chartdata] ! else: ! self.xdata = [str(row[self.xcolumn]) for row in chartdata] ! self.ydata = [[row[ycolumn] for row in chartdata] for ycolumn in self.ycolumns] def option(self, **args): --- 32,38 ---- def getdata(self): ! """Subclasses of this should implement this uniquely""" ! self.xdata = [] ! self.ydata = [] def option(self, **args): *************** *** 50,54 **** self.draw() tempfile = cStringIO.StringIO() ! gdchart.chart(gdchart.GDC_LINE, self.chartSize, tempfile, self.xdata, *self.ydata) return tempfile.getvalue() --- 48,64 ---- self.draw() tempfile = cStringIO.StringIO() ! gdchart.chart(self.chartType, self.chartSize, tempfile, self.xdata, *self.ydata) return tempfile.getvalue() + class LineChart(Chart): + def __init__(self, charttable, xcolumn, ycolumns, xstorageformat='TEXT', xdisplay='', filter=None): + Chart.__init__(self, charttable, xcolumn, ycolumns, xstorageformat, xdisplay, filter) + + def getdata(self): + chartdata = self.charttable.gettablerows(self.filter) + if self.xstorageformat == 'DATETIME': + self.xdata = [dates.formatdate(row[self.xcolumn],self.xdisplay) for row in chartdata] + else: + self.xdata = [str(row[self.xcolumn]) for row in chartdata] + self.ydata = [[row[ycolumn] for row in chartdata] for ycolumn in self.ycolumns] + |