`

JfreeChart自己

阅读更多

import java.awt.Color;
import java.awt.RenderingHints;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;



/
public class ProInforAction {

// 对象及对象集合

private CompileCheckResult compileCheckResult;
private T3lintCheckResult t3lCheckResult;
private List<CompileCheck> compileCheckList;
private List<T3lintCheck> t3lintChekList;




// 业务类对象

private CompileCheckService checkService = new CompileCheckService();
private T3lintCheckService t3lintService = new T3lintCheckService();
private ProjectService projectService = new ProjectService();

private GenStatChartData genstatechartdata = new GenStatChartData();


/**
* 获取编译结果【compilecheck】【t3lintcompilecheck】。
*
* @return String
*/
public String getCompiledInfor() {

// 以下数据仅为测试,到时要调用后台数据。
compileCheckList = this.getCheckService().findAllList();
//
t3lintChekList = this.getT3lintService().findAllList();
return "success";
}

/**
* 查看历史记录
*
* @return List
*/
public String getComplileHistory() {

// 1.先获取工程编号 2.在通过工程编号获取到工程的历史编译记录

compileCheckList = this.getCheckService().findLastedMonthList(this.getCompileCheckResult().getProjectName());
return "success";
}

/**
* 查看t3lint历史记录。
*
* @return List
*/
public String getT3lintCompileHistory() {
t3lintChekList = this.getT3lintService().findLastMonth(this.getT3lCheckResult().getProjectName());
ServletActionContext.getRequest().getSession().setAttribute("proName", t3lCheckResult.getProjectName());
return "success";
}


public  String generateTotalChart(HttpSession session, PrintWriter pw,int w, int h,String proName){
String filename = null;
Map<String,Integer> dataMap = genstatechartdata.getLastMonthTotalMap(proName);
if(dataMap == null){
return "";
}
CategoryDataset dataset = getTotalData(dataMap);
JFreeChart chart = ChartFactory.createLineChart(
"total趋势图",
"日期",
"数量",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

chart.setBackgroundPaint(Color.white);

CategoryPlot plot = chart.getCategoryPlot();
plot.setDomainGridlinePaint(Color.black);
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.blue);
plot.setRangeGridlinesVisible(true);

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) plot.getRenderer();
lineandshaperenderer.setBaseShapesVisible(true);
lineandshaperenderer.setBaseLinesVisible(true);

       
        lineandshaperenderer.setBaseItemLabelGenerator(new    
        StandardCategoryItemLabelGenerator());    
        lineandshaperenderer.setBaseItemLabelsVisible(true);
try {
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}


public  String generateTestCaseChart(HttpSession session, PrintWriter pw,int w, int h,String proName){
String filename = null;
Map<String,Integer> dataMap = genstatechartdata.getLastMonthTcMap(proName);
if(dataMap == null){
return "";
}
CategoryDataset dataset = getTestcaseData(dataMap);
JFreeChart chart = ChartFactory.createLineChart(
"testcase趋势图",
"日期",
"数量",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);

chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

chart.setBackgroundPaint(Color.white);

CategoryPlot plot = chart.getCategoryPlot();
plot.setDomainGridlinePaint(Color.black);
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.blue);
plot.setRangeGridlinesVisible(true);

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) plot.getRenderer();
lineandshaperenderer.setBaseShapesVisible(true);
lineandshaperenderer.setBaseLinesVisible(true);

       
        lineandshaperenderer.setBaseItemLabelGenerator(new    
        StandardCategoryItemLabelGenerator());    
        lineandshaperenderer.setBaseItemLabelsVisible(true);

try {
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}

public  String generateWarnChart(HttpSession session, PrintWriter pw,int w, int h,String proName){
String filename = null;
Map<String,Integer> warnMap = genstatechartdata.getLastMonthWarnMap(proName);
Map<String,Integer> errorMap = genstatechartdata.getLastMonthErrorMap(proName);
Map<String,Integer> fatalMap = genstatechartdata.getLastMonthFatalMap(proName);
Map<String,Integer> severityMap = genstatechartdata.getLastMonthSeverityMap(proName);
Map<String,Integer> hintMap = genstatechartdata.getLastMonthHintMap(proName);
if(warnMap == null && errorMap== null && fatalMap == null && severityMap== null && hintMap == null){
return "";
}
CategoryDataset dataset = getWarnData(warnMap,errorMap,fatalMap, severityMap,hintMap);
JFreeChart chart = ChartFactory.createLineChart(
"警告趋势图",// 图表标题
"日期",// 目录轴的显示标签
"数量",// 数值轴的显示标签
dataset,// 数据集
PlotOrientation.VERTICAL,// 图表方向:水平、垂直
true,// 是否显示图例(对于简单的柱状图必须是false)
false,// 是否生成工具
false// 是否生成URL链接
);
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*------------配置图表属性--------------*/
// 1,设置整个图表背景颜色
chart.setBackgroundPaint(Color.white);
/*------------设定Plot参数-------------*/
CategoryPlot plot = chart.getCategoryPlot();
// 2,设置详细图表的显示细节部分的背景颜色
//plot.setBackgroundPaint(Color.PINK);
// 3,设置垂直网格线颜色
plot.setDomainGridlinePaint(Color.black);
//4,设置是否显示垂直网格线
plot.setDomainGridlinesVisible(true);
//5,设置水平网格线颜色
plot.setRangeGridlinePaint(Color.blue);
//6,设置是否显示水平网格线
plot.setRangeGridlinesVisible(true);

LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) plot.getRenderer();
lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见
lineandshaperenderer.setBaseLinesVisible(true); // series 点(即数据点)间有连线可见

       
        lineandshaperenderer.setBaseItemLabelGenerator(new    
        StandardCategoryItemLabelGenerator());    
        lineandshaperenderer.setBaseItemLabelsVisible(true); 
    
try {
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}

/**
* PDU数据。
* @param dataMap
* @return
*/
private static CategoryDataset getTotalData(Map<String,Integer> dataMap){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
Set<String> keySet = dataMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(dataMap.get(key), "total", builder.toString());
}
return dataset;
}

/**
* testcase数据。
* @param dataMap
* @return
*/
private static CategoryDataset getTestcaseData(Map<String,Integer> dataMap){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
Set<String> keySet = dataMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(dataMap.get(key), "testcase", builder.toString());
}
return dataset;
}


/**
* warn数据。
* @param warnMap
* @return
*/
private static CategoryDataset getWarnData(Map<String,Integer> warnMap,Map<String,Integer> errorMap,Map<String,Integer> fatalMap,Map<String,Integer> severityMap,Map<String,Integer> hintMap){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
if(warnMap != null){
Set<String> keySet = warnMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(warnMap.get(key), "warn", builder.toString());
}
}
if(errorMap != null){
Set<String> keySet = errorMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(errorMap.get(key), "error", builder.toString());
}
}
if(fatalMap != null){
Set<String> keySet = fatalMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(fatalMap.get(key), "fatal", builder.toString());
}
}
if(severityMap != null){
Set<String> keySet = severityMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(severityMap.get(key), "severity", builder.toString());
}
}
if(hintMap != null){
Set<String> keySet = hintMap.keySet();
Iterator<String> iter = keySet.iterator();
while(iter.hasNext()){
String key = iter.next();
int smark = key.indexOf("-");
int emark = key.lastIndexOf("-");
StringBuilder builder = new StringBuilder();
builder.append(key.substring(smark+1, emark));
builder.append(".");
builder.append(key.substring(emark+1));
dataset.setValue(hintMap.get(key), "hint", builder.toString());
}
}
return dataset;
}


/**
* 获取日志信息
*
* @return
*/
public String getLogs() {

return "success";
}


public T3lintCheckResult getT3lCheckResult() {
return t3lCheckResult;
}

public void setT3lCheckResult(T3lintCheckResult checkResult) {
t3lCheckResult = checkResult;
}

public List<CompileCheck> getCompileCheckList() {
return compileCheckList;
}

public void setCompileCheckList(List<CompileCheck> compileCheckList) {
this.compileCheckList = compileCheckList;
}

public List<T3lintCheck> getT3lintChekList() {
return t3lintChekList;
}

public void setT3lintChekList(List<T3lintCheck> chekList) {
t3lintChekList = chekList;
}

public CompileCheckService getCheckService() {
return checkService;
}

public void setCheckService(CompileCheckService checkService) {
this.checkService = checkService;
}

public T3lintCheckService getT3lintService() {
return t3lintService;
}

public void setT3lintService(T3lintCheckService service) {
t3lintService = service;
}

public ProjectService getProjectService() {
return projectService;
}

public void setProjectService(ProjectService projectService) {
this.projectService = projectService;
}

public CompileCheckResult getCompileCheckResult() {
return compileCheckResult;
}

public void setCompileCheckResult(CompileCheckResult compileCheckResult) {
this.compileCheckResult = compileCheckResult;
}




}
分享到:
评论

相关推荐

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    jfreechart-1.5.2.jar,jfreechart|jfreechart

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    通过分析源代码,开发者可以快速上手,并了解到如何将JFreeChart集成到自己的项目中。 4. **兼容性与性能**: JFreeChart是基于Java平台的,因此可以运行在任何支持Java的系统上。它的高性能和稳定表现使得即使...

    JFreeChart 官方例子 JFReeChart Dome

    "JFreeChart 官方例子 JFreeChart Dome" 提供了一系列官方示例,帮助开发者更好地理解和运用JFreeChart库的各种功能。 "ChangeLog" 文件通常记录了软件的更新历史,其中包括了每次版本升级中添加的新特性、修复的...

    jfreechart demo

    **JFreeChart 演示程序详解** JFreeChart 是一个强大的 Java 图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。这篇内容将深入探讨 JFreeChart 的基本使用...

    jfreechart绘制的风速风向玫瑰图

    * jfreechart的文档不够完善,需要开发者自己探索和学习。 * jfreechart的性能可能不太好,对于大规模数据可能会出现性能问题。 jfreechart是一个非常强大的图表库,提供了非常灵活的图表定制功能和丰富的图表类型...

    JFreeChart混合图表演示

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,包括柱状图、饼图、线图、散点图等。在“JFreeChart混合图表演示”中,我们重点探讨如何利用JFreeChart来创建一个包含多种图表类型的混合图表,以提供更丰富...

    Jfreechart

    JFreeChart 是一个流行的 Java 库,用于创建各种类型的图表,包括饼图、折线图、柱状图等。在使用 JFreeChart 进行数据可视化时,可能会遇到乱码的问题,这通常与字体设置不当有关。本文将详细分析 Jfreechart 乱码...

    jfreechart所需jar包.zip

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括折线图、柱状图、饼图、散点图等。在Java应用程序中,JFreeChart经常被用于数据分析和可视化,尤其在报表系统、数据分析工具或者任何需要...

    JFreechart教程与实例

    "JFreechart教程与实例" JFreechart是一款功能强大的图形报表组件,主要用于生成各种动态图表。在Java项目的应用中,JFreechart组件几乎可以满足目前图形报表的所有需求。JFreechart组件可以生成各种各样的图形报表...

    jfreechart依赖jar包

    JFreeChart 是一个强大的 Java 图形库,它为开发者提供了丰富的图表类型,包括柱状图、折线图、饼状图等,用于在 Java 应用程序中进行数据可视化。在 Java 后台开发中,数据的图形化表示能够帮助用户更直观地理解...

    jfreechart

    标题 "jfreechart" 指的是 JFreeChart,这是一个流行的开源 Java 图形库,用于创建高质量的图表。它在各种应用中广泛使用,包括报表、仪表盘、科学出版物等,提供了丰富的图表类型,如饼图、柱状图、线图、散点图和...

    jfreechart使用的3个jar包

    **JFreeChart 使用详解** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如折线图、柱状图、饼图、散点图以及更专业的图表类型,如甘特图和雷达图。在Java应用中,如果你...

    JfreeChart-雷达图与导出

    **JFreeChart库详解** JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中创建多种类型的图表,包括雷达图(也称为蜘蛛网图)。本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出...

    JFreeChart-1.0.9.zip jfreechart.jar

    **JFreeChart 1.0.9:一个强大的Java图表库** JFreeChart是一个流行的开源Java库,用于创建各种高质量的图表,包括折线图、柱状图、饼图、散点图、甘特图等。它在描述复杂数据集时提供了一种直观的方式,广泛应用于...

    代替jfreechart的FusionCharts

    FusionCharts是一款强大的数据可视化工具,它可以作为Java图表库jFreeChart的一个替代选择。与jFreeChart相比,FusionCharts提供了更加丰富的图表类型、更美观的图表效果以及更友好的用户体验。本文将深入探讨...

    jfreechart中文学习文档

    ### jfreechart中文学习文档 #### 一、引言 ##### 1.1 JFreeChart 是什么? **1.1.1 概览** JFreeChart 是一款为 Java 平台设计的免费图表库。这款工具非常适合在各种 Java 应用程序、Applet 和 Servlet 中使用...

    JFreeChart

    **JFreeChart** 是一个广泛使用的Java库,用于创建高质量的图表,包括折线图、柱状图、饼图、散点图等。它在Java应用程序、Web应用、报告和移动应用中都有广泛应用。JFreeChart支持多种图表类型,允许自定义颜色、...

    如何在eclipse中配置JFreeChart

    JFreeChart是一款功能强大的Java图表库,它能够生成多种图表,如柱状图、折线图、饼图、时间序列图等,常用于Java应用程序中。而Eclipse是一个开源的集成开发环境,广泛用于Java语言的开发。在Eclipse中配置...

Global site tag (gtag.js) - Google Analytics