1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.plugin.charts

File ChartCustomizer.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart0.png
83% of files have more coverage

Code metrics

236
248
14
1
588
475
135
0.54
17.71
14
9.64

Classes

Class Line # Actions
ChartCustomizer 45 248 0% 135 498
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package com.xpn.xwiki.plugin.charts;
21   
22    import java.awt.Color;
23    import java.awt.Font;
24    import java.awt.Shape;
25    import java.awt.Stroke;
26    import java.util.List;
27   
28    import org.jfree.chart.JFreeChart;
29    import org.jfree.chart.axis.Axis;
30    import org.jfree.chart.axis.CategoryAxis;
31    import org.jfree.chart.axis.DateAxis;
32    import org.jfree.chart.axis.NumberAxis;
33    import org.jfree.chart.axis.ValueAxis;
34    import org.jfree.chart.plot.PiePlot;
35    import org.jfree.chart.plot.Plot;
36    import org.jfree.chart.plot.XYPlot;
37    import org.jfree.chart.renderer.AbstractRenderer;
38    import org.jfree.chart.renderer.category.CategoryItemRenderer;
39    import org.jfree.chart.renderer.xy.XYItemRenderer;
40    import org.jfree.chart.title.LegendTitle;
41    import org.jfree.chart.title.TextTitle;
42   
43    import com.xpn.xwiki.plugin.charts.params.ChartParams;
44   
 
