package de.jwic.demo.chart;
import java.util.ArrayList;
import java.util.List;
import de.jwic.base.IControlContainer;
import de.jwic.controls.chart.api.ChartInconsistencyException;
import de.jwic.controls.chart.api.ValueListDataset;
import de.jwic.controls.chart.api.ValueListDatasetModel;
import de.jwic.controls.chart.impl.StackedBarChart;
import de.jwic.demo.chart.util.DataModelCreator;
/**
*
* @author Karolina Marek (karolina-marek.eu)
*
* @date 09.12.2015
*/
public class StackedBarDemo extends
ChartDemo<StackedBarChart, ValueListDatasetModel> {
/**
*
*/
private static final long serialVersionUID = -1899059941525891198L;
public StackedBarDemo(IControlContainer container) {
super(container);
}
protected ValueListDatasetModel createModel() {
return DataModelCreator.getValueListDatasetModel();
}
@Override
protected List<TableElement> convertChartModelToTableElements() {
List<TableElement> elements = new ArrayList<TableElement>();
for (ValueListDataset set : model.getDatasets()) {
int i = 0;
for (Double in : set.getData()) {
TableElement el = new TableElement();
el.setTitle(model.getLabels().get(i));
el.setValue(in.toString());
el.setFillColor(set.getFillColor());
el.setHighlightColor(set.getHighlightColor());
elements.add(el);
i++;
}
}
return elements;
}
@Override
protected StackedBarChart createChart(ValueListDatasetModel model) {
StackedBarChart cahrt = new StackedBarChart(this, "chart", model);
cahrt.getConfiguration().setScaleBeginAtZero(true);
return cahrt;
}
@Override
protected void changeHighColor(String color)
throws ChartInconsistencyException {
model.changeHightlightColor(1, color);
}
@Override
protected void changeFillColor(String color)
throws ChartInconsistencyException {
model.changeFillColor(1, color);
}
@Override
protected void addElementToTheChart(TableElement element)
throws ChartInconsistencyException {
model.addDataToModel(element.getTitle(), 1,
Double.valueOf(element.getValue()));
}
@Override
protected void updateElementInChart(TableElement selectedTableElement)
throws ChartInconsistencyException {
model.changeDataByModel(selectedTableElement.getTitle(), 1, 5D);
}
@Override
protected void deleteElementFromChart(TableElement selectedTableElement)
throws ChartInconsistencyException {
model.removeDataFromModel(selectedTableElement.getTitle());
}
}