/*******************************************************************************
* Copyright (c) 2006, 2009 University of Edinburgh.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the BSD Licence, which
* accompanies this feature and can be downloaded from
* http://groups.inf.ed.ac.uk/pepa/update/licence.txt
*******************************************************************************/
/* PieChartBuilder.java
*
* created by mtribast on 21 Feb 2008
*
*/
package uk.ac.ed.inf.common.ui.plotting.internal;
import org.eclipse.birt.chart.model.Chart;
import org.eclipse.birt.chart.model.ChartWithoutAxes;
import org.eclipse.birt.chart.model.component.Series;
import org.eclipse.birt.chart.model.component.impl.SeriesImpl;
import org.eclipse.birt.chart.model.data.NumberDataSet;
import org.eclipse.birt.chart.model.data.SeriesDefinition;
import org.eclipse.birt.chart.model.data.TextDataSet;
import org.eclipse.birt.chart.model.data.impl.NumberDataSetImpl;
import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl;
import org.eclipse.birt.chart.model.data.impl.TextDataSetImpl;
import org.eclipse.birt.chart.model.impl.ChartWithoutAxesImpl;
import org.eclipse.birt.chart.model.type.PieSeries;
import org.eclipse.birt.chart.model.type.impl.PieSeriesImpl;
import uk.ac.ed.inf.common.ui.plotting.data.InfoWithoutAxes;
/**
* @author mtribast
*
*/
public class PieChartBuilder extends Generic2DGraph {
private SeriesDefinition sdX;
public PieChartBuilder(InfoWithoutAxes info) {
super(info, ChartWithoutAxesImpl.create());
}
/*
* (non-Javadoc)
*
* @see sct.birt.test.data.Generic2DGraph#handleChart(org.eclipse.birt.chart.model.Chart)
*/
@Override
protected void handleChart(Chart chart) {
buildXSeries(chart);
buildYSeries();
}
/*
* (non-Javadoc)
*
* @see com.ibm.examples.chart.widget.chart.AbstractChartBuilder#buildXSeries()
*/
private void buildXSeries(Chart chart) {
TextDataSet categoryValues = TextDataSetImpl.create(info
.getCategories());
Series seCategory = SeriesImpl.create();
seCategory.setDataSet(categoryValues);
// Apply the color palette
sdX = SeriesDefinitionImpl.create();
sdX.getSeriesPalette().shift(1);
((ChartWithoutAxes) chart).getSeriesDefinitions().add(sdX);
sdX.getSeries().add(seCategory);
}
/*
* (non-Javadoc)
*
* @see com.ibm.examples.chart.widget.AbstractChartBuilder#buildYSeries()
*/
private void buildYSeries() {
NumberDataSet orthoValuesDataSet = NumberDataSetImpl
.create(((InfoWithoutAxes) info).getValues());
PieSeries sePie = (PieSeries) PieSeriesImpl.create();
sePie.setDataSet(orthoValuesDataSet);
sePie.setExplosion(Integer.parseInt(options.get(OptionKind.EXPLOSION)));
SeriesDefinition sdCity = SeriesDefinitionImpl.create();
sdX.getSeriesDefinitions().add(sdCity);
sdCity.getSeries().add(sePie);
}
}