【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
xxxChart重写requiredCSS.
首先:实现前期准备中第三步中后台图表xxxChart的抽象方法 hyperLinkParas。
其次:重写前期准备第五步中 图表界面插件接口xxxUI中的方法getAttrPaneArray
最后:在前期准备第二步写的前端图表对象xxxWrapper中的初始方法_init中 绑定事件处理函数getLinkFun。ps:这边是echarts的定义事件接口,不同前端库实现不同。比如fr自带vancharts是option.onClick = this.getLinkFun();
首先:在前期准备第二步写的前端图表对象xxxWrapper中添加方法_refresh。方法体 调用所用图表库的刷新图表接口。
其次:和超链中的其次一样。
重写前期准备第五步中 图表界面插件接口xxxUI中的方法getAttrPaneArray
大小颜色标题图例等等。栗子:标题。注意:添加属性需要完善read&&write&clone&equals&populate&update,缺一不可。
首先:在前期准备中第三步中xxxChart中添加属性stringTitle & 重写readAttr和writeAttr方法&clone&equals&addJSON添加到前台option中。如果添加的属性不是基本数据类型,需要重写方法readXML&writeXML。
其次:定义标题面板xxxTitlePane。继承类ExtendedScrollPane。实现方法 populateBean&updateBean&createContentPane&title4PopupWindow。注意:泛型DemoChart。
再次:定义样式面板xxxStylePane。实现抽象方法initPaneList(返回样式配置面板数组)。
最后:重写前期准备第五步中 图表界面插件接口xxxUI中的方法getAttrPaneArray
因为上一步骤配置标题的已经写好。要想标题可以使用公式。只需要实现前期准备中第三步中xxxChart的抽象方法 formulas。返回所有需要处理的公式属性集合。
实现前期准备中第三步中xxxChart的抽象方法 createExportProcessor
说明:
使用webgl flash等phantomjs不支持的前端库,只能使用web端导出用前端图表库导出接口。返回new JSExportProcessor()。
非webgl等,即可使用phantomjs导出,也可使用前端库的导出接口。返回new PhantomExportProcessor() 或者 new JSExportProcessor()。
protected ExportProcessor createExportProcessor() { return new JSExportProcessor(); }
ps:如果返回的是JSExportProcessor,必须:需要在前期准备第二步写的前端图表对象xxxWrapper中添加方法_exportImage,调用所用图表库的导出图片接口;_exportInit,图表初始接口+导出特殊处理,这个可以不加,不加的情况使用_init
ps:如果选择的是PhantomExportProcessor,可选:这时候如果你希望设计器展示的图表不仅仅是一张固定的图片,设置的样式属性(除了数据配置,我们暂时称其他属性为样式属性)可以随着你的配置实时改变,你可以重写前期准备第三步后台图表对象xxxChart中的designerDataConfig方法(固定数据配置)。
首先,定义xxxTypePane,继承ExtendedTypePane。重写 getTypeIconPath(图标路径)&& getTypeTipName(tooltip)方法。
其次,重写前期准备第五步中 图表界面插件接口xxxUI中的方法getPlotTypePane.返回上面的xxxTypePane。
@Override public AbstractChartTypePane getPlotTypePane() { return new DemoTypePane(); }
首先,定义枚举类型yyyType。
其次,类似此页面中的3更多样式配置中属性的添加,在前期准备中第三步中xxxChart中添加属性themeType & 重写readAttr和writeAttr方法&clone&equals&addJSON添加到前台option中。
最后,重写上一步骤xxxTypePane中的getTypeIndex && setType(界面到图表对象的一个存取映射)。注意:泛型DemoChart
首先,在xxxChart里面添加属性 threeDimensional。重写相关方法。
其次,xxxTypePane中添加组件以及重写一些方法。
DemoUI中getChartDataPane 返回null即可。当然,getTableDataSourcePane && getReportDataSourcePane 也无需定义了,可返回任意值。
首先,DemoDataConfig中添加自定义属性targetName,补充相应方法set&get&read&write&clone&hashcode&equals.
其次,数据集数据源面板DemoTableDataPane中添加 private UITextField targetName; 补充相关方法fieldLabels&populate&update。重点:重写方法fieldComponents,按照界面组件顺序返回一个有序的组件数组。(单元格数据源面板同理)。
最后,DemoChart的addJSON中将此属性根据前台接口加到json中。
首先,DemoDataConfig中添加两个字段属性expect actual,并添加响应get set 方法,补全read write datasetFields clone hashcode equals方法。
其次,DemoTableDataPane中声明下拉框组件expect&actual 补全方法labels componnets combobox populate update。
注意populate对应字段要调用populateFunctionField&update对应字段要调用updateFunctionField。
最后,在chart的addjson里面,获取相应字段的values即可。
首先,DemoTableDataPane中复写createExtendedCustomFieldComboBoxPane方法,返回new ExtendedCustomFieldComboBoxPane()。
最后,在DemoChart中,直接获取相应的values即可。
使用组件 UIComboBoxWithNone即可。
在前期准备第二步写的前端图表对象xxxWrapper中添加方法_emptyData。根据参数options返回是否是空数据。
_emptyData: function (options) { return options.series.data.length === 0; }
4 Comments
dashixionglihai
建议截图说明一下,不然不知道你说的是哪里?
Anonymous
我觉得应该解释一下是否要写两次文件,比如超链和自动刷新都要重写方法getAttrPaneArray,是否需要创建两个不同的java文件XXXUI
zheng-郑潇
不需要的
Anonymous
说实话,文档写的真不行