概述
实体定义完成之后,我们就可以来定义组件了,这里指的组件就是Dorado7中各种组件,定义方式与Dorado7 IDE非常类似,组件定义也采用的是树形结构,这样就可以实现组件的嵌套定义。同样,定义组件前要定义存放组件的包,包定义好之前就可以双击进入要定义的组件页面啦。
使用
组件定义界面如下图所示:
添加组件同样采用右键方式实现,可以看到,Dorado7当中绝大多数组件都可以在这里定义,添加完组件后可以定义其属性及事件,如果当前组件为容器类组件,还可以设置其布局方式,如果是数据敏感组件,还可以设置其绑定的实体,如果是Button类组件还可以与具体的动作绑定等。
组件的定义,需要您熟悉Dorado7组件的各种属性及事件。
这里需要注意的是,和Dorado7 IDE一样,如果为AutoForm或DataGrid选择对应的实体,那么会自动创建AutoForm下面的FormElement以及DataGrid下的column,这样就可以极大提高页面的开发效率。
扩展
在使用过程当中,如果您发现Dorado7中新增加一些组件,但在目前的Rapido中还未将其包含进来,那么您可以自己动手编写接口的实现将其添加到Rapido环境当中。
要在Rapido中添加一个新的组件,需要实现两个接口,分别是com.bstek.bdf.rapido.component.ISupport和com.bstek.bdf.rapido.xml.IConverter。ISupport用于定义组件的一些显示信息,其内容如下:
package com.bstek.bdf2.rapido.component; import java.util.Collection; import com.bstek.bdf2.rapido.component.property.PropertySupport; import com.bstek.bdf2.rapido.domain.ComponentInfo; import com.bstek.bdf2.rapido.domain.ComponentProperty; import com.bstek.bdf2.rapido.domain.Entity; /** * 用于定义组件显示信息 * @author jacky.gao@bstek.com * @since 2012-8-25 */ public interface ISupport { /** * 组件的显示名称 * @return 具体要显示的名称 */ String getDisplayName(); /** * Dorado7中该组件类的完全限定名 * @return 类全名 */ String getFullClassName(); /** * 组件显示图标 * @return 图标地址 */ String getIcon(); /** * 对组件支持的某些属性进行特殊处理 * @return PropertySupport对象的集合 */ Collection<PropertySupport> getPropertySupports(); /** * 当前组件下可以使用哪些子组件 * @return ISupport对象集合 */ Collection<ISupport> getChildren(); /** * 根据选择的实体自动创建子组件 * @param entity 选择的实体对象 * @return 子组件集合 */ Collection<ComponentInfo> createChildrenByEntity(Entity entity); /** * 根据组件ID创建组件常用属性 * @param componentId 组件ID * @return 组件属性集合 */ Collection<ComponentProperty> createComponentPropertysByComponentId(String componentId); /** * @return 是否支持实体 */ boolean isSupportEntity(); /** * @return 是否支持布局 */ boolean isSupportLayout(); /** * @return 是否支持动作 */ boolean isSupportAction(); /** * @return 是否为容器类型组件 */ boolean isContainer(); /** * @return 是否可以独立存在 */ boolean isAlone(); }
ISupport接口实现编写完成之后需要配置到Spring环境当中,这样在Rapido组件编辑页面当中就可以看到定义的组件信息。在页面预览时如果希望定义的组件能被正确输出,我们还需要定义一个对应的IConverter接口实现。IConverter接口代码如下:
package com.bstek.bdf2.rapido.xml; import org.dom4j.Element; import com.bstek.bdf2.rapido.domain.ComponentInfo; import com.bstek.dorado.idesupport.model.RuleSet; /** * 用于view.xml页面生成时,输出组件对应的xml信息 * @author jacky.gao@bstek.com * @since 2012-8-25 */ public interface IConverter{ /** * 根据给定的组件信息生成组件对应的XML * @param component 组件信息 * @param ruleSet 组件对应的Dorado7的规则信息 * @param rootElement view.xml文档的根 * @return 返回组件的Dom4j的Element对象 * @throws Exception */ Element convert(ComponentInfo component,RuleSet ruleSet,Element rootElement) throws Exception; /** * 当前Converter是否支持给定的组件 * @param component 给定要判断的组件 * @return 是否支持 */ boolean support(ComponentInfo component); }
IConverter编写完成后,同样需要配置到Spring环境当中,这样新增组件的工作就完成了。