45    public class ChartCustomizer
46    {
 
47  0 toggle public static void customizeRenderer(AbstractRenderer renderer, ChartParams params)
48    {
49  0 if (params.get(ChartParams.RENDERER_COLOR) != null) {
50  0 renderer.setPaint(params.getColor(ChartParams.RENDERER_COLOR));
51    }
52  0 if (params.get(ChartParams.RENDERER_STROKE) != null) {
53  0 renderer.setStroke(params.getStroke(ChartParams.RENDERER_STROKE));
54    }
55  0 if (params.get(ChartParams.RENDERER_SHAPE) != null) {
56  0 renderer.setShape(params.getShape(ChartParams.RENDERER_SHAPE));
57    }
58  0 if (params.get(ChartParams.RENDERER_FILL_COLOR) != null) {
59  0 renderer.setFillPaint(params.getColor(ChartParams.RENDERER_FILL_COLOR));
60    }
61  0 if (params.get(ChartParams.RENDERER_OUTLINE_COLOR) != null) {
62  0 renderer.setOutlinePaint(params.getColor(ChartParams.RENDERER_OUTLINE_COLOR));
63    }
64  0 if (params.get(ChartParams.RENDERER_OUTLINE_STROKE) != null) {
65  0 renderer.setOutlineStroke(params.getStroke(ChartParams.RENDERER_OUTLINE_STROKE));
66    }
67  0 if (params.get(ChartParams.RENDERER_ITEM_LABEL_VISIBLE) != null) {
68  0 if (params.getBoolean(ChartParams.RENDERER_ITEM_LABEL_VISIBLE).booleanValue()) {
69  0 renderer.setItemLabelsVisible(true);
70  0 if (params.get(ChartParams.RENDERER_ITEM_LABEL_COLOR) != null) {
71  0 renderer.setItemLabelPaint(params.getColor(ChartParams.RENDERER_ITEM_LABEL_COLOR));
72    }
73  0 if (params.get(ChartParams.RENDERER_ITEM_LABEL_FONT) != null) {
74  0 renderer.setItemLabelFont(params.getFont(ChartParams.RENDERER_ITEM_LABEL_FONT));
75    }
76    } else {
77  0 renderer.setItemLabelsVisible(false);
78    }
79    }
80  0 if (params.get(ChartParams.RENDERER_SERIES_VISIBLE) != null) {
81  0 renderer.setSeriesVisible(params.getBoolean(ChartParams.RENDERER_SERIES_VISIBLE));
82    }
83  0 if (params.get(ChartParams.RENDERER_SERIES_VISIBLE_IN_LEGEND) != null) {
84  0 renderer.setSeriesVisibleInLegend(params.getBoolean(ChartParams.RENDERER_SERIES_VISIBLE_IN_LEGEND));
85    }
86   
87    // series
88  0 if (params.get(ChartParams.RENDERER_SERIES_COLORS) != null) {
89  0 List list = params.getList(ChartParams.RENDERER_SERIES_COLORS);
90  0 for (int i = 0; i < list.size(); i++) {
91  0 renderer.setSeriesPaint(i, (Color) list.get(i));
92    }
93    // TODO: how the f*** do we get rid of the default values -- we don't! :(
94    // for (int i = list.size(); renderer.getSeriesPaint(i) != null; i++) {
95    // renderer.setSeriesPaint(i, null);
96    // }
97    }
98   
99  0 if (params.get(ChartParams.RENDERER_SERIES_STROKES) != null) {
100  0 List list = params.getList(ChartParams.RENDERER_SERIES_STROKES);
101  0 for (int i = 0; i < list.size(); i++) {
102  0 renderer.setSeriesStroke(i, (Stroke) list.get(i));
103    }
104    }
105   
106  0 if (params.get(ChartParams.RENDERER_SERIES_SHAPES) != null) {
107  0 List list = params.getList(ChartParams.RENDERER_SERIES_SHAPES);
108  0 for (int i = 0; i < list.size(); i++) {
109  0 renderer.setSeriesShape(i, (Shape) list.get(i));
110    }
111    }
112   
113  0 if (params.get(ChartParams.RENDERER_SERIES_FILL_COLORS) != null) {
114  0 List list = params.getList(ChartParams.RENDERER_SERIES_FILL_COLORS);
115  0 for (int i = 0; i < list.size(); i++) {
116  0 renderer.setSeriesFillPaint(i, (Color) list.get(i));
117    }
118    }
119   
120  0 if (params.get(ChartParams.RENDERER_SERIES_OUTLINE_COLORS) != null) {
121  0 List list = params.getList(ChartParams.RENDERER_SERIES_OUTLINE_COLORS);
122  0 for (int i = 0; i < list.size(); i++) {
123  0 renderer.setSeriesOutlinePaint(i, (Color) list.get(i));
124    }
125    }
126   
127  0 if (params.get(ChartParams.RENDERER_SERIES_OUTLINE_STROKES) != null) {
128  0 List list = params.getList(ChartParams.RENDERER_SERIES_OUTLINE_STROKES);
129  0 for (int i = 0; i < list.size(); i++) {
130  0 renderer.setSeriesOutlineStroke(i, (Stroke) list.get(i));
131    }
132    }
133   
134  0 if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_VISIBLES) != null) {
135  0 List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_VISIBLES);
136  0 for (int i = 0; i < list.size(); i++) {
137  0 renderer.setSeriesItemLabelsVisible(i, (Boolean) list.get(i));
138    }
139    }
140   
141  0 if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_COLORS) != null) {
142  0 List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_COLORS);
143  0 for (int i = 0; i < list.size(); i++) {
144  0 renderer.setSeriesItemLabelPaint(i, (Color) list.get(i));
145    }
146    }
147   
148  0 if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_FONTS) != null) {
149  0 List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_FONTS);
150  0 for (int i = 0; i < list.size(); i++) {
151  0 renderer.setSeriesItemLabelFont(i, (Font) list.get(i));
152    }
153    }
154    }
155   
 
156  0 toggle public static void customizeXYItemRenderer(XYItemRenderer renderer, ChartParams params)
157    {
158  0 customizeRenderer((AbstractRenderer) renderer, params);
159    }
160   
 
161  0 toggle public static void customizeCategoryItemRenderer(CategoryItemRenderer renderer, ChartParams params)
162    {
163  0 customizeRenderer((AbstractRenderer) renderer, params);
164    }
165   
 
