Estou usando o CEWOLF para gerar gráficos em jsp. Minha classe lê os resultados da base e plota os gráficos. Esta funcionando perfeitamente. Porém, gostaria de passar parâmetros para a classe e ela retornasse a plotagem. Alguem sabe como fazer?
Minha classe é:
package com.acesso;
import java.sql.*;
import java.util.Date;
import java.util.Map;
import org.apache.log4j.Logger;
import org.jfree.data.category.DefaultCategoryDataset;
import com.celulajava.dwr.dao.conexao;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
public class chartDefault implements DatasetProducer {
private static final long serialVersionUID = 1L;
Logger log = Logger.getLogger(chartDefault.class);
// Retorna uma Dataset com os dados que irão alimentar o gráfico
public Object produceDataset(Map arg0) throws DatasetProduceException {
// Criando um Dataset para o gráfico de linhas
DefaultCategoryDataset ds = new DefaultCategoryDataset();
PreparedStatement ps = null;
String query = " SELECT TOP 5 SUM(TB_ACLIATIVOS.CA) AS CA, TB_LOJAS_NOVAS.LOJA AS LOJA"
+ " FROM TB_ACLIATIVOS INNER JOIN"
+ " TB_LOJAS_NOVAS ON TB_ACLIATIVOS.CDLOJA = TB_LOJAS_NOVAS.CDLOJA"
+ " GROUP BY TB_LOJAS_NOVAS.LOJA" ;
try {
conexao cnx = new conexao();
//ps = conexao.prepareStatement(query);
ResultSet rs = cnx.ExecutaSQL (query); //ps.executeQuery();
while (rs.next()) {
// Inserindo no DataSet a quantidade de pessoas certificadas, o nome da certf. e o estado.
//ds.addValue(rs.getInt(1), rs.getString(2), rs.getString(3));
ds.addValue(rs.getInt("CA"), rs.getString("LOJA"),rs.getString("LOJA"));
}
} catch (SQLException e) {
log.info(e);
}
return ds;
}
// O dados deste dataset é invalidado imediatamente. O tempo de retorno influencia no cache do cewolf
public boolean hasExpired(Map arg0, Date arg1) {
return true;
// Se quisessemos que os dataset expirasse em 5 segundos colocariamos
// return (System.currentTimeMillis() - since.getTime()) > 5000;
}
// Retorna um Id único para o dataset
public String getProducerId() {
return "chartDefault";
}
}