【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
在设计器预览按钮菜单下增加一种预览方式,可用于携带默认参数的预览,比如增加一种不分页预览,就是加一个参数__bypagesize__=false。
package com.fr.design.fun; import com.fr.design.mainframe.JTemplate; import com.fr.stable.fun.mark.Mutable; import java.util.Map; /** * @author richie * @date 2015-03-19 * @since 8.0 * 自定义预览方式接口 */ public interface PreviewProvider extends Mutable, Filter<JTemplate>{ String MARK_STRING = "PreviewProvider"; int CURRENT_LEVEL = 1; /** * 下拉弹出菜单的名字 * @return 弹出菜单名字 */ String nameForPopupItem(); /** * 下拉弹出菜单的图标路径 * @return 图标路径 */ String iconPathForPopupItem(); /** * 大图标路径 * @return 大图标路径 */ String iconPathForLarge(); /** * 点击下拉菜单时触发的事件 * @param jt 当前的模板对象 */ void onClick(JTemplate<?, ?> jt); /** * 用于标记预览类型的整数 * @return 预览类型 */ int previewTypeCode(); /** * 该种预览方式所携带的默认参数集合 * @return 参数集合 */ Map<String, Object> parametersForPreview(); }
<extra-designer> <PreviewProvider class="com.fr.plugin.xxx.youclassname"/> </extra-designer>
/** * 条件过滤接口 */ public interface Filter<T> { boolean accept(T var1); }
注:不同的模板支持不同的预览方式,比如你的插件实现只支持表单预览,那需要重写accept方法,accept方法的传参为当前模板,重写accept方法判断当前模板是否为表单,返回true,当前实现生效,返回false,当前实现被过滤。
接口默认实现是支持报表不支持表单