THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block |
---|
import org.apache.wicket.markup.html.WebPage;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import com.mathias.common.wicket.JFreeChartImage;
@SuppressWarnings("serial")
public class PieChartExamplePage extends WebPage {
public PieChartExamplePage() {
DefaultPieDataset d = new DefaultPieDataset();
d.setValue("JavaWorld", new Integer(75));
d.setValue("Other", new Integer(25));
JFreeChart chart = ChartFactory.createPieChart("Sample Pie Chart", d,
true, // Show legend
true, // Show tooltips
true); // Show urls
//chart.setBackgroundPaint(Color.white);
//chart.setBorderVisible(false);
add(new JFreeChartImage("image", chart, 300, 300));
}
}
|
...
Code Block |
---|
import java.io.ByteArrayOutputStream; import java.io.IOException; import org.apache.wicket.Resource; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.image.resource.DynamicImageResource; import org.apache.wicket.model.Model; import org.apache.wicket.protocol.http.WebResponse; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; @SuppressWarnings("serial") public class JFreeChartImage extends Image { private int width; private int height; public JFreeChartImage(String id, JFreeChart chart, int width, int height){ super(id, new Model(chart)); this.width = width; this.height = height; } @Override protected Resource getImageResource() { return new DynamicImageResource(){ @Override protected byte[] getImageData() { JFreeChart chart = (JFreeChart)getModelObject(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); try { ChartUtilities.writeChartAsPNG(stream, chart, width, height); } catch (IOException e) { System.out.println("IOException: "+e.getMessage()); } return stream.toByteArray(); } @Override protected void setHeaders(WebResponse response) { if (isCacheable()) { super.setHeaders(response); } else { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "private"); response.setHeader("Cache-Control", "no-store"); } } }; } } |