Versions Compared

Key

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

...

第四步:查找到自定义控件所需的几个接口
控件接口:其中b和c都是继a接口的

接口描述编号
com.fr.design.fun.ParameterWidgetOptionProvider参数界面控件接口a
com.fr.design.fun.CellWidgetOptionProvider单元格控件接口b
com.fr.design.fun.FormWidgetOptionProvider表单控件接口c
com.fr.stable.fun.JavaScriptFileHandler用于引入js文件的接口d
com.fr.stable.fun.CssFileHandler用于引入css文件的接口e

第五步:开始建立源文件目录,这个例子的package目录为com.fr.plugin.widget.grid

第六步:建立单元格控件接口的一个实现类com.fr.plugin.widget.grid.CellGridImpl

...

Code Block
languagexml
<extra-designer>
    <ParameterWidgetOptionProvider class="com.fr.plugin.widget.grid.GridImpl"/>
    <FormWidgetOptionProvider class="com.fr.plugin.widget.grid.GridImpl"/>
    <CellWidgetOptionProvider class="com.fr.plugin.widget.grid.CellGridImpl"/>
</extra-designer>

经过前面13步之后,整个开发就结束了。

完整源码:http://wwwgit.finedeveloposchina.com:2015net/projectsfanruan/FSplugins-free/repostree/plugins/browsemaster/plugin-paragrid

...

开发要点

1.单元格控件的设置界面类需要继承BasicBeanPane并且需要实现DicPaneAndTreePaneCreator接口
2.表单和参数控件设置界面类需要继承XWidgetCreator类,这里由于和下拉框比较相似,所以继承了XWidgetCreator的子类XWriteAbleRepeatEditor
3.表单和参数控件属性编辑器,分为基本类型(数字、布尔值、字符串)和自定义类型(其他),基本类型是会自定调用系统内置的编辑器,自定义类型则需要继承AbstractPropertyEditor类
4.ComboGrid类public String getXType()方法的返回值要和combogrid.js中注册JS对象的值一致:$.shortcut('combogrid', FR.ComboGrid);
5.控件在web端展现的基本JS结构如下

...