Wabacus 框架开发指南(一)


第 1 页 Wabacus 框架开发指南(一) 共 200 页 Copyright (C) 2010-2012 星星<349446658@qq.com> Wabacus 框架开发指南(一) 作者:星星 二○一二年四月十七日 第 2 页 Wabacus 框架开发指南(一) 共 200 页 Copyright (C) 2010-2012 星星<349446658@qq.com> 一、 Wabacus组件 1.1 概述 在 Wabacus 框架中,组件分为两种:容器与应用: 容器:用来存放容器与应用; 应用:配置具体应用,最常见的应用就是报表和表单。 1.2 组件公共特性 每个组件都有一个专门的组件标签,所有关于此组件的配置都配置在此标签中,包括此组件 的属性和子标签。这里介绍的是所有组件都包括的公共特性:即公共属性和公共子标签,除此之 外,每个组件类型还有自己特有的属性或子标签。 1.2.1 组件公共属性 不管什么类型的容器还是应用,在其组件标签中都包括如下属性:  id 属性:标识当前组件,对于中的 id 属性,必须确保整个项目中,所有页面对 应的的 id 属性保持唯一;对于每个内部的容器与组件的 id,必须确保同 一个中所有子容器或组件的 id 保持唯一。  top 属性:配置距离同一容器中上面组件的间距,如果上面没有组件,则距离父容器上 边框的间距。  left 属性:距离同一容器中左边组件的间距,如果左边没有组件,则距离父容器左边框 的间距  right 属性:距离同一容器中右边组件的间距,如果右边没有组件,则距离父容器右边框 的间距  bottom 属性,底部间距  width 属性:组件宽度  height 属性:组件高度  align 属性:组件水平对齐方式  valign 属性:组件垂直对齐方式,可配置值为 top、middle、bottom,默认值为 top。当 父容器配置了高度,且当前组件高度小于父容器高度时,此属性可以用来指定当前组 件在父容器中的位置,默认是居顶对齐。  title 属性:组件标题  subtitle 属性:配置组件显示在主标题(即上面的 title 属性配置值)旁边的副标题  titlealign 属性:标题对齐方式,默认为 left(对于容器,标题对齐方式更多,请参考后 面在容器中关于它的介绍)  parenttitle 属性:如果父容器需要用到当前子组件的 title,且 这 个 title 与子组件自己显示 的 title 不同,或者当前子组件不想显示 title,则通过子组件的 parenttitle 属性配置标题 供父容器使用。parenttitle 与 title 配置方式完全一样。 目前只有 tabpanel 容器会用到子组件的 parenttitle 属性,其它容器都不会直接用到, 但如果其父组件是 tabpanel,且当前容器没有配置自己的 parenttitle/title,则会取用其子 组件的 parenttitle/title 给其父 tabpanel 容器使用。 父容器在取用子容器属性的流程如下所示: 1) 取用子组件的 parenttitle,如果不为空,则返回;如果为空,转第 2)步; 2) 取用子组件的 title 属性,如果不为空,则返回,如果为空,转第 3)步; 3) 如果子组件也是一个容器,则再取其子组件的 parenttitle/title 属性。取到就返回; 第 3 页 Wabacus 框架开发指南(一) 共 200 页 Copyright (C) 2010-2012 星星<349446658@qq.com> 4) 如果子组件不是一个容器,或是一个容器,但没有取到其子组件的 parenttitle/title 属性(包括递归取其子子组件的 parenttitle/title 也没取到),如果当前容器是 vpanel、 hpanel 这两种,且配置了多个组件,则再依次取其第二个、第三个子组件的 parenttitle/title 属性配置值,取的规则与上面介绍的取其第一个子组件的完全一样。 5) 如果递归取到最后都没有取到,则返回空字符串  parentsubtitle 属性:当本组件的父容器是 tabpanel 时,配置其对应的 tabitem 显示的副标 题,这样当选中此组件对应的 tabitem 时,就会在旁边显示副标题。注意:当 tabitem 的直接子组件没有配置 parentsubtitle 时,则选中此 tabitem 时就不会显示副标题,而不 不会像 parenttitle 一样,会递归从其子子组件中找是否有配置 parentsubtitle。  onload 属性:配置当前组件加载完后要执行的客户端 js 方法,可以配置多个,用分号分 隔,每次加载组件时,它们会依次执行。 onload 方法签名为: function 方法名(pageid,当前组件 id){} 框架会自动通过上面两个参数传入当前组件的相应信息。 注意:上面的 title、subtitle、parenttitle、parentsubtitle 四个属性,即支持配置常量,又支持 配置变量,还支持它们的组合,其中支持的变量可以是来自 url、request、session 中的数据。关 于这四个属性的详细介绍,请参看《Wabacus 框架标签手册》文档中关于标签的此四个 属性的介绍,虽然那里介绍的是报表的这四个属性的用法,但对所有组件,包括所有容器和报表 类型都有效。它们也支持通过${key}、i18n{key}的方式取用普通资源文件和国际化资源文件中定 义的真正值。 1.2.2 组件公共子标签 这里介绍所有组件都可以配置的子标签,包括如下几种:
子标签 用于配置显示在组件头部的显示内容,可配置值包括如下类型:  普通字符串/html 代码 此时将要显示的 html 代码或者普通字符串配置在
标签内容中,例如某个组件 配置的
子标签如下所示:
此报表所有按钮都隐藏掉,包括系 统的“搜索”、“导出Excel”、“导出Word”按钮和用户自己配置的按钮都没显示出 来]]>
此时会将上面配置的 html 代码显示在组件的顶部位置。  普通字符串/html 代码的资源项 不直接将顶部显示内容配置在
中,而是引用定义在资源文件中的资源项,此资 源项是字符串类型,这里分两种: 如果是引用定义在普通资源文件中的资源项,则配置格式为:
${key}
如果是引用定义在国际化资源文件中的资源项,则配置格式为:
i18n{key}
其中的 key 即为资源项的 key。 注意:在使用这种方式时,
标签内容不能再出现其它普通字符串,比如配置为:
${key}xxxx
,则只会当作一个普通字符串来显示,不会引用 key 对应 第 4 页 Wabacus 框架开发指南(一) 共 200 页 Copyright (C) 2010-2012 星星<349446658@qq.com> 的资源项的内容来显示。  静态模板资源项 这里是引用定义在资源文件中的静态模板资源项显示在组件顶部,也是配置为
${key}
的方式,不过这里的 key 对应的资源项是一个定义静态模板的资源 项,静态模板资源项与普通的字符串或 HTML 代码资源项有如下两个区别: 1 )、定义静态模板资源项的 的 type 必须指定为: type="com.wabacus.config.resource.TemplateRes" 2)、静态模板中可以出现框架提供的自定义标签,用于显示动态内容。当然也可以不出 现,此时就相当于普通的 HTML 代码了。 例如某个静态模板资源项定义如下所示:
测试使用html模板布局Header部分 DATA:::第一条记录工号:;姓名::
本页最后一条记录工号:;姓名:
]]>
就可以通过 headertemplatepage1.report1.header 来引用此资源项进行显示。  静态模板文件 在
中还可以引用某个 html 格式的静态模板文件,在此静态模板文件中可 以定义普通 HTML 代码和框架提供的自定义标签。 如果要引用某个静态模板文件,则
配置格式包括如下几种:  配置为
classpath{path}
形式 引用存放在 classpath 上的静态模板文件进行显示  配置为
absolute{path}
形式 以绝对路径的方式引用静态模板文件  配置为
relative{path}
形式 以相对路径的方式引用要用到的静态模板文件。 关于静态模板的更多介绍,请参看后面的模板一章。 第 5 页 Wabacus 框架开发指南(一) 共 200 页 Copyright (C) 2010-2012 星星<349446658@qq.com>