3.6.6. screens.xml (历史版本)
|
使用从 v.7.0 新 API 写的界面不需要注册。而是通过 |
这种类型的文件是在 Web 客户端的通用用户界面中用来注册界面的 XML 描述。
文件路径通过 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 的形式定义界面参数传入控制器的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>