166  0 toggle public static void customizePlot(Plot plot, ChartParams params)
167    {
168  0 if (params.get(ChartParams.PLOT_BACKGROUND_COLOR) != null) {
169  0 plot.setBackgroundPaint(params.getColor(ChartParams.PLOT_BACKGROUND_COLOR));
170    }
171   
172  0 if (params.get(ChartParams.PLOT_BACKGROUND_ALPHA) != null) {
173  0 plot.setBackgroundAlpha(params.getFloat(ChartParams.PLOT_BACKGROUND_ALPHA).floatValue());
174    }
175   
176  0 if (params.get(ChartParams.PLOT_FOREGROUND_ALPHA) != null) {
177  0 plot.setForegroundAlpha(params.getFloat(ChartParams.PLOT_FOREGROUND_ALPHA).floatValue());
178    }
179   
180  0 if (params.get(ChartParams.PLOT_INSERTS) != null) {
181  0 plot.setInsets(params.getRectangleInsets(ChartParams.PLOT_INSERTS));
182    }
183   
184  0 if (params.get(ChartParams.PLOT_OUTLINE_COLOR) != null) {
185  0 plot.setOutlinePaint(params.getColor(ChartParams.PLOT_OUTLINE_COLOR));
186    }
187   
188  0 if (params.get(ChartParams.PLOT_OUTLINE_STROKE) != null) {
189  0 plot.setOutlineStroke(params.getStroke(ChartParams.PLOT_OUTLINE_STROKE));
190    }
191    }
192   
 
193  0 toggle public static void customizePiePlot(PiePlot plot, ChartParams params)
194    {
195  0 customizePlot(plot, params);
196   
197    }
198   
 
199  0 toggle public static void customizeXYPlot(XYPlot plot, ChartParams params)
200    {
201  0 customizePlot(plot, params);
202   
203  0 if (params.get(ChartParams.XYPLOT_ORIENTATION) != null) {
204  0 plot.setOrientation(params.getPlotOrientation(ChartParams.XYPLOT_ORIENTATION));
205    }
206   
207  0 if (params.get(ChartParams.AXIS_DOMAIN_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX) != null) {
208  0 if (params.getBoolean(ChartParams.AXIS_DOMAIN_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX)
209    .booleanValue())
210    {
211  0 plot.setDomainGridlinesVisible(true);
212  0 if (params.get(ChartParams.AXIS_DOMAIN_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX) != null)
213    {
214  0 plot.setDomainGridlinePaint(params.getColor(ChartParams.AXIS_DOMAIN_PREFIX
215    + ChartParams.PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX));
216    }
217   
218  0 if (params.get(ChartParams.AXIS_DOMAIN_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX) != null)
219    {
220  0 plot.setDomainGridlineStroke(params.getStroke(ChartParams.AXIS_DOMAIN_PREFIX
221    + ChartParams.PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX));
222    }
223    } else {
224  0 plot.setDomainGridlinesVisible(false);
225    }
226    }
227   
228  0 if (params.get(ChartParams.AXIS_RANGE_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX) != null) {
229  0 if (params.getBoolean(ChartParams.AXIS_RANGE_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_VISIBLE_SUFFIX)
230    .booleanValue())
231    {
232  0 plot.setRangeGridlinesVisible(true);
233  0 if (params.get(ChartParams.AXIS_RANGE_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX) != null) {
234  0 plot.setRangeGridlinePaint(params.getColor(ChartParams.AXIS_RANGE_PREFIX
235    + ChartParams.PLOTXY_AXIS_GRIDLINE_COLOR_SUFFIX));
236    }
237   
238  0 if (params.get(ChartParams.AXIS_RANGE_PREFIX + ChartParams.PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX) != null)
239    {
240  0 plot.setRangeGridlineStroke(params.getStroke(ChartParams.AXIS_RANGE_PREFIX
241    + ChartParams.PLOTXY_AXIS_GRIDLINE_STROKE_SUFFIX));
242    }
243    } else {
244  0 plot.setRangeGridlinesVisible(false);
245    }
246    }
247   
248  0 if (params.get(ChartParams.XYPLOT_QUADRANT_ORIGIN) != null) {
249  0 plot.setQuadrantOrigin(params.getPoint2D(ChartParams.XYPLOT_QUADRANT_ORIGIN));
250    }
251   
252  0 if (params.get(ChartParams.XYPLOT_QUADRANT_COLORS) != null) {
253  0 List colors = params.getList(ChartParams.XYPLOT_QUADRANT_COLORS);
254  0 for (int i = 0; i < 4 && i < colors.size(); i++) {
255  0 if (colors.get(i) != null) {
256  0 plot.setQuadrantPaint(i, (Color) colors.get(i));
257    }
258    }
259    }
260    }
261   
 
