package cn.com.jdlssoft.daup.fxtool.chartShow.plugChart.fusionchart.paint;
import java.util.HashMap;
import cn.com.jdlssoft.daup.fxtool.chartShow.core.ChartFeature;
/**
* DrawFusion.java<br>
* <p>Title: fusionChart绘制基类</p>
* <p>Description: fusionChart绘制基类,将产生不同版本的子类</p>
* <p>Copyright: Copyright (c) 2010</p>
* <p>Company: 税友软件集团股份有限公司</p>
* <p>Create on 2011-1-12<p>
* @author tuwy
* @version 1.0
*/
public abstract class DrawFusion implements IBaseDraw {
/**
* 构造函数
* @param chartPath 图表路径
* @param chartName 图表名
*/
public DrawFusion(String chartPath, String chartName) {
this.setChartPath(chartPath);
this.setChartName(chartName);
}
/**
* swf文件在文件中的位置
*/
private String chartPath;
/**
* 图表名
*/
private String chartName;
/**
* 图表展现所在的div,由外面传入或自己绘制该div
*/
//private String divChartId;
/**
* 是否自己绘制div
*/
//private boolean bDivSelf = true;
/**
* 绘制图表内容
* @param dataMap 图表数据信息
* @param cf 图表公共属性
* @return 图表内容
*/
public String draw(HashMap dataMap, ChartFeature cf) {
StringBuffer result = new StringBuffer();
//result.append("<script type='text/javascript'>");
result.append("var fusionchart = new FusionCharts('")
.append(System.getProperty("user.dir").replaceAll("\\\\", "/"))
.append(getChartPath()).append(getChartName()) // 设置chart对应flash的真实路径
.append("', 'ChartId").append(cf.getChartDivId()) // 设置存放chart的容器id
.append("', '").append(cf.getChartWidth()) // 设置chart的宽度
.append("', '").append(cf.getChartHeight()).append("', '0', '1');"); // 设置chart的高度
result.append("fusionchart.addParam('wmode','Transparent');"); // 避免浏览器CSS bug
result.append("fusionchart.setDataXML(\"").append(createXmlData(dataMap, cf)).append("\");"); // 设置chart内容
result.append("fusionchart.render('").append(cf.getChartDivId()).append("');"); // 显示chart
//result.append("</script>");
return result.toString();
}
/**
* 创建图表所需的完整XML数据
* @param dataMap 图表数据信息
* @param cf 图表公共属性
* @return 图表所需的完整XML数据
*/
public String createXmlData(HashMap dataMap, ChartFeature cf) {
StringBuffer xmlData = new StringBuffer();
xmlData.append("<").append(getRootElement()).append(" ")
.append(getRootProperty(cf))
.append(getRootYAxesProperty(cf))
.append(getPrintProperty(cf)).append(">") // 头部分
//.append(getFontStyle(cf)) // 样式部分
.append(getCategories(cf)) // 分类部分,对于单系列无意义
.append(createDataSet(dataMap)) // 绘制具体的数据集部分
.append("</").append(getRootElement()).append(">");
return xmlData.toString();
}
/**
* 获取图表名
* @return 图表名
*/
public String getChartName() {
return chartName;
}
/**
* 设置图表名
* @param chartName 图表名
*/
public void setChartName(String chartName) {
this.chartName = chartName;
}
/**
* 获取swf文件在文件中的位置
* @return swf文件在文件中的位置
*/
public String getChartPath() {
return chartPath;
}
/**
* 设置swf文件在文件中的位置
* @param chartPath swf文件在文件中的位置
*/
public void setChartPath(String chartPath) {
this.chartPath = chartPath;
}
/**
* xml数据的根标签名
* @return xml数据的根标签名
*/
protected abstract String getRootElement();
/**
* 生成xml数据时,填充根标签的属性部分,当前先完成基本属性
* @param cf 图表公共属性
* @return 根标签的属性
*/
protected String getRootProperty(ChartFeature cf) {
StringBuffer property = new StringBuffer();
// 是否显示数值信息
String showValues = "0";
if (cf.isTooltips()) {
showValues = "1";
}
property.append("caption='").append(cf.getChartTitle()).append("' ") // 设置标题
.append("baseFont='宋体' baseFontSize='14' ") // 设置字体
.append("showNames='1' showValues='").append(showValues).append("' ") // 数值显示
.append("xAxisName='").append(cf.getAxisChartFeature().getXTitle()).append("' ") // X轴显示名
.append("showAlternateHGridColor='1' alternateHGridAlpha='60' alternateHGridColor='f8f8f8' ")
.append("bgColor='FFFFFF' "); // 设置整体颜色
return property.toString();
}
/**
* 绘制纵轴的信息,基类中是针对单轴的情况(包括单系列和多系列)
* @param cf 图表公共属性
* @return 纵轴的信息
*/
protected String getRootYAxesProperty(ChartFeature cf) {
StringBuffer yaxes = new StringBuffer();
yaxes.append("yAxisName='").append(cf.getAxisChartFeature().getYTitle()).append("' ") // Y轴显示名
.append(getFormatInfo(cf)) // 辅助函数
.append(getChartLimit(cf)); // 上下数值界线的自定义
return yaxes.toString();
}
/**
* 设置打印信息
* @param cf 图表公共属性
* @return 打印信息
*/
protected String getPrintProperty(ChartFeature cf) {
StringBuffer print = new StringBuffer();
print.append("exportAtClient='1' exportEnabled='1' exportFormats='JPG=生成图片' ")
.append("exportHandler='exportComponentSwf' ")
.append("exportFileName='").append(cf.getChartTitle()).append("' ")
.append("showExportDialog='1' exportDialogMessage='正在保存' exportDialogColor='e1f5ff' ")
.append("exportDialogBorderColor='0372ab' exportDialogFontColor='0372ab' exportDialogPBColor='0372ab'");
return print.toString();
}
/**
* 辅助函数,设置格式化信息
* @param cf 图表公共属性
* @return 格式化信息
*/
protected String getFormatInfo(ChartFeature cf) {
StringBuffer formatinfo = new StringBuffer();
formatinfo.append("formatNumberScale='0' ");
return formatinfo.toString();
}
/**
* 关于图表上下数值界线的自定义
* @param cf 图表公共属性
* @return 关于图表上下数值界线的自定义
*/
protected String getChartLimit(ChartFeature cf) {
StringBuffer limit = new StringBuffer();
// limit.append("")
// .append("")
// .append("");
return limit.toString();
}
/**
* 描述各部分字体样式信息
* @param cf 图表公共属性
* @return 描述各部分字体样式信息
*/
protected String getFontStyle(ChartFeature cf) {
StringBuffer fontstyle = new StringBuffer();
fontstyle.append("<styles>")
.append("<definition>").append(setOneFontStyle("titleStyle")).append("</definition>")
.append("<application>")
.append("<apply toObject='CAPTION' styles='titleStyle'/>")
.append("</application></styles>");
return fontstyle.toString();
}
/**
* 描述一个字体
* @param styleName 样式名
* @return 单个样式
*/
private String setOneFontStyle(String styleName) {
StringBuffer fontstyle = new StringBuffer();
fontstyle.append("<style type='font' name='").append(styleName).append("' ") // 样式名
.append("font='宋体' ") // 字体
.append("size='14' ") // 大小
.append("color='000000' ") // 颜色
.append("bold='1' ") // 粗体
.append("italic='1' ") // 斜体
没有合适的资源?快使用搜索试试~ 我知道了~
fusionchart的java简单封装
共51个文件
java:51个
2星 需积分: 3 39 下载量 36 浏览量
2011-06-17
13:12:29
上传
评论 1
收藏 31KB RAR 举报
温馨提示
fusionchart的java简单封装fusionchart的java简单封装fusionchart的java简单封装fusionchart的java简单封装fusionchart的java简单封装fusionchart的java简单封装
资源推荐
资源详情
资源评论
收起资源包目录
fusionchart的java简单封装(参考学习用).rar (51个子文件)
fusionchart
dataset
LinkInfo.java 1KB
ChartOptions.java 5KB
test
ChartTest.java 4KB
paint
DrawFusionFreeMuti.java 2KB
DrawFusionV3Muti.java 3KB
DrawFusion.java 8KB
DrawFusionV3.java 2KB
IBaseDraw.java 668B
DrawFusionFree.java 2KB
tools
ImageGenerator.java 2KB
factory
FusionFactory.java 4KB
charts
free
BaseChartSingle.java 1KB
DoughnutChart3D.java 564B
StackedBarChart3D.java 586B
StackedColumnChart3D.java 587B
PieChart3D.java 545B
StackedBarChart.java 574B
StackedColumnChart.java 573B
CombineBarAndLineChart.java 573B
BaseChart.java 2KB
ThermometerChart.java 533B
BarChart3D.java 559B
BarChart.java 517B
ColumnChart.java 512B
LineChart.java 508B
PieChart.java 531B
BaseChartMuti.java 1KB
DoughnutChart.java 550B
ColumnChart3D.java 526B
AreaChart.java 510B
StackedAreaChart.java 573B
v3
BaseChartSingle.java 1KB
DoughnutChart3D.java 562B
StackedBarChart3D.java 584B
StackedColumnChart3D.java 585B
PieChart3D.java 543B
StackedBarChart.java 572B
StackedColumnChart.java 571B
CombineBarAndLineChart.java 571B
BaseChart.java 2KB
ThermometerChart.java 531B
BarChart3D.java 557B
BarChart.java 515B
ColumnChart.java 510B
LineChart.java 506B
PieChart.java 529B
BaseChartMuti.java 1KB
DoughnutChart.java 548B
ColumnChart3D.java 524B
AreaChart.java 508B
StackedAreaChart.java 571B
共 51 条
- 1
资源评论
- liaoliao20102013-06-20cn.com.jdlssoft.daup.fxtool.chartShow.core cn.com.jdlssoft.daup.fxtool.chartShow.common 这两个包没有放进来。你忽悠老百姓的吗
- hangle_shi2013-09-10缺少相关包
java_zhaolong
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功