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

Page tree

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

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

IconProvider接口主要用于对产品中的内置按钮图标进行替换或者扩展。主要场景为修改模板相关按钮(工具栏按钮、报表按钮)的图标。

三、接口介绍

IconProvider.java
package com.fr.stable.fun;

import com.fr.stable.fun.mark.Mutable;

import java.util.Map;

/**
 * 资源图片接口
 * Created by zack on 2016/2/24.
 */
public interface IconProvider extends Mutable {

    String XML_TAG = "IconProvider";

    int CURRENT_LEVEL = 1;

    /**
     * 需要加载的图标key值建议跟插件id相关,避免和系统资源文件同名覆盖
     *
     * @return 需要加载的图标集合
     */
    Map<String, String> map4Icons();


}


四、支持版本

产品线

版本

支持情况

备注

FR8.0支持
FR9.0支持
FR10.0支持

五、插件注册

plugin.xml
<extra-core>
        <IconProvider class="your class name"/>
</extra-core>


六、原理说明

该接口在需要调用的地方通过:Set<IconProvider> iconProviders = PluginModule.getAgent(PluginModule.ExtraCore).getArray(IconProvider.XML_TAG);获取到插件中所有申明的内置图标扩展实例。

在产品中主要通过以下方式使用:IconManager提供了所有的内置图标的申明,在前端所有元素class包含 x-emb-$NAME的($NAME为具体扩展名)所有图标均由IconManager在后台通过$NAME的具体名称进行映射到对应的图标资源。前端展现时通过先把所有内置图标和申明的插件扩展图标按申明顺序拼接成一个大的图标集合,在css中通过具体的坐标进行展示生效。

七、特殊限制说明

map4Icons返回的结构为 map<$NAME,path>  ,其中$NAME表示该图标的样式类名申明,使用大小写字母和数字以及一般连词半角符号定义。path表示该图标的具体图片资源路径,图片大小为16*16的png资源。

所有当前内置的图标映射均可在 IconManager找到,可根据具体的$NAME进行替换。也可自行扩展了,在模板设计器的按钮图标选择中选择自定义扩展的图标

八、常用链接

demo地址:demo-icon-provider

九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

暂无

  • No labels