【仅供内部供应商使用,不提供对外解答和培训】
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
public class YourCharts extends Charts {
@Override
public JSONObject
toJSON(Repository repo) throws JSONException {
//通过getChartData()得到你需要的数据,把这些数据转成自定义的json格式,前端会收到这个json
return null;
}
@Override
public String
getChartID() {
//这里返回值与plugin.xml配置中的plotID一致。
return yourPlotID;
}
@Override
public void
writeXML(XMLPrintWriter xmlPrintWriter) {
//图表属性配置信息会被存储在xml中,不考虑自定义图表样式,不用实现。
}
@Override
public void
readXML(XMLableReader xmLableReader) {
//和writeXML一样,这里是读配置信息
}
}
第二步,继承AbstractIndependentChartsProvider类,实现以下几个方法:
getChartName():返回插件的名字,供报表页面新增图表使用
getChartTypes():返回上一步创建的存储图表数据的类
getRequiredJS():你的图表交互的js
getWrapperName():JS对象名,该对象一般是一个函数,执行后会在给定的dom中绘制图表
getChartImagePath():图表的图标,文件存在images下面
currentAPILevel():当前接口的API等级用于判断是否要升级插件
public class YourChartsProvider extends
AbstractIndependentChartsProvider {
@Override
public String
getChartName() {
return "你的图表插件名字";
}
@Override
public Chart[]
getChartTypes() {
//返回上一步创建的存储图表数据的类,即YourCharts
return new
YourCharts[]{new YourCharts()};
}
@Override
public String[]
getRequiredJS() {
//你的图表交互的js,所依赖的其他js文件,比如echarts.js在另外地方配置,后边会提到
return new
String[]{
"/com/fr/plugins/xxx/web/echarts.bridge.js"
};
}
@Override
public String
getWrapperName() {
//JS对象名,该对象一般是一个函数,执行后会在给定的dom中绘制图表
return
"EChartsFactory";
}
@Override
public String
getChartImagePath() {
//你的图表插件的图标
return
"com/fr/plugins/xxx/images/xxx.png";
}
@Override
public int
currentAPILevel() {
//当前接口的API等级用于判断是否要升级插件
return
CURRENT_API_LEVEL;
}
}
}
|