【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

FineReport应开放的接口的介绍。

接口分类

从语言类型上分为Java接口、JavaScript接口。Java接口主要提供服务器、设计器上的接入点,而JavaScript接口则提供Web页面上的接入点。

从模块划分上分为核心接口、核心设计器接口、图表接口、图表设计器接口、报表接口、表单接口以及平台接口。

接口规范

除了个别接口外,每一个开发接口都有一个对应的抽象类存在,例如

com.fr.stable.fun.HighlightProvider

有一个对应的抽象类

 

com.fr.stable.fun.impl.AbstractHighlightProvider

 

使用的时候尽量去继承抽象类,因为这样可以比较简单的保持后续的兼容性,接口更改以后不需要更改原有的插件代码也能正常的运行。

接口命名含义

一般来说,以Provider结尾的接口表示可以共存多个,而以Processor结尾的接口表示只有一个能生效,其他的就根据具体文档来决定。所以在使用插件的时需要注意在使用只能有一个生效的接口的时候,可能会和其他插件冲突。

插入点设计原则

由于不可共存接口(com.fr.stable.fun.mark.Immutable)在同一时间只能有一个生效,但是实际是有可能安装了多个使用了相同接口的插件,这个时候,就需要根据插件id来判断使用哪一个,以登录界面为例子:

LoginUIProcessor loginUIProcessor = ExtraPlatformClassManager.getInstance().getSingle(LoginUIProcessor.XML_TAG, pluginId);
  • No labels