Oi
Testei o exemplo do tutorial do site do cewolf http://cewolf.sourceforge.net/new/index.html e deu tudo certo.
Modifiquei o código da classe PageViewCountData para gerar um gráfico de função Afim (y=ax+b) e gerou tudo certinho ^^ .
Gostaria que os valores de a e b fossem inseridos pelo usuário em um formulário de página jsp.
O que parecia simples está me dando dor de cabeça. Tentei usar request, mas tive problemas para receber esses valores na classe PageViewCountData.
Criei métodos dentro da classe para receber esses valores e nada... Ate tentei usar get e set .. mas eu teria que estância-la e não deu certo.
Em ultimo caso tentei colocar um servlet que recebesse esses valores usando request .. mas deu um erro 404 no tomcat ;(
Sou novata nisso ...me desculpe se tentei coisa sem noção ... por isso estou aqui. Por gentileza me dêem algum sugestão. Grata.
Segue código que modifiquei.
package codigo;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;
/**
* exemplo de produtor de dados modificado por studant
* @autor original Guido Laures
*/
public class PageViewCountData implements DatasetProducer, CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable {
private static final Log log = LogFactory.getLog(PageViewCountData.class);
private String[] categories = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
private String[] seriesNames = {"Equação Afim"};
private float a=2;// esses valores que devem ser fornecidos pelo usuário atravez do formulário..
private float b=3;
/*tentei fazer assim o servlet ... mas depois fiquei pensando como ia configurar ele no xml. =/ tentei algumas coisas mas nada..
public class Servlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, Exception {
a = Float.parseFloat(request.getParameter("a"));
b = Float.parseFloat(request.getParameter("b"));
}
}*/
public Object produceDataset(Map params) throws DatasetProduceException {
log.debug("producing data.");
DefaultCategoryDataset dataset = new DefaultCategoryDataset(){
/**
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
super.finalize();
log.debug(this +" finalized.");
}
};
for (int series = 0; series < seriesNames.length; series++) {
for (int i = 0; i < categories.length; i++) {// i aqui equivale ao meu x da equação afim
final int y = (int) ((a * i) + b);
dataset.addValue(y, seriesNames[series], categories[i]);
}
}
return dataset;
}
/**
* This producer's data is invalidated after 5 seconds. By this method the
* producer can influence Cewolf's caching behaviour the way it wants to.
*/
public boolean hasExpired(Map params, Date since) {
log.debug(getClass().getName() + "hasExpired()");
return (System.currentTimeMillis() - since.getTime()) > 5000;
}
/**
* Returns a unique ID for this DatasetProducer
*/
public String getProducerId() {
return "PageViewCountData DatasetProducer";
}
/**
* Returns a link target for a special data item.
*/
public String generateLink(Object data, int series, Object category) {
return seriesNames[series];
}
/**
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
super.finalize();
log.debug(this + " finalized.");
}
/**
* @see org.jfree.chart.tooltips.CategoryToolTipGenerator#generateToolTip(CategoryDataset, int, int)
*/
public String generateToolTip(CategoryDataset arg0, int series, int arg2) {
return seriesNames[series];
}
}