source: code/Website/python-ofc-library-2/openFlashChart_varieties.py@ 7849

Last change on this file since 7849 was 7849, checked in by dennisw, 15 years ago
File size: 10.3 KB
Line 
1# This program is free software; you can redistribute it and/or modify
2# it under the terms of the GNU General Public License as published by
3# the Free Software Foundation; version 2 of the License.
4#
5# This program is distributed in the hope that it will be useful,
6# but WITHOUT ANY WARRANTY; without even the implied warranty of
7# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8# GNU General Public License for more details.
9#
10# Author: Emanuel Fonseca
11# Email: emdfonseca<at>gmail<dot>com
12# Date: 25 August 2008
13#
14# Author: Eugene Kin Chee Yip
15# Date: 7 Nov 2008
16
17class varieties(dict):
18 def __init__(self, type = None, alpha = None, colour = None, text = None, fontsize = None, values = None):
19 self.set_type(type)
20 self.set_alpha(alpha)
21 self.set_colour(colour)
22 self.set_text(text)
23 self.set_fontsize(fontsize)
24 self.set_values(values)
25
26 def set_type(self, type):
27 if type:
28 self['type'] = type
29
30 def set_alpha(self, alpha):
31 if alpha:
32 self['alpha'] = alpha
33
34 def set_colour(self, colour):
35 if colour:
36 self['colour'] = colour
37
38 def set_gradient_fill(self, gradient_fill):
39 self['gradient-fill'] = gradient_fill
40
41
42 def set_halo_size(self, size):
43 self['halo-size'] = size
44
45 def set_width(self, width):
46 self['width'] = width
47
48 def set_dot_size(self, size):
49 self['dot-size'] = size
50
51
52
53 def set_text(self, text):
54 if text:
55 self['text'] = text
56
57 def set_fontsize(self, fontsize):
58 if fontsize:
59 self['font-size'] = fontsize
60
61 def set_values(self, values):
62 if values:
63 self['values'] = values
64
65 def append_keys(self, colour = None, text = None, fontsize = None):
66 try:
67 self['keys'].append(bar_stack_key(colour, text, fontsize))
68 except:
69 self['keys'] = [bar_stack_key(colour, text, fontsize)]
70
71
72 def append_values(self, values):
73 try:
74 self['values'].append(values)
75 except:
76 self['values'] = [values]
77
78 def append_stack(self, values):
79 self.append_values(values)
80
81
82
83 def set_line_style(self, on, off):
84 self['line-style'] = line_style(on, off)
85
86 def set_tooltip(self, text):
87 self['tip'] = text
88
89 def set_no_labels(self, no_labels):
90 self['no-labels'] = no_labels
91
92 def set_loop(self):
93 self['loop'] = True
94
95 def set_on_click(self, javascript_call):
96 self['on-click'] = javascript_call
97
98
99
100
101##########################################
102# key class for bar stack
103class bar_stack_key(dict):
104 def __init__(self, colour = None, text = None, fontsize = None):
105 self.set_colour(colour)
106 self.set_text(text)
107 self.set_fontsize(fontsize)
108
109 def set_colour(self, colour):
110 if colour:
111 self['colour'] = colour
112
113 def set_text(self, text):
114 if text:
115 self['text'] = text
116
117 def set_fontsize(self, fontsize):
118 if fontsize:
119 self['font-size'] = fontsize
120
121
122##########################################
123# value class for custom data points
124class value(dict):
125 def __init__(self, val = None, colour = None, tooltip = None):
126 self.set_val(val)
127 self.set_colour(colour)
128 self.set_tooltip(tooltip)
129
130 def set_val(self, val):
131 if val:
132 self['value'] = val
133
134 def set_colour(self, colour):
135 if colour:
136 self['colour'] = colour
137
138 def set_tooltip(self, tooltip):
139 if tooltip:
140 self['tip'] = tooltip
141
142class dot_value(value):
143 pass
144
145class bar_value(value):
146 def __init__(self, (top, bottom), colour = None, tooltip = None):
147 value.__init__(self, colour = colour, tooltip = tooltip)
148 self.set_top_value(top)
149 self.set_bottom_value(bottom)
150
151 def set_top_value(self, top):
152 self['top'] = top
153
154 def set_bottom_value(self, bottom):
155 self['bottom'] = bottom
156
157class bar_3d_value(bar_value):
158 def __init__(self, top, colour = None, tooltip = None):
159 value.__init__(self, colour = colour, tooltip = tooltip)
160 self.set_top_value(top)
161
162 def set_top_value(self, top):
163 self['top'] = top
164
165
166class bar_glass_value(bar_3d_value):
167 pass
168
169class bar_sketch_value(bar_3d_value):
170 pass
171
172class hbar_value(value):
173 def __init__(self, (left, right), colour = None, tooltip = None):
174 value.__init__(self, colour = colour, tooltip = tooltip)
175 self.set_left_value(left)
176 self.set_right_value(right)
177
178 def set_left_value(self, left):
179 self['left'] = left
180
181 def set_right_value(self, right):
182 self['right'] = right
183
184class bar_stack_value(value):
185 def __init__(self, val, colour = None, tooltip = None):
186 value.__init__(self, colour = colour, tooltip = tooltip)
187 self.set_value(val)
188
189 def set_value(self, val):
190 if val:
191 self['val'] = val
192
193class pie_value(value):
194 def __init__(self, val, label = None, colour = None, tooltip = None):
195 value.__init__(self, val, colour, tooltip)
196 self.set_label(label)
197
198 def set_label(self, (label, colour, fontsize)):
199 if label:
200 self['label'] = label
201 if colour:
202 self['label-colour'] = colour
203 if fontsize:
204 self['font-size'] = fontsize
205
206
207
208class scatter_value(value):
209 def __init__(self, (x, y), colour = None, tooltip = None):
210 value.__init__(self, colour = colour, tooltip = tooltip)
211 self.set_x_value(x)
212 self.set_y_value(y)
213
214 def set_x_value(self, x):
215 self['x'] = x
216
217 def set_y_value(self, y):
218 self['y'] = y
219
220
221##########################################
222# line style class for charts with lines
223class line_style(dict):
224 def __init__(self, on = None, off = None, style = 'dash'):
225 self.set_style(style)
226 self.set_on(on)
227 self.set_off(off)
228
229 def set_style(self, style):
230 self['style'] = style
231
232 def set_on(self, on):
233 if on:
234 self['on'] = on
235
236 def set_off(self, off):
237 if off:
238 self['off'] = off
239
240##########################################
241# label classes
242class x_axis_labels(dict):
243 def __init__(self, labels = None, steps = None, colour = None, size = None, rotate = None):
244 self.set_labels(labels)
245 self.set_steps(steps)
246 self.set_colour(colour)
247 self.set_size(size)
248 self.set_rotate(rotate)
249
250 def set_labels(self, labels):
251 if labels:
252 self['labels'] = labels
253
254 def set_steps(self, steps):
255 if steps:
256 self['steps'] = steps
257
258 def set_colour(self, colour):
259 if colour:
260 self['colour'] = colour
261
262 def set_size(self, size):
263 if size:
264 self['size'] = size
265
266 def set_rotate(self, rotate):
267 if rotate:
268 self['rotate'] = rotate
269
270class x_axis_label(dict):
271 def __init__(self, text = None, colour = None, size = None, rotate = None):
272 self.set_text(text)
273 self.set_colour(colour)
274 self.set_size(size)
275 self.set_rotate(rotate)
276
277 def set_text(self, text):
278 if text:
279 self['text'] = text
280
281 def set_colour(self, colour):
282 if colour:
283 self['colour'] = colour
284
285 def set_size(self, size):
286 if size:
287 self['size'] = size
288
289 def set_rotate(self, rotate):
290 if rotate:
291 self['rotate'] = rotate
292
293
294
295
296##########################################
297# Chart classes
298
299# Line Charts
300class Line(varieties):
301 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
302 varieties.__init__(self, 'line', alpha, colour, text, fontsize, values)
303
304class Line_Dot(varieties):
305 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
306 varieties.__init__(self, 'line_dot', alpha, colour, text, fontsize, values)
307
308class Line_Hollow(varieties):
309 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
310 varieties.__init__(self, 'line_hollow', alpha, colour, text, fontsize, values)
311
312
313
314# Bar Charts
315class Bar(varieties):
316 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
317 varieties.__init__(self, 'bar', alpha, colour, text, fontsize, values)
318
319class Bar_Filled(varieties):
320 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, outline = None):
321 varieties.__init__(self, 'bar_filled', alpha, colour, text, fontsize, values)
322 if outline:
323 self['outline-colour'] = outline
324
325class Bar_Glass(varieties):
326 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
327 varieties.__init__(self, 'bar_glass', alpha, colour, text, fontsize, values)
328
329class Bar_3d(varieties):
330 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
331 varieties.__init__(self, 'bar_3d', alpha, colour, text, fontsize, values)
332
333class Bar_Sketch(varieties):
334 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, outline = None):
335 varieties.__init__(self, 'bar_sketch', alpha, colour, text, fontsize, values)
336 if outline:
337 self['outline-colour'] = outline
338
339class HBar(varieties):
340 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None):
341 varieties.__init__(self, 'hbar', alpha, colour, text, fontsize, values)
342
343
344class Bar_Stack(varieties):
345 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
346 varieties.__init__(self, 'bar_stack', alpha, colour, text, fontsize, values)
347 if colours:
348 self['colours'] = colours
349
350# Area Charts
351class Area_Line(varieties):
352 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, fill = None, fill_alpha = None):
353 varieties.__init__(self, 'area_line', alpha, colour, text, fontsize, values)
354 if fill_alpha:
355 self['fill-alpha'] = fill_alpha
356 if fill:
357 self['fill'] = fill
358
359class Area_Hollow(varieties):
360 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, fill = None, fill_alpha = None):
361 varieties.__init__(self, 'area_hollow', alpha, colour, text, fontsize, values)
362 if fill_alpha:
363 self['fill-alpha'] = fill_alpha
364 if fill:
365 self['fill'] = fill
366
367# Pie Chart
368class Pie(varieties):
369 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, start_angle = None, animate = None, colours = None, label_colour = None):
370 varieties.__init__(self, 'pie', alpha, colour, text, fontsize, values)
371 if start_angle:
372 self['start-angle'] = start_angle
373 if animate:
374 self['animate'] = animate
375 if colours:
376 self['colours'] = colours
377 if label_colour:
378 self['label-colour'] = label_colour
379
380# Scatter Charts
381class Scatter(varieties):
382 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
383 varieties.__init__(self, 'scatter', alpha, colour, text, fontsize, values)
384
385class Scatter_Line(varieties):
386 def __init__(self, alpha = None, colour = None, text = None, fontsize = None, values = None, colours = None):
387 varieties.__init__(self, 'scatter_line', alpha, colour, text, fontsize, values)
388
389
390
391
Note: See TracBrowser for help on using the repository browser.