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

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titlePreviewProvider
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();

}

...

Code Block
languagexml
<extra-designer>
   <PreviewProvider class="com.fr.plugin.xxx.youclassname"/>
</extra-designer>

父接口

Code Block
languagejava
/**
* 条件过滤接口
*/
public interface Filter<T> {
    boolean accept(T var1);
}

注:不同的模板支持不同的预览方式,比如你的插件实现只支持表单预览,那需要重写accept方法,accept方法的传参为当前模板,重写accept方法判断当前模板是否为表单,返回true,当前实现生效,返回false,当前实现被过滤。

接口默认实现是支持报表不支持表单