262  0 toggle public static void customizeAxis(Axis axis, ChartParams params, String prefix)
263    {
264   
265  0 if (params.get(prefix + ChartParams.AXIS_VISIBLE_SUFIX) != null
266    && params.getBoolean(prefix + ChartParams.AXIS_VISIBLE_SUFIX).booleanValue() == false)
267    {
268  0 axis.setVisible(false);
269   
270    } else {
271  0 if (params.get(prefix + ChartParams.AXIS_LINE_VISIBLE_SUFFIX) != null) {
272  0 if (params.getBoolean(prefix + ChartParams.AXIS_LINE_VISIBLE_SUFFIX).booleanValue()) {
273  0 axis.setAxisLineVisible(true);
274   
275  0 if (params.get(prefix + ChartParams.AXIS_LINE_COLOR_SUFFIX) != null) {
276  0 axis.setAxisLinePaint(params.getColor(prefix + ChartParams.AXIS_LINE_COLOR_SUFFIX));
277    }
278   
279  0 if (params.get(prefix + ChartParams.AXIS_LINE_STROKE_SUFFIX) != null) {
280  0 axis.setAxisLineStroke(params.getStroke(prefix + ChartParams.AXIS_LINE_STROKE_SUFFIX));
281    }
282    } else {
283  0 axis.setAxisLineVisible(false);
284    }
285    }
286   
287  0 if (params.get(prefix + ChartParams.AXIS_LABEL_SUFFIX) != null) {
288  0 axis.setLabel(params.getString(prefix + ChartParams.AXIS_LABEL_SUFFIX));
289   
290  0 if (params.get(prefix + ChartParams.AXIS_LABEL_FONT_SUFFIX) != null) {
291  0 axis.setLabelFont(params.getFont(prefix + ChartParams.AXIS_LABEL_FONT_SUFFIX));
292    }
293   
294  0 if (params.get(prefix + ChartParams.AXIS_LABEL_COLOR_SUFFIX) != null) {
295  0 axis.setLabelPaint(params.getColor(prefix + ChartParams.AXIS_LABEL_COLOR_SUFFIX));
296    }
297   
298  0 if (params.get(prefix + ChartParams.AXIS_LABEL_INSERTS_SUFFIX) != null) {
299  0 axis.setLabelInsets(params.getRectangleInsets(prefix + ChartParams.AXIS_LABEL_INSERTS_SUFFIX));
300    }
301    }
302   
303  0 if (params.get(prefix + ChartParams.AXIS_TICK_LABEL_VISIBLE_SUFFIX) != null) {
304  0 if (params.getBoolean(prefix + ChartParams.AXIS_TICK_LABEL_VISIBLE_SUFFIX).booleanValue()) {
305  0 axis.setTickLabelsVisible(true);
306   
307  0 if (params.get(prefix + ChartParams.AXIS_TICK_LABEL_FONT_SUFFIX) != null) {
308  0 axis.setTickLabelFont(params.getFont(prefix + ChartParams.AXIS_TICK_LABEL_FONT_SUFFIX));
309    }
310   
311  0 if (params.get(prefix + ChartParams.AXIS_TICK_LABEL_COLOR_SUFFIX) != null) {
312  0 axis.setTickLabelPaint(params.getColor(prefix + ChartParams.AXIS_TICK_LABEL_COLOR_SUFFIX));
313    }
314   
315  0 if (params.get(prefix + ChartParams.AXIS_TICK_LABEL_INSERTS_SUFFIX) != null) {
316  0 axis.setTickLabelInsets(params.getRectangleInsets(prefix
317    + ChartParams.AXIS_TICK_LABEL_INSERTS_SUFFIX));
318    }
319   
320    } else {
321  0 axis.setTickLabelsVisible(false);
322    }
323    }
324   
325  0 if (params.get(prefix + ChartParams.AXIS_TICK_MARK_VISIBLE_SUFFIX) != null) {
326  0 if (params.getBoolean(prefix + ChartParams.AXIS_TICK_MARK_VISIBLE_SUFFIX).booleanValue()) {
327  0 axis.setTickMarksVisible(true);
328   
329  0 if (params.get(prefix + ChartParams.AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX) != null) {
330  0 axis.setTickMarkInsideLength(params.getFloat(
331    prefix + ChartParams.AXIS_TICK_MARK_INSIDE_LENGTH_SUFFIX).floatValue());
332    }
333   
334  0 if (params.get(prefix + ChartParams.AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX) != null) {
335  0 axis.setTickMarkOutsideLength(params.getFloat(
336    prefix + ChartParams.AXIS_TICK_MARK_OUTSIDE_LENGTH_SUFFIX).floatValue());
337    }
338   
339  0 if (params.get(prefix + ChartParams.AXIS_TICK_MARK_COLOR_SUFFIX) != null) {
340  0 axis.setTickMarkPaint(params.getColor(prefix + ChartParams.AXIS_TICK_MARK_COLOR_SUFFIX));
341    }
342   
343  0 if (params.get(prefix + ChartParams.AXIS_TICK_MARK_COLOR_SUFFIX) != null) {
344  0 axis.setTickMarkStroke(params.getStroke(prefix + ChartParams.AXIS_TICK_MARK_STROKE_SUFFIX));
345    }
346   
347    } else {
348  0 axis.setTickMarksVisible(false);
349    }
350    }
351    }
352    }
353   
 
