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

Page tree

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

Skip to end of metadata
Go to start of metadata

接口作用

在参数界面、单元格或者表单控件选择中增加一个新类型的控件。

接口内容

参数界面
package com.fr.design.fun;

import com.fr.form.ui.Widget;
import com.fr.stable.fun.mark.Mutable;

/**
 * @author : richie
 * @since : 8.0
 * 自定义参数界面控件
 */
public interface ParameterWidgetOptionProvider extends Mutable {

    String XML_TAG = "ParameterWidgetOptionProvider";

    int CURRENT_LEVEL = 1;


    /**
     * 自定义参数控件的实际类,该类需要继承自com.fr.form.ui.Widget
     * @return 控件类
     */
    Class<? extends Widget> classForWidget();

    /**
     * 自定义参数控件的设计界面类,该类需要继承自com.fr.form.designer.creator.XWidgetCreator
     * @return 控件设计界面类
     */
    Class<?> appearanceForWidget();

    /**
     * 自定义参数控件在设计器界面上的图标路径
     * @return 图标所在的路径
     */
    String iconPathForWidget();

    /**
     * 自定义参数控件的名字
     * @return 控件名字
     */
    String nameForWidget();
}
单元格
package com.fr.design.fun;

import com.fr.design.beans.BasicBeanPane;
import com.fr.form.ui.Widget;
import com.fr.stable.fun.Level;

/**
 * @author richie
 * @date 2015-01-29
 * @since 8.0
 * 格子中的自定义控件接口
 */
public interface CellWidgetOptionProvider extends ParameterWidgetOptionProvider {

    String XML_TAG = "CellWidgetOptionProvider";

    /**
     * 自定义格子控件的设计界面类
     * @return 控件设计界面类
     */
    Class<? extends BasicBeanPane<? extends Widget>> appearanceForWidget();

}
表单
package com.fr.design.fun;

/**
 * @author richie
 * @date 2015-03-23
 * @since 8.0
 * 表单控件
 */
public interface FormWidgetOptionProvider extends ParameterWidgetOptionProvider {

    String XML_TAG = "FormWidgetOptionProvider";

    /**
     * 组件是否是布局容器
     * @return 是布局容器则返回true,否则返回false
     */
    boolean isContainer();

}

注册方式

参数界面
<extra-designer>
   <ParameterWidgetOptionProvider class="com.fr.plugin.xxx.youclassname"/>
</extra-designer>
单元格
<extra-designer>
   <CellWidgetOptionProvider class="com.fr.plugin.xxx.youclassname"/>
</extra-designer>
表单
<extra-designer>
   <FormWidgetOptionProvider class="com.fr.plugin.xxx.youclassname"/>
</extra-designer>
  • No labels