bjqincy 发表于 2013-2-6 10:58:17

cewolf 学习

       cewolf 的学习,项目中用到了 cewolf+ jfreeChart于是就学习了下, cewolf  我个人认为是实现了 一个MVC设计模式 ,将显示 与控制分离 , view 在jsp中与tablib方式 将 饼图,柱图,等在前台显示出来, 控制的 model 就是数据定义的数据 类似与javabean 类
 重要的就是控制方面 ,控制的类要实现 cewolf 的接口 ,我们要在实现的cewolf方法中对jfreechar 进行 二次的封装。
 ##############################3
  首先是在官方网站下载 jar
Cewolf :
 http://cewolf.sourceforge.net/new/index.html
 jfreechar
  http://www.jfree.org/jfreechart/
 2 配置 项目中 web。Xml文件
 <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>CewolfServlet</servlet-name><servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class><!-- sets storage implementation --><init-param><param-name>storage</param-name><param-value>de.laures.cewolf.storage.TransientSessionStorage</param-value></init-param><!-- sets overlib.js location relative to webapp --><init-param><param-name>overliburl</param-name><param-value>/etc/overlib.js</param-value></init-param><!-- turn on or off debugging logging --><init-param><param-name>debug</param-name><param-value>true</param-value></init-param><load-on-startup>4</load-on-startup></servlet><!--注意这个是必须的,前台的方法要通过 adChart 才能调用 ,img标签中使用它 renderer="/adChart"才能使用--><servlet-mapping><servlet-name>CewolfServlet</servlet-name><url-pattern>/adChart/*</url-pattern></servlet-mapping></web-app> 
3 实现的java coed
   通过实现 cewolf 的接口 implements DatasetProducer, Serializable
DatasetProducer 这个接口是关键 要实现其中的 produceDataset 方法 该方法返回的
 Jfreechar 的 an object of type org.jfree.data.Dataset  Dateset 类型数据
package cewolf;import java.io.Serializable;import java.text.DateFormat;import java.text.ParseException;import java.util.Date;import java.util.Map;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;import de.laures.cewolf.DatasetProducer;public class AdDateLineDataset implements DatasetProducer, Serializable {private Number[] data;private Date[] dateCategories;public AdDateLineDataset() {super();data = new Number[] { 11, 33, 27 };DateFormat df = DateFormat.getDateTimeInstance();try {dateCategories = new Date[] { df.parse("2008-03-5 08:00:00"),df.parse("2008-03-5 10:00:00"),df.parse("2008-03-5 15:00:00") };} catch (ParseException e) {e.printStackTrace();}}public AdDateLineDataset(Date[] d, Number[] a) {}public Object produceDataset(Map params) {TimeSeries ts1 = new TimeSeries("My Title",org.jfree.data.time.Hour.class);for (int i = 0; i < data.length; i++) {ts1.add(new org.jfree.data.time.Hour(dateCategories), data);}TimeSeriesCollection collect = new TimeSeriesCollection(ts1);return collect;}public String getProducerId() {return "TimeDataProducer";}public boolean hasExpired(Map params, Date since) {return true;}} 
4 前台的jsp页面
<%@ page language="java" pageEncoding="UTF-8"%><%@page import="java.util.Date"%><!--将下载的tld 放在 这里 --><%@taglib uri="/tld/cewolf.tld" prefix="cewolf"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>test</title></head><body><jsp:useBean id="data1" class="com.cewolfDemo.db.LineCewolf" /><cewolf:chart id="pageChart2" title="时间序列图" type="timeseries"xaxislabel="时间" yaxislabel="数量"><cewolf:data><cewolf:producer id="data1" /></cewolf:data></cewolf:chart><!--注意 renderer 参数必须与 web。xml文件中 cewolf 的 url map 相对应 --><cewolf:img chartid="pageChart2" renderer="/adChart" width="500"height="500" /></body></html> 
页: [1]
查看完整版本: cewolf 学习