Dorado 5 : 13.3.角色配置文件 (RF1)

角色配置文件是一个与视图模型同名的xml描述文件,一个视图模型最多只有一个角色配置文件。如视图模型文件名为Employee.view.xml,则角色配置文件名就必须为Employee.role.xml。角色配置文件用来描述各个角色的页面具体特征,例如dataset的只读属性,组件的可视化属性等。参考以下的一个xml描述文件:

<?xml version="1.0" encoding="UTF-8"?>
<roles>
<role name="page_role1">
<el>button2.setIgnored(true)</el>
<el>button3.setIgnored(true)</el>
<el>menubar1.setIgnored(true)</el>
</role>
<role name="page_role2" template="page_role1">
<el>tableEmployee.setIgnored(true)</el>
</role>
</roles>

在该文件中配置了两个角色page_role1和page_role2.其中page_role2的template属性指定page_role2的基础模板为page_role1,默认自动继承page_role1中的配置信息。Role节点只有两个属性name和template,其中name要求在整个配置文件中保持唯一性,不允许重复出现。Template用于指定模板,可以同时制定多个模板,多个模板间用逗号(",")隔开,例如如下代码:

<role name="page_role3" template="page_role1,page_role2">

page_role3的template设定表示page_role3自动拥有page_role1和page_role2的所有配置属性。
page_role节点下的基本元素为<el>节点,el节点中使用EL表达式描述和控制视图模型中的dataset以及control的属性,EL表达式的详细使用参考第10章EL表达式
以上范例的page_role1代码表示访问本视图时button2,button3,menubar1全部忽略(ignored=true则dorado页面不生成页面元素到客户端)
由于EL表达式的灵活性,我们可以实现很多的页面元属控制,可以通过参考Server-api文档中Dataset以及各个Control的详细API文档,我们都可以在角色配置文件中通过EL表达式调用设定。如:

<?xml version="1.0" encoding="UTF-8"?>
<roles>
<role name="page_role1">
<el>button2.setValue("submit")</el>
<el>button3.setToolTip("tip: query employee")</el>
<el>menubar1.setMenu("menu2")</el>
</role>
<role name="page_role2" template="page_role1">
<el>tableEmployee.setWidth("100%")</el>
</role>
</roles>