1
24 package net.sf.jasperreports.components.spiderchart;
25
26 import net.sf.jasperreports.components.charts.ChartSettings;
27 import net.sf.jasperreports.engine.JRChart;
28 import net.sf.jasperreports.engine.JRComponentElement;
29 import net.sf.jasperreports.engine.JRPrintElement;
30 import net.sf.jasperreports.engine.JRPropertiesUtil;
31 import net.sf.jasperreports.engine.base.JRBasePrintImage;
32 import net.sf.jasperreports.engine.component.ComponentDesignConverter;
33 import net.sf.jasperreports.engine.convert.ReportConverter;
34 import net.sf.jasperreports.engine.type.OnErrorTypeEnum;
35 import net.sf.jasperreports.engine.type.ScaleImageEnum;
36 import net.sf.jasperreports.engine.util.JRExpressionUtil;
37
38
43 public class SpiderChartDesignConverter implements ComponentDesignConverter
44 {
45
46 @Override
47 public JRPrintElement convert(ReportConverter reportConverter, JRComponentElement element)
48 {
49 SpiderChartComponent chartComponent = (SpiderChartComponent) element.getComponent();
50 if (chartComponent == null)
51 {
52 return null;
53 }
54 JRBasePrintImage printImage = new JRBasePrintImage(reportConverter.getDefaultStyleProvider());
55 ChartSettings chartSettings = chartComponent.getChartSettings();
56
57 reportConverter.copyBaseAttributes(element, printImage);
58
59
60
61
62 printImage.setAnchorName(JRExpressionUtil.getExpressionText(chartSettings.getAnchorNameExpression()));
63 printImage.setBookmarkLevel(chartSettings.getBookmarkLevel());
64 printImage.setLinkType(chartSettings.getLinkType());
65 printImage.setOnErrorType(OnErrorTypeEnum.ICON);
66 printImage.setScaleImage(ScaleImageEnum.CLIP);
67 SpiderChartSharedBean spiderchartBean =
68 new SpiderChartSharedBean(
69 chartSettings.getRenderType(),
70 SpiderChartRendererEvaluator.SAMPLE_MAXVALUE,
71 JRExpressionUtil.getExpressionText(chartSettings.getTitleExpression()),
72 JRExpressionUtil.getExpressionText(chartSettings.getSubtitleExpression()),
73 null,
74 null
75 );
76
77 printImage.setRenderer(
78 SpiderChartRendererEvaluator.evaluateRenderable(
79 reportConverter.getJasperReportsContext(),
80 element,
81 spiderchartBean,
82 null,
83 JRPropertiesUtil.getInstance(reportConverter.getJasperReportsContext()).getProperty(reportConverter.getReport(), JRChart.PROPERTY_CHART_RENDER_TYPE),
84 SpiderChartRendererEvaluator.SAMPLE_DATASET)
85 );
86
87 return printImage;
88 }
89 }
90