salve, salve…
eu preciso plotar um grafico na minha pagina web, a partir do que for inserido no banco de dados. A classe que tem essa função é ContaService, que deve possuir a implementação do seguinte método:
[code]public BigDecimal consultarValorTotalPorTipoConta(TipoConta despesa) {
return null;
}[/code]
se eu quiser que o grafico insira qualquer valor como teste, ou seja, magic numbers, para ser mais especifico, eu fiz assim:
[code]
public BigDecimal consultarValorTotalPorTipoConta(TipoConta despesa) {
return new BigDecimal(3569.85);
}[/code]
com esse metodo me retornou o grafico na tela bonitin, mas com um valor inserido “na mao”.
como eu faço para instanciar um objeto dessa classe BigDecimal e me retornar o que foi inserido no banco??
Minha servlet que gera o grafico segue abaixo:
[code]package br.com.financas.imperiumpecunia.servlets;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import br.com.financas.imperiumpecunia.dominio.TipoConta;
import br.com.financas.imperiumpecunia.negocio.ContaService;
public class GraficoPizzaDespesasReceitasServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/png");
OutputStream output = response.getOutputStream();
BufferedImage image = criarGrafico(criarDataSet()).createBufferedImage(
650, 250);
ImageIO.write(image, "png", output);
output.close();
}
private PieDataset criarDataSet() {
NumberFormat formatador = DecimalFormat.getNumberInstance(new Locale(
"pt", "BR"));
ContaService contaService = new ContaService();
BigDecimal valorDespesas = contaService
.consultarValorTotalPorTipoConta(TipoConta.DESPESA);
BigDecimal valorReceitas = contaService
.consultarValorTotalPorTipoConta(TipoConta.RECEITA);
DefaultPieDataset dataSet = new DefaultPieDataset();
dataSet.setValue("Despesas [" + formatador.format(valorDespesas) + "]",
valorDespesas);
dataSet.setValue("Receitas [" + formatador.format(valorReceitas) + "]",
valorReceitas);
return dataSet;
}
private JFreeChart criarGrafico(PieDataset dataSet) {
JFreeChart chart = ChartFactory.createPieChart3D("Receitas x Despesas",
dataSet, false, true, false);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setBackgroundPaint(Color.WHITE);
plot.setStartAngle(290);
plot.setForegroundAlpha(0.5f);
return chart;
}
}[/code]
galera, por favor, preciso de uma ajuda de vcs!
agradeço.