`
静夜细藤
  • 浏览: 19649 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

open flash chart with struts2 pie

阅读更多

connext-graphs是struts2的标签,是其可以应用ofc。通过controller控制数据来源,从而显示


  open flash chart with struts2 pie 收藏
官网为:http://teethgrinder.co.uk/open-flash-chart/

http://www.connext.co.za/下载connext-graphs-0.6.jar (现在是最新版,源代码在https://connext-graphs.dev.java.net/source/browse/connext-graphs/ 用svn 下,不过你要先注册先,它会要求你输入注册名和密码的)

参照struts2-pluign

http://cwiki.apache.org/S2PLUGINS/connext-graph-plugin.html里的做法,把刚才下载的connext-graphs-0.6.jar 放到你的/WEB-INF/lib下,然后就是写action  jsp (据说可以用在freemarker了,不过我没有试过)

我的action:

public class GraphAction extends ActionSupport {

 private static final long serialVersionUID = -7553677081007831357L;
 private String value;

 @SuppressWarnings("unchecked")
 @Override
 public String execute() throws Exception {
  OFCGraphController controller = new OFCGraphController();
  controller.getTitle().setText("Example 01");
  controller.getTitle().setSize(12);
  PieLabels pieLabels = new PieLabels();
  List<String> colours = new ArrayList<String>();
  colours.add("#d01f3c");
  colours.add("#356aa0");
  colours.add("#C79810");
  pieLabels.setColours(colours);
  controller.setLabels(pieLabels);
  controller.getLabels().setLabels(Arrays.asList(labels));
  controller.getYLegend().setText("No. of tasks");
  controller.getYLegend().setColor("#8b0000");
  controller.getYLegend().setSize(12);
  controller.getXLegend().setText("Months");
  controller.getXLegend().setColor("#8b0000");
  controller.getXLegend().setSize(12);
  controller.getColor().getBgColor().setColor("#FFFFFF");
  controller.getColor().getXAxisColor().setColor("#e3e3e3");
  controller.getColor().getYAxisColor().setColor("#e3e3e3");
  controller.getColor().getXGridColor().setColor("#e3e3e3");
  controller.getColor().getYGridColor().setColor("#e3e3e3");

  DefaultOFCGraphDataModel model = new DefaultOFCGraphDataModel();
  model.setData(Arrays.asList(data01));
  model.setFormat(new DecimalFormat("###0.000"));
  // model.setSeriesType(new OFCLineAreaSeriesType(10,"#8b0000", "Test 2"
  // ));
  model.setSeriesType(new PieChart(60, "#505050",
    "{font-size: 12px; color: #8b0000}"));
  controller.add(model);

  // model = new DefaultOFCGraphDataModel();
  // model.setData(Arrays.asList(data02));
  // model.setFormat(new DecimalFormat("###0.000"));
  // model.setSeriesType(new OFCLineDotSeriesType(3, "#8b0000", "Test 2",
  // 10, 6));
  // controller.add(model);

  // model = new DefaultOFCGraphDataModel();
  // model.setData(Arrays.asList(data03));
  // model.setFormat(new DecimalFormat("###0.000"));
  // model.setSeriesType(new OFCLineSeriesType(2, "#8b0000", "Example",
  // 4));
  // controller.add(model);
  //
  // model = new DefaultOFCGraphDataModel();
  // model.setData(Arrays.asList(data04));
  // model.setFormat(new DecimalFormat("###0.000"));
  // model.setSeriesType(new OFCFilledBarSeriesType(50, "#8b0000",
  // "#8b0000", "Filled Bar"));
  // controller.add(model);

  value = controller.render();
  return SUCCESS;
 }

 private static Double[] data01 = new Double[] { new Double(1.4),
   new Double(6.3), new Double(7.2), new Double(4.1), new Double(5.4),
   new Double(3.8), new Double(1.5), new Double(4.4), new Double(8.9),
   new Double(8.6), new Double(8.7), new Double(2.4), new Double(3.5), };

 private static Double[] data02 = new Double[] { new Double(3.5),
   new Double(1.4), new Double(2.3), new Double(8.4), new Double(9.6),
   new Double(4.4), new Double(3.8), new Double(1.5), new Double(2.8),
   new Double(8.3), new Double(5.4), new Double(8.7), new Double(1.4) };

 private static Double[] data03 = new Double[] { new Double(13.5),
   new Double(11.4), new Double(12.3), new Double(18.4),
   new Double(19.6), new Double(14.4), new Double(13.8),
   new Double(11.5), new Double(12.8), new Double(18.3),
   new Double(15.4), new Double(18.7), new Double(11.4) };

 private static Double[] data04 = new Double[] { new Double(13.5),
   new Double(11.4), new Double(12.3), new Double(18.4),
   new Double(19.6), new Double(14.4), new Double(13.8),
   new Double(11.5), new Double(12.8), new Double(18.3),
   new Double(15.4), new Double(18.7), new Double(11.4) };

 private static String[] labels = new String[] { "Jan", "Feb", "Mar", "Apr",
   "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan" };

  public String getValue() {
  return value;
 }

 public void setValue(String value) {
  this.value = value;
 }

}

注意蓝色字体:connext-graphs-0.6.jar 这个版本已经实现很多的图形显示

OFCBar3DSeriesType

OFCBarSeriesType

OFCBarSketchSeriesType

OFCFilledBarSeriesType

。。。。。。。。

我就是多说了,自己慢慢试下就知道了。

不过connext-graphs-0.6.jar 还没有实现pie(饼状图),但我要用,所以我自己临时写了个实现Pie的PieChart:

public class PieChart implements OFCSeriesType {

 //SET CHART STYPE PIE
 public static final String SERIES_TYPE_PIE = "pie";
 private int index;
 private String type;
 private int alpha;
 private String line_colour;
 //SET DISPLAY STYLE
 private String style;

 @Override
 public int getIndex() {
  return index;
 }

 @Override
 public String getType() {
  return type = SERIES_TYPE_PIE;
 }

 @Override
 public void setIndex(int index) {
  this.index = index;
 }

 public PieChart(int alpha, String line_colour, String style) {
  this.alpha = alpha;
  this.line_colour = line_colour;
  this.style = style;
 }

 @Override
 public String render() {
  String value = "&" + getType();
  value = value + "=" + getAlpha() + "," + getLine_colour() + ","
    + getStyle();
  value = value + "&\r\n";
  return value;
 }

 public int getAlpha() {
  return alpha;
 }

 public void setAlpha(int alpha) {
  this.alpha = alpha;
 }

 public String getLine_colour() {
  return line_colour;
 }

 public void setLine_colour(String line_colour) {
  this.line_colour = line_colour;
 }

 public String getStyle() {
  return style;
 }

 public void setStyle(String style) {
  this.style = style;
 }

}

还有就是 PieLabels

public class PieLabels extends OFCGraphLabels {

 //set display type pie
 public static final String myPieGraphLabels = "pie_labels";
 //set display colours
 public static final String myPieColours = "colours";
 //TODO SET LIST
 private List<String> colours;

 private List labels = new ArrayList();

 public void setLabels(List labels) {
  this.labels = labels;
 }

 public void clear() {
  this.labels.clear();
 }

 public void add(String label) {
  this.labels.add(label);
 }

 /**
  * @see za.co.connext.web.components.OFCRenderer#render()
  */
 public String render() {

  String value = "&" + myPieGraphLabels + "=";
  for (int i = 0; i < this.labels.size(); i++) {
   if (i > 0)
    value = value + ",";

   Object x = this.labels.get(i);
   if (x != null) {
    value = value + x.toString();
   }
  }
  value = value + "&\r\n";
  // set colours
  value = value + "&" + myPieColours + "=";
  for (String str : getColours()) {
   value = value+str + ",";
  }
  value = value + "&\r\n";
  return value;
 }

 public List<String> getColours() {
  return colours;
 }

 public void setColours(List<String> colours) {
  this.colours = colours;
 }
}

写两个jsp页面:in.jsp result.jsp

in.jsp

<%@ taglib prefix="m" uri="/connext"%>
<m:graph id="graph" width="800" height="300" align="middle"
 bgcolor="#FFFFFF" url="/Graph_example.action" />

result.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>
<%
  response.addHeader("Pragma", "No-cache");
  response.addHeader("Cache-Control", "no-cache");
  response.addDateHeader("Expires", 0);
%>
<s:property value="value" escape="false" />

在struts.xml中配置下:

<action name="Graph_example" class="你的action">
   <result>/result.jsp</result>
  </action>

发表于 @ 2008年01月30日 14:57:00 | 评论( 0 ) | 编辑| 举报| 收藏

旧一篇:get struts2 nightly build | 新一篇:STRUTS2 TAG给bluelzx的留言只有注册用户才能发表评论!登录注册姓   名:
校验码:
 Csdn Blog version 3.1a
Copyright © bluelzx  

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bluelzx/archive/2008/01/30/2073160.aspx

分享到:
评论

相关推荐

    open flash chart api

    1. **多图表类型**:Open Flash Chart 支持多种图表类型,包括柱状图(bar charts)、饼图(pie charts)、线图(line charts)、面积图(area charts)、散点图(scatter plots)以及组合图表,满足各种数据分析和...

    Open Flash Chart所需文件

    Open Flash Chart是一款强大的开源Flash图表库,用于在Web应用程序中创建高质量、互动的图表。它提供了丰富的自定义选项,能够生成各种类型的图表,包括柱状图、饼图、线点图等,使得数据可视化变得更加简单易行。在...

    open flash chart库

    **Open Flash Chart库详解** Open Flash Chart是一款强大的开源图表库,专为PHP开发者设计,用于创建各种美观且交互性强的数据可视化图表。它以其出色的视觉效果和丰富的自定义选项,在Web应用中广泛使用,尤其适用...

    open flash chart 2 线性图 柱形图 饼状图

    Open Flash Chart 2 是一款强大的开源图表库,用于在网页中生成高质量的交互式图表。它使用Flash技术,提供丰富的视觉效果,同时保持了良好的浏览器兼容性和易用性。线性图、柱形图和饼状图是数据可视化中常见的图表...

    Open Flash Chart java例子 eclipse 测试通过

    Open Flash Chart是一款强大的开源Flash图表库,用于在Web应用程序中创建动态、交互式的图表。它使用ActionScript编写,可以通过服务器端的数据与JavaScript进行通信,从而生成高质量的图表。本示例是关于如何在Java...

    open flash chart 2 swc包

    open flash chart 2 的swc文件包 可以在flex里面调用了. [Bindable] private var chart:String='{ "elements": [ { "type": "bar","alpha":0.8,"colour":"#663366", "values": [ 0 ] } ], "title": { "text": "...

    open flash chart--js画图形‘曲线等

    swfobject.embedSWF("ofc2/open-flash-chart.swf", "chart", "600", "400", "9.0.0", false, {}, {}, {}, "open-flash-chart"); ``` **三、扩展功能与自定义** Open Flash Chart还支持多种扩展功能,例如: - **...

    open flash char的教程

    2. JavaScript API:如果你更喜欢使用JavaScript,Open Flash Chart也提供了一个API,可以动态地创建和修改图表。 四、图表类型 Open Flash Chart 支持多种图表类型,包括: 1. 折线图(Line charts) 2. 条形图...

    open_flash_chart中文学习教程文档

    - **饼图(Pie Chart)**:展示数据的占比情况。 - **柱状图(Bar Chart)**:比较各分类数据量的大小。 - **折线图(Line Chart)**:展示数据随时间的变化趋势。 - **其他类型**:还包括玻璃柱状图、渐变柱状...

    open flash chart学习笔记之属性和方法

    ### Open Flash Chart 学习笔记之属性和方法详解 #### 一、概述 在上一篇文章中,我们简要探讨了如何使用 Open Flash Chart 进行图表的创建与数据交互。本文将进一步深入研究 Open Flash Chart 中 JSON 数据格式的...

    FlashChart

    1. **图表类型**:FlashChart支持多种图表类型,如折线图(Line Chart)、柱状图(Bar Chart)、饼图(Pie Chart)、散点图(Scatter Chart)等,每种类型都有其特定的用途和数据格式。 2. **XML结构**:理解和构建...

    open-flash-chart

    在给定的压缩包`open-flash-chart(2)`中,你应该能找到这些文件。将它们放在你的项目目录下,并在HTML页面中引入JavaScript文件,例如: ```html &lt;script type="text/javascript" src="path/to/open-flash-chart.js...

    amchart -3 Pie & Donut(flash chart 图表)

    标题中的"amchart -3 Pie & Donut(flash chart 图表)"指的是AmCharts的第三版,专门用于创建饼图和甜甜圈图的Flash版本。AmCharts 3 提供了一系列的图表类型,包括但不限于饼图和甜甜圈图,但在这个特定的资源包中,...

    struts2整合jfreechart

    &lt;action name="ListAllFruit4Pie2" class="chart.ListAllFruit4Pie2Action"&gt; &lt;result name="success" type="chart"&gt; &lt;param name="chart"&gt;chart &lt;param name="height"&gt;400 &lt;param name="width"&gt;700 ``` 3...

    前端项目-pie-chart.zip

    【前端项目-pie-chart.zip】是一个包含AngularJS的饼图组件的前端项目,名为"pie-chart"。这个项目专门用于创建美观且功能丰富的饼状图表,适用于数据分析和数据可视化的需求。AngularJS是一款强大的JavaScript框架...

    Web Chart 极品web报表控件收集Web+Chart

    Open Flash Chart - Open Flash Chart 是一个 Flash 图表组件,很容易安装,提供以下语言的API: PHP, Perl, Python, Java, Ruby on Rails, and .Net 来控制图表。 ? AmCharts - AmCharts 是一个动画交互Flash图表...

    pentaho基本报表饼图chart-pie

    http://blog.csdn.net/wild46cat/article/details/61415218

    ofc_java学习资料

    JOFC2提供了对Open Flash Chart的全面支持,包括Struts 1框架的集成。通过JOFC2,开发者可以方便地在Java后端生成图表数据,并将其传递到前端展示。 【使用JOFC2的步骤】 1. **下载与引入**:首先,你需要从JOFC2...

    Struts2 + jfreechart

    它支持多种图表类型,包括折线图(Line Chart)、柱状图(Bar Chart)、饼状图(Pie Chart)以及更复杂的散点图(Scatter Plot)和甘特图(Gantt Chart)等。JFreeChart 还允许开发者自定义颜色、样式、标签等,以...

Global site tag (gtag.js) - Google Analytics