界面控制器注解
控制器上的类级别的注解用于向框架提供界面相关的信息。一部分注解适用于任何类型的界面,也有一部分仅用于实体编辑或查找界面。
通用注解
@UiController("sample_OrderScreen")
@UiDescriptor("order-screen.xml")
@MultipleOpen
@DialogMode(forceDialog = true)
public class OrderScreen extends Screen {
-
@UiController
注解表示该类是一个界面控制器。注解的值是界面的 ID,可用于从主菜单或以编程方式打开界面时引用界面。 -
@UiDescriptor
注解将界面控制器连接到 界面 XML 描述。注解的值指定描述文件的路径。如果该值仅包含文件名,则假定该文件与控制器类位于同一个包中。 -
@MultipleOpen
注解表示可以从主菜单多次打开界面。默认情况下,当用户点击主菜单项时,框架会检查是否已在主窗口标签页上打开相同类和 ID 的界面。如果找到此类界面,则会关闭该界面,并在新标签页中打开新的界面实例。当存在@MultipleOpen
注解时,不执行任何检查,只在新标签页中打开一个新的界面实例。可以通过覆盖界面控制器中的
isSameScreen()
方法,提供自定义的界面实例同一性检查方法。 -
@DialogMode
注解允许指定界面以对话框窗口方式打开时的大小和行为。它对应于界面描述中的<dialogMode>
元素,可以替代使用。对于除forceDialog
之外的所有参数,XML 中的设置优先于注解。forceDialog
参数会合并生效,即:只要在注解或 XML 其中之一将其设置为true
,界面就总是以对话框的方式打开。
查找界面特定注解
// common annotations
@UiController("sample_Order.browse")
@UiDescriptor("order-browse.xml")
// lookup-specific annotations
@LookupComponent("ordersTable")
@PrimaryLookupScreen(Order.class)
public class OrderBrowse extends StandardLookup<Order> {
-
@LookupComponent
注解指定一个 UI 组件的 ID,这个组件用于获取查找界面的返回值。除了使用该注解外,还可以覆盖界面控制器的
getLookupComponent()
方法以编程方式指定查找组件。 -
@PrimaryLookupScreen
注解表示此界面是指定实体类型的默认查找界面。该注解比{entity_name}.lookup
/{entity_name}.browse
名称约定具有更高的优先级。
编辑界面特定注解
// common annotations
@UiController("sample_Order.edit")
@UiDescriptor("order-edit.xml")
// editor-specific annotations
@EditedEntityContainer("orderDc")
@PrimaryEditorScreen(Order.class)
public class OrderEdit extends StandardEditor<Order> {
-
@EditedEntityContainer
注解指定一个 数据容器,这个数据容器包含被编辑的实体。除了使用该注解外,还可以覆盖界面控制器的
getEditedEntityContainer()
方法以编程方式指定容器。 -
@PrimaryEditorScreen
注解表示此界面是指定实体类型的默认编辑界面。注解比{entity_name}.edit
名称约定具有更高的优先级。