页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

1、简介

Smartbi提供了一个特定的接口smartbi.framework.IModule,实现这个接口,并在扩展包的配置文件applicationContext.xml中将module注册到Framework和RMIModule(见扩展插件开发基础(内含目录及配置文件介绍)),这样smartbi在系统启动时就会调用自定义module的activate方法执行一些初始化操作,并且这个module中的共有方法都可以在前端异步调用。通常有以下几个主要场景需要自定义module:

1,前端需要调用后端方法执行某个特定的逻辑,就是前后端有异步交互需求时,需要自定义module,在module里实现方法,前端使用util.remoteInvoke(className, methodName, paramArray, callback, that, noLookup)调用module的方法,详细见下面示例;

2,需要编写升级类(或者系统启动成功后执行的升级类)时也需要先写个module;

3,需要在扩展包中执行一些系统启动初始化的操作;

面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid
文档目录:

目录

 需要知道的特性可以在module中直接引用公共组件,譬如dao(知识库操作)、state(会话状态)、catalogtree(资源树操作)、usermanager(用户管理),常用组件对应的接口类型见扩展插件开发基础(内含目录及配置文件介绍)里的说明,本示例如下面示例就有引用catalogtree组件(自定义module里面定义了catalogTreeModule属性)。里的说明,如下面示例就有引用catalogtree组件(自定义module里面定义了catalogTreeModule属性)。

代码块
languagejava
linenumberstrue
package smartbi.framework;
 
/**
 * 模块接口定义。
 * 每个模块必须有一个对象实现这个接口,这个对象称为模块控制对象;
 * 除了实现这个接口,模块控制对象还应该实现一个服务定义接口。所以它的主要责任包括:
 *  1)作为模块的激活器
 *  2)作为对外的服务对象
 */
public interface IModule {
	void activate();//模块控制对象自己激活自己
}

 

2、示例说明

打开"http://localhost:8080/smartbi/vision/test/extsample8.html"并点击页面中的按钮,将会看到类似下面的结果:


修改Spring声明文件applicationContext.xml 将自定义Module对象extSample8Service配置到扩展插件的spring声明文件中。通过自定义Module引用系统内部模块,实现系统内部方法的调用。 

代码块
languagexml
linenumberstrue
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
		<bean id="rmi" class="smartbi.framework.rmi.RMIModule" factory-method="getInstance">
                 <property name="modules">
                          <map>
                                   <entry><key><value>ExtSample8Service</value></key><ref bean="extSample8Service" /></entry>
                          </map>
                 </property>
        </bean>
        <bean id="extSample8Service" class="smartbi.ext.sample8.ExtSample8Service" factory-method="getInstance">
		</bean>
</beans>


3、示例代码下载

示例代码下载: Sample8.rar