Cewolf使用小结
Cewolf可以在一个基于Servlet/JSP的Web应用程序内部使用,基于JFreechart的,利用JFreechart的绘制引擎的开源项目。以在Web页中嵌入各种复杂的图形图表(如,直方图、饼图、棒图等等)。它提供了一个功能完备的标签库来定义图表的所有属性(颜色、笔画、图例等),这样嵌入了图表的JSP就不用使用任何Java代码。
为了配置你的web工程,你必须编辑 /WEB-INF/web.xml,添加下列行。
<servlet></servlet>
<servlet-name></servlet-name>CewolfServlet
<servlet-class></servlet-class>de.laures.cewolf.CewolfRenderer
另外你要提供一个servlet-mapping来告诉容器URL与Cewolf绘图servlet的映射关系.
Additionally you should provide a servlet-mapping to tell the container which URL maps to your Cewolf rendering servlet.
<servlet-mapping></servlet-mapping>
<servlet-name></servlet-name>CewolfServlet
<url-pattern></url-pattern>/cewolf/ *
你还需要告诉CeWolf的启动:
<load-on-startup></load-on-startup>1
下载标签库jar包:
将jar包下/Lib文件内容放在工程的/WEB-INF/lib 下面,/Lib文件内容:
jfreechart-*-demo.jar
jfreechart-*.jar
jcommon-*.jar
commons-logging.jar
cewolf.jar
batik-xml.jar
batik-util.jar
batik-svggen.jar
batik-dom.jar
batik-awt-util.jar
Mozilla浏览器需要/example目录下的overlib.js,放入webapps根目录下。
在用Cewolf标签出现问题时,例如:"No Tags" is displayed in your containers console。你可以将cewolf.tld或cewolf-1.1.tld 文件放入你在WEB项目根目录下的新建的文件夹中,就能在JSP中使用这些标签咯。
1、创建一个数据源(dataset)
创建数据源基本上和上面一样,所不同的是 cewolf 对其重新进行了包装,它提供了一个DatasetProducer 接口,你需要实现这一接口,下面是一个例子
DatasetProducer pieData = new DatasetProducer() {
public Object produceDataset(Map params) {
//cewolf?对其重新进行了包装
final String[] categories = { "apples", "pies", "bananas", "oranges" };
DefaultPieDataset ds = new DefaultPieDataset();
//怎么样?和上面一样吧
for (int i = 0; i < categories.length; i++) {
int y = (int) (Math.random() * 10 + 1);
ds.setValue(categories[i], new Integer(y));
}
return ds;
}
一个DatasetProducer需要实现3个方法,最重要的一个是produceDataset()方法,它实际上生成了一个用于画图的数据。这个方法用一个map作参数,这个map由许多指定的JSP标签填充,这个一会再介绍。
在当前生数据成器确实生成数据对象后,方法hasExpired()被才被Cewolf框架调用。当返回TRUE时,产生器将释放以前的数据。
Cewolf框架通过 getProducerId()方法提生成的一个唯一ID来标识一个生成者。2个具有相同ID生成实例将被认为时生成相同的数据。
public String getProducerId() {
return "PieDataProducer";//返回唯一的ID
}
public boolean hasExpired(Map params, Date since) {
return false;
}
};
pageContext.setAttribute("pieData", pieData);//产生完以后要把它放到页面中保存以给?cewolf标签调用
2、<cewolf:chart></cewolf:chart>标签
<cewolf:chart id="pieChart"></cewolf:chart> //这个id要唯一,给下边<cewolf:img>标签引用
title="Pie“//图形的标题
type="pie" //图形的类型 >
<cewolf:gradientpaint>
<cewolf:point color="#FFFFFF" y="0" x="0"></cewolf:point>
<cewolf:point color="#DDDDFF" y="0" x="300"></cewolf:point>
</cewolf:gradientpaint>
<cewolf:data>
<cewolf:producer id="pieData"></cewolf:producer>
//</cewolf:data>
引用上面产生的数据
一些说明:
关于图形的背景色,还有两个选择,分别是
<cewolf:gradientpaint> //</cewolf:gradientpaint>
产生色彩倾斜的背景
<cewolf:point color="#AAAAFFEE" y="0" x="0"></cewolf:point>
<cewolf:point color="#DDDDFF" y="0" x="300"></cewolf:point>
和
<cewolf:texturepaint height="60" width="60" image="/img/bg.jpg"></cewolf:texturepaint>//加入背景图案
3、<cewolf:img>标签
4、看到上面的步骤,你可能会认为用 cewolf 输出图形是如此的简单,是这样的,但看了最开始的 jFreeChart 对图形的一些调整,你会想我如何调整呢?我不想用默认值,我想输出更复杂的图形。很好,我是这样做的:
这里要介绍一个新的接口ChartPostProcessor 和一个标签<cewolf:chartpostprocessor></cewolf:chartpostprocessor>我们要写自己的类实现这个ChartPostProcessor 接口,然后再用标签<cewolf:chartpostprocessor></cewolf:chartpostprocessor>调用我们所写的类
ChartPostProcessor dataColor = new ChartPostProcessor() {
public void processChart(Object chart, Map params) {
//这个接口就这一个方法
CategoryPlot plot = (CategoryPlot) ((JFreeChart) chart).getPlot(); //看到了什么??!!对,获得了plot!
下面就可以通过plot 对图形进行调整!!
plot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); //一个实验,坐标轴与图分离
for (int i = 0; i < params.size(); i++) { //这里的params 是通过标签<cewolf:chartpostprocessor></cewolf:chartpostprocessor>输入的!
String colorStr = (String) params.get(String.valueOf(i));
plot.getRenderer().setSeriesPaint(i, java.awt.Color.decode(colorStr));//看到 renderer了吧,
}
}
};
pageContext.setAttribute("dataColor", dataColor); //记得要放起来噢
具体引用:
type="stackedHorizontalBar" xaxislabel="Fruit" yaxislabel="favorite">
<cewolf:data>
</cewolf:data>
在这里!!
我们当然也可以在实现ChartPostProcessor 接口的类里把一切都做好,然后这么用:
生成ImageMap和Tooltip信息是很简单的事情,
首先要实现接口CategoryItemLinkGenerator和CategoryToolTipGenerator (因为生成的是CategoryDataset). 别的数据类型请参见cewolf java api:http://cewolf.sourceforge.net/new/apidoc/index.html
de.laures.cewolf.tooltips下有4个接口:
CategoryToolTipGenerator
PieToolTipGenerator
ToolTipGenerator
XYToolTipGenerator
为了能让你的类能在图片上生成ImageMap和Tooltip,你必须对<cewolf:img>做如下修改:
<cewolf:img height="300" width="400" renderer="cewolf" chartid="line">
<cewolf:map id="pageViews"></cewolf:map>
</cewolf:img>
CategoryToolTipGenerator catTG = new CategoryToolTipGenerator() {
public String generateToolTip(CategoryDataset dataset, int series, int index) {
return String.valueOf(dataset.getValue(series, index));
}
};
pageContext.setAttribute("categoryToolTipGenerator", catTG);
PieToolTipGenerator pieTG = new PieToolTipGenerator() {
public String generateToolTip(PieDataset dataset, Comparable section, int index) {
return String.valueOf(index);
}
};
pageContext.setAttribute("pieToolTipGenerator", pieTG);
<cewolf:img height="300" width="300" renderer="/cewolf" chartid="horizontalBarChart">
<cewolf:map tooltipgeneratorid="categoryToolTipGenerator"></cewolf:map>
</cewolf:img>
LinkGenerator xyLG = new XYItemLinkGenerator() {
public String generateLink(Object data, int series, int item) {
return "#Series " + series;
}
};
pageContext.setAttribute("xyLinkGenerator", xyLG);
http://cewolf.sourceforge.net/new/index.html
分享到:
相关推荐
4. **事件驱动**:Cewolf 使用事件驱动的编程模型,使得开发者能够轻松响应用户的交互行为,提高了用户体验。 5. **性能优化**:Cewolf 在设计时考虑了性能,采用高效的渲染机制,确保应用在运行时流畅且响应快速。...
**CEWolf:JFreeChart的高效封装...总结来说,CEWolf是为简化JFreeChart使用而设计的一个优秀库,通过MVC模式,它提高了图表开发的效率和灵活性。无论是用于数据可视化、分析还是报告,CEWolf都是一个值得考虑的工具。
Cewolf是一款基于Java的Web报表工具,主要...通过阅读《Cewolf开发全攻略》文档,开发者将全面掌握Cewolf的使用方法,从而能够在Web应用中灵活运用Cewolf创建出高效、美观的报表系统,实现数据的生动展示和深度分析。
4. **Servlet处理请求**:Cewolf接收到请求后,使用JFreeChart对象生成图像,并返回给客户端。 5. **客户端展示**:浏览器接收到图像数据后,以图片形式展示在页面上,用户可以与图表进行交互。 通过这种组合,...
总的来说,理解并正确使用cewolf所需的jar文件,是成功开发cewolf项目的关键步骤之一。开发者需要熟悉这些库的功能,以及如何在代码中调用它们提供的API,从而充分发挥cewolf在Web GUI开发中的作用。同时,持续关注...
总结,cewolf-1.1.4是一个强大的图形展示工具,它结合了JFreeChart的强大功能和Web服务的便利性,是开发Web应用中数据可视化的得力助手。通过不断迭代和优化,cewolf为开发者提供了更高效的解决方案,使得动态图表的...
这里主要详细讲述了cewolf的用法发发发发发发发发发发发发发法案
总的来说,"cewolf应用"涵盖了C++开发工具的使用、源码分析、以及可能的定制和优化,这些都是IT行业中程序员和开发者日常工作中重要的一部分。对于想要提升自己在C++开发领域技能的人来说,TCEWolf是一个值得关注和...
Cewolf可以在一个基于Servlet/JSP的Web应用程序内部使用,基于JFreechart的,利用JFreechart的绘制引擎的开源项目。以在Web页中嵌入各种复杂的图形图表(如,直方图、饼图、棒图等等)。它提供了一个功能完备的标签库来...
Cewolf,能用于开发web工程的Servlet或JSP等,用于制作比较复杂的统计图表.它能够在写比较少的java代码的情况下,显示JSP页面,通过设置图的特征,象颜色,线条,图形,大小,比例等等.
cewolf-1.0-bundle-2 第三方生成图形 好东东
本实例将深入探讨如何在Web应用程序中集成和使用Cewolf技术。 1. **Cewolf简介** Cewolf,全称为“Charts on the Web in Every Language”,是一个开源项目,主要目的是简化在Web应用中生成动态图表的过程。它支持...
3. **十分钟上手**:使用Cewolf,你需要创建一个Java类来绘制图表,然后通过Servlet请求该类并渲染到Canvas。Cewolf会自动处理将Java2D渲染转换为Web可显示的图像。 4. **Cewolf基本标签说明**:Cewolf提供了一些...
Cewolf是用于各种图表的标记库。 它使每个JSP都可以轻松地嵌入图表图像。 Servlet容器中运行的任何Web应用程序都可以使用它。 无需Java scriplet代码即可定义图表。
总结来说,开放源代码作品如Java的Tomcat、Resin、JFreeChart和Cewolf,不仅促进了技术进步,还为开发者提供了丰富的工具和资源。理解并掌握这些开放源代码项目及其许可证,对于Java Web开发者而言至关重要,能够...
随后,深入讲解了如何利用Java Applet、JSP、Servlet和JavaBean等技术来开发Web动态图表,特别强调了开源软件JFreeChart和Cewolf动态图表生成引擎的使用,这些工具极大地简化了复杂图表的生成过程,提高了开发效率。...
总的来说,这个项目提供了JSP创建基于Web的动态图表的实践案例,涵盖了JFreeChart和Cewolf这两个开源库的使用,以及如何在JSP中实现动态图表的生成和交互。通过学习和研究这些源代码,开发者可以掌握在Web应用中生成...
通过Java Applet、Java Servlet、JSP、JavaBean以及借助开源软件JFreeChart及Cewolf动态图表生成引擎等多种方式开发Web动态图表,还详解了如何设计Web动态图表生成引擎,并将其封装成JavaBean,以达到高效、重复使用...