354  0 toggle public static void customizeValueAxis(ValueAxis axis, ChartParams params, String prefix)
355    {
356  0 customizeAxis(axis, params, prefix);
357   
358  0 if (params.get(prefix + ChartParams.VALUE_AXIS_AUTO_RANGE_SUFFIX) != null) {
359  0 axis.setAutoRange(params.getBoolean(prefix + ChartParams.VALUE_AXIS_AUTO_RANGE_SUFFIX).booleanValue());
360    }
361  0 if (axis.isAutoRange()) { // work only with auto range
362  0 if (params.get(prefix + ChartParams.VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX) != null) {
363  0 axis.setAutoRangeMinimumSize(params.getDouble(
364    prefix + ChartParams.VALUE_AXIS_AUTO_RANGE_MIN_SIZE_SUFFIX).doubleValue());
365    }
366  0 if (params.get(prefix + ChartParams.AXIS_LOWER_MARGIN_SUFFIX) != null) {
367  0 axis.setLowerMargin(params.getDouble(prefix + ChartParams.AXIS_LOWER_MARGIN_SUFFIX).doubleValue());
368    }
369  0 if (params.get(prefix + ChartParams.AXIS_UPPER_MARGIN_SUFFIX) != null) {
370  0 axis.setUpperMargin(params.getDouble(prefix + ChartParams.AXIS_UPPER_MARGIN_SUFFIX).doubleValue());
371    }
372    } else { // work only when auto range is off
373  0 if (params.get(prefix + ChartParams.VALUE_AXIS_LOWER_BOUND_SUFFIX) != null) {
374  0 axis.setLowerBound(params.getDouble(prefix + ChartParams.VALUE_AXIS_LOWER_BOUND_SUFFIX).doubleValue());
375    }
376  0 if (params.get(prefix + ChartParams.VALUE_AXIS_UPPER_BOUND_SUFFIX) != null) {
377  0 axis.setUpperBound(params.getDouble(prefix + ChartParams.VALUE_AXIS_UPPER_BOUND_SUFFIX).doubleValue());
378    }
379    }
380  0 if (params.get(prefix + ChartParams.VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX) != null) {
381  0 axis.setAutoTickUnitSelection(params.getBoolean(prefix + ChartParams.VALUE_AXIS_AUTO_TICK_UNIT_SUFFIX)
382    .booleanValue());
383    }
384  0 if (params.get(prefix + ChartParams.VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX) != null) {
385  0 axis.setVerticalTickLabels(params.getBoolean(prefix + ChartParams.VALUE_AXIS_VERTICAL_TICK_LABELS_SUFFIX)
386    .booleanValue());
387    }
388    }
389   
 
