public void encodeEnd(FacesContext context) throws IOException {
super.encodeEnd(context);
UIChart chart = (UIChart) findITextParent(getParent(), UIChart.class);
if (chart != null) {
Dataset dataset = chart.getDataset();
if (dataset instanceof DefaultPieDataset) {
DefaultPieDataset piedata = (DefaultPieDataset) dataset;
piedata.setValue(getKey(), getNumericValue());
PiePlot plot = (PiePlot) chart.getChart().getPlot();
if (getExplodedPercent() != null) {
plot.setExplodePercent(getKey(), getExplodedPercent());
}
if (UIChart.findColor(getSectionPaint()) != null) {
plot.setSectionPaint(getKey(), UIChart.findColor(getSectionPaint()));
}
if (UIChart.findColor(getSectionOutlinePaint()) != null) {
plot.setSectionOutlinePaint(getKey(), UIChart.findColor(getSectionOutlinePaint()));
}
if (UIChart.findStroke(getSectionOutlineStroke()) != null) {
plot.setSectionOutlineStroke(getKey(), UIChart.findStroke(getSectionOutlineStroke()));
}
} else if (dataset instanceof DefaultCategoryDataset) {
DefaultCategoryDataset data = (DefaultCategoryDataset) dataset;
// CategoryPlot plot = (CategoryPlot)
// chart.getChart().getPlot();
data.addValue(getNumericValue(), getSeries(), getKey());
// } else if (dataset instanceof DefaultXYDataset) {
// DefaultXYDataset data = (DefaultXYDataset) dataset;
} else {
throw new RuntimeException(
"Cannot add data to dataset of type "
+ dataset.getClass());
}
}
}