/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.monitor.web;
import java.awt.Color;
import java.util.Map;
import org.apache.wicket.markup.html.image.NonCachingImage;
import org.apache.wicket.markup.html.image.resource.BufferedDynamicImageResource;
import org.apache.wicket.markup.html.panel.Panel;
import org.geoserver.monitor.Monitor;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public abstract class OWSSummaryChartBasePanel extends Panel {
private static final long serialVersionUID = 8914945614020025223L;
protected String owsService;
public OWSSummaryChartBasePanel(String id, Monitor monitor, String owsService) {
super(id);
this.owsService = owsService;
Map<String,Integer> data = gatherData(monitor);
DefaultPieDataset dataset = new DefaultPieDataset();
for (Map.Entry<String, Integer> e : data.entrySet()) {
dataset.setValue(e.getKey(), e.getValue());
}
JFreeChart chart =
ChartFactory.createPieChart(getChartTitle(), dataset, true, true, false);
chart.setBackgroundPaint(Color.WHITE);
BufferedDynamicImageResource resource = new BufferedDynamicImageResource();
resource.setImage(chart.createBufferedImage(650,500));
add(new NonCachingImage("chart", resource));
}
protected abstract Map<String, Integer> gatherData(Monitor monitor);
protected abstract String getChartTitle();
}