390  0 toggle public static void customizeNumberAxis(NumberAxis axis, ChartParams params, String prefix)
391    {
392  0 customizeValueAxis(axis, params, prefix);
393  0 if (axis.isAutoRange()) { // work only with auto range
394  0 if (params.get(prefix + ChartParams.NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX) != null) {
395  0 axis.setAutoRangeIncludesZero(params.getBoolean(
396    prefix + ChartParams.NUMBER_AXIS_AUTO_RANGE_INCLUDES_ZERO_SUFFIX).booleanValue());
397    }
398  0 if (params.get(prefix + ChartParams.NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX) != null) {
399  0 axis.setAutoRangeStickyZero(params.getBoolean(
400    prefix + ChartParams.NUMBER_AXIS_AUTO_RANGE_STICKY_ZERO_SUFFIX).booleanValue());
401    }
402    }
403  0 if (params.get(prefix + ChartParams.NUMBER_AXIS_RANGE_TYPE_SUFFIX) != null) {
404  0 axis.setRangeType(params.getRangeType(prefix + ChartParams.NUMBER_AXIS_RANGE_TYPE_SUFFIX));
405    }
406  0 if (params.get(prefix + ChartParams.NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX) != null) {
407  0 if (axis.isAutoTickUnitSelection()) {
408  0 axis.setAutoTickUnitSelection(false);
409    }
410  0 axis.setTickUnit(params.getNumberTickUnit(prefix + ChartParams.NUMBER_AXIS_NUMBER_TICK_UNIT_SUFFIX));
411    }
412  0 if (params.get(prefix + ChartParams.NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX) != null) {
413  0 axis.setNumberFormatOverride(params.getNumberFormat(prefix
414    + ChartParams.NUMBER_AXIS_NUMBER_FORMAT_OVERRIDE_SUFFIX));
415    }
416    }
417   
 
418  0 toggle public static void customizeDateAxis(DateAxis axis, ChartParams params, String prefix)
419    {
420  0 customizeValueAxis(axis, params, prefix);
421   
422  0 if (params.get(prefix + ChartParams.DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX) != null) {
423  0 axis
424    .setDateFormatOverride(params.getDateFormat(prefix + ChartParams.DATE_AXIS_DATE_FORMAT_OVERRIDE_SUFFIX));
425    }
426  0 if (params.get(prefix + ChartParams.DATE_AXIS_UPPER_DATE_SUFFIX) != null) {
427  0 axis.setMaximumDate(params.getDate(prefix + ChartParams.DATE_AXIS_UPPER_DATE_SUFFIX));
428    }
429  0 if (params.get(prefix + ChartParams.DATE_AXIS_LOWER_DATE_SUFFIX) != null) {
430  0 axis.setMinimumDate(params.getDate(prefix + ChartParams.DATE_AXIS_LOWER_DATE_SUFFIX));
431    }
432  0 if (params.get(prefix + ChartParams.DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX) != null) {
433  0 axis.setTickMarkPosition(params.getDateTickMarkPosition(prefix
434    + ChartParams.DATE_AXIS_DATE_TICK_MARK_POSITION_SUFFIX));
435    }
436  0 if (params.get(prefix + ChartParams.DATE_AXIS_DATE_TICK_UNIT_SUFFIX) != null) {
437  0 if (axis.isAutoTickUnitSelection()) {
438  0 axis.setAutoTickUnitSelection(false);
439    }
440  0 axis.setTickUnit(params.getDateTickUnit(prefix + ChartParams.DATE_AXIS_DATE_TICK_UNIT_SUFFIX));
441    }
442    }
443   
 
