【仅供内部供应商使用,不提供对外解答和培训】
...
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; } } } |