3.6.6. screens.xml (历史版本)
使用从 v.7.0 新 API 写的界面不需要注册。而是通过 |
这种类型的文件是在 Web 客户端的通用用户界面中用来注册界面的 XML 描述。
XML schema: http://schemas.haulmont.com/cuba/7.2/screens.xsd。
文件路径通过 cuba.windowConfig 应用程序属性指定。当在 Studio 创建新项目时,会在 web 模块包的根目录创建 web-screens.xml
文件,比如 modules/web/src/com/company/sample/web-screens.xml
。
这个文件有如下结构:
screen-config
– 根节点元素。包含如下元素:
screen
– 界面描述元素。screen
属性:id
– 界面标识符,可以使用程序代码的标识符(比如在Frame.openWindow()
和其它方法中),也可以是用 menu.xml 中的标识符。class
– 如果没设置template
属性,使用此属性指定实现了Callable
或者Runnable
接口的类。如果是实现了
Callable
接口,call()
方法应当返回一个Window
的实例,这个实例会返回给调用段代码,作为WindowManager.openWindow()
的结果。这个类可以包含带有字符串参数的构造器,通过嵌套的param
元素定义(参考下面)。agent
- 如果使用同一个id
注册了多个模板(templates),使用这个属性来选择打开哪个模板。有三种标准的代理(agent)类型:DESKTOP
桌面,TABLET
平板,PHONE
手机。这些类型支持按照当前设备和显示参数选择界面模板。参考界面代理了解细节。multipleOpen
– 可选属性,允许设置界面可以多次打开。如果没设置或者设置成false
,并且由此标识符定义的界面已经在主窗口打开了,系统会显示已经存在的界面,而不会打开一个新的。如果设置成true
,则可以打开任意数量的界面。
`screen` 的元素:
- `param` – 以 map 的形式定义界面参数传入[控制器]($76734a8e68186d1c.md)的 `init()` 方法。而通过调用 `openWindow()` 方法传递的参数,会覆盖 `screens.xml` 中定义的相应名称的参数。
`param` 属性:
- `name` – 参数名称
- `value` – 参数值。字符串类型,如果是 `true` 或者 `false`,则会被转换成相应的 `Boolean` 值。
include
– 包含一个不通的文件,比如screens.xml
。include
属性:file
– 按照 Resources 接口规则定义的文件路径。
screens.xml
文件示例:
<screen-config xmlns="http://schemas.haulmont.com/cuba/screens.xsd">
<screen id="sales_Customer.lookup" template="/com/sample/sales/gui/customer/customer-browse.xml"/>
<screen id="sales_Customer.edit" template="/com/sample/sales/gui/customer/customer-edit.xml"/>
<screen id="sales_Order.lookup" template="/com/sample/sales/gui/order/order-browse.xml"/>
<screen id="sales_Order.edit" template="/com/sample/sales/gui/order/order-edit.xml"/>
</screen-config>