444  0 toggle public static void customizeCategoryAxis(CategoryAxis axis, ChartParams params, String prefix)
445    {
446  0 customizeAxis(axis, params, prefix);
447   
448  0 if (params.get(prefix + ChartParams.CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX) != null) {
449  0 axis.setCategoryMargin(params.getDouble(prefix + ChartParams.CATEGORY_AXIS_CATEGORY_MARGIN_SUFFIX)
450    .doubleValue());
451    }
452  0 if (params.get(prefix + ChartParams.CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX) != null) {
453  0 axis.setCategoryLabelPositions(params.getCategoryLabelPositions(prefix
454    + ChartParams.CATEGORY_AXIS_LABEL_POSITIONS_SUFFIX));
455    }
456  0 if (params.get(prefix + ChartParams.CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX) != null) {
457  0 axis.setCategoryLabelPositionOffset(params.getInteger(
458    prefix + ChartParams.CATEGORY_AXIS_LABEL_POSITION_OFFSET_SUFFIX).intValue());
459    }
460  0 if (params.get(prefix + ChartParams.CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX) != null) {
461  0 axis.setMaximumCategoryLabelLines(params.getInteger(
462    prefix + ChartParams.CATEGORY_AXIS_MAXIMUM_LABEL_LINES_SUFFIX).intValue());
463    }
464  0 if (params.get(prefix + ChartParams.CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX) != null) {
465  0 axis.setMaximumCategoryLabelWidthRatio(params.getFloat(
466    prefix + ChartParams.CATEGORY_AXIS_MAXIMUM_LABEL_WIDTH_RATIO_SUFFIX).floatValue());
467    }
468    }
469   
 
470  0 toggle public static void customizeChart(JFreeChart jfchart, ChartParams params)
471    {
472    // title
473  0 if (params.get(ChartParams.TITLE_PREFIX + ChartParams.TITLE_SUFFIX) != null) {
474  0 TextTitle title = new TextTitle(params.getString(ChartParams.TITLE_PREFIX + ChartParams.TITLE_SUFFIX));
475   
476  0 customizeTitle(title, params, ChartParams.TITLE_PREFIX);
477   
478  0 jfchart.setTitle(title);
479    }
480   
481    // subtitle
482  0 if (params.get(ChartParams.SUBTITLE_PREFIX + ChartParams.TITLE_SUFFIX) != null) {
483  0 TextTitle subtitle =
484    new TextTitle(params.getString(ChartParams.SUBTITLE_PREFIX + ChartParams.TITLE_SUFFIX));
485   
486  0 customizeTitle(subtitle, params, ChartParams.SUBTITLE_PREFIX);
487   
488  0 jfchart.addSubtitle(subtitle);
489    }
490   
491    // legend
492  0 LegendTitle legend = jfchart.getLegend();
493   
494  0 customizeLegend(legend, params);
495   
496    // anti-alias
497  0 if (params.get(ChartParams.ANTI_ALIAS) != null) {
498  0 jfchart.setAntiAlias(params.getBoolean(ChartParams.ANTI_ALIAS).booleanValue());
499    }
500    // background color
501  0 if (params.get(ChartParams.BACKGROUND_COLOR) != null) {
502  0 jfchart.setBackgroundPaint(params.getColor(ChartParams.BACKGROUND_COLOR));
503    }
504   
505    // border
506  0 if (params.get(ChartParams.BORDER_VISIBLE) != null
507    && params.getBoolean(ChartParams.BORDER_VISIBLE).booleanValue())
508    {
509  0 jfchart.setBorderVisible(true);
510  0 if (params.get(ChartParams.BORDER_COLOR) != null) {
511  0 jfchart.setBorderPaint(params.getColor(ChartParams.BORDER_COLOR));
512    }
513  0 if (params.get(ChartParams.BORDER_STROKE) != null) {
514  0 jfchart.setBorderStroke(params.getStroke(ChartParams.BORDER_STROKE));
515    }
516    }
517    }
518   
 
519  0 toggle public static void customizeTitle(TextTitle title, ChartParams params, String prefix)
520    {
521  0 if (params.get(prefix + ChartParams.TITLE_FONT_SUFFIX) != null) {
522  0 title.setFont(params.getFont(prefix + ChartParams.TITLE_FONT_SUFFIX));
523    } else {
524  0 title.setFont(JFreeChart.DEFAULT_TITLE_FONT);
525    }
526   
527  0 if (params.get(prefix + ChartParams.TITLE_POSITION_SUFFIX) != null) {
528  0 title.setPosition(params.getRectangleEdge(prefix + ChartParams.TITLE_POSITION_SUFFIX));
529    }
530   
531  0 if (params.get(prefix + ChartParams.TITLE_HORIZONTAL_ALIGNMENT_SUFFIX) != null) {
532  0 title.setHorizontalAlignment(params.getHorizontalAlignment(prefix
533    + ChartParams.TITLE_HORIZONTAL_ALIGNMENT_SUFFIX));
534    }
535   
536  0 if (params.get(prefix + ChartParams.TITLE_VERTICAL_ALIGNMENT_SUFFIX) != null) {
537  0 title.setVerticalAlignment(params
538    .getVerticalAlignment(prefix + ChartParams.TITLE_VERTICAL_ALIGNMENT_SUFFIX));
539    }
540   
541  0 if (params.get(prefix + ChartParams.TITLE_COLOR_SUFFIX) != null) {
542  0 title.setPaint(params.getColor(prefix + ChartParams.TITLE_COLOR_SUFFIX));
543    }
544   
545  0 if (params.get(prefix + ChartParams.TITLE_BACKGROUND_COLOR_SUFFIX) != null) {
546  0 title.setBackgroundPaint(params.getColor(prefix + ChartParams.TITLE_BACKGROUND_COLOR_SUFFIX));
547    }
548   
549  0 if (params.get(prefix + ChartParams.TITLE_PADDING_SUFFIX) != null) {
550  0 title.setPadding(params.getRectangleInsets(prefix + ChartParams.TITLE_PADDING_SUFFIX));
551    }
552   
553  0 if (params.get(prefix + ChartParams.TITLE_URL_SUFFIX) != null) {
554  0 title.setURLText(params.getString(prefix + ChartParams.TITLE_URL_SUFFIX));
555    }
556    }
557   
 
558  0 toggle public static void customizeLegend(LegendTitle legend, ChartParams params)
559    {
560  0 if (params.get(ChartParams.LEGEND_BACKGROUND_COLOR) != null) {
561  0 legend.setBackgroundPaint(params.getColor(ChartParams.LEGEND_BACKGROUND_COLOR));
562    }
563   
564  0 if (params.get(ChartParams.LEGEND_ITEM_FONT) != null) {
565  0 legend.setItemFont(params.getFont(ChartParams.LEGEND_ITEM_FONT));
566    }
567   
568  0 if (params.get(ChartParams.LEGEND_ITEM_LABEL_PADDING) != null) {
569  0 legend.setItemLabelPadding(params.getRectangleInsets(ChartParams.LEGEND_ITEM_LABEL_PADDING));
570    }
571   
572  0 if (params.get(ChartParams.LEGEND_ITEM_GRAPHIC_ANCHOR) != null) {
573  0 legend.setLegendItemGraphicAnchor(params.getRectangleAnchor(ChartParams.LEGEND_ITEM_GRAPHIC_ANCHOR));
574    }
575   
576  0 if (params.get(ChartParams.LEGEND_ITEM_GRAPHIC_EDGE) != null) {
577  0 legend.setLegendItemGraphicEdge(params.getRectangleEdge(ChartParams.LEGEND_ITEM_GRAPHIC_EDGE));
578    }
579   
580  0 if (params.get(ChartParams.LEGEND_ITEM_GRAPHIC_LOCATION) != null) {
581  0 legend.setLegendItemGraphicAnchor(params.getRectangleAnchor(ChartParams.LEGEND_ITEM_GRAPHIC_LOCATION));
582    }
583   
584  0 if (params.get(ChartParams.LEGEND_ITEM_GRAPHIC_PADDING) != null) {
585  0 legend.setLegendItemGraphicPadding(params.getRectangleInsets(ChartParams.LEGEND_ITEM_GRAPHIC_PADDING));
586    }
587    }
588    }