3.5.4.8. ScreenFacet
用 ScreenFacet
facet 可以预配置 打开界面 以及为界面 传递参数。用声明式的方法定义界面,而可以替代 ScreenBuilders.screen()
方法。ScreenFacet
用界面 xml 描述的 facets
元素定义。
组件的 xml 名称: screen
示例:
<facets>
<screen id="testScreen"
screenId="sample_TestScreen"
onButton="openTestScreen">
<properties>
<property name="num" value="42"/>
</properties>
</screen>
</facets>
用 ScreenFacet
配置的界面,也可以显式的调用 show()
方法展示:
@Inject
protected ScreenFacet testScreen;
@Subscribe("showDialog")
public void onShowDialogClick(Button.ClickEvent event) {
testScreen.show();
}
ScreenFacet
有如下属性:
-
screenId
– 指定需要打开的界面 id。
-
screenClass
– 指定需要打开的界面控制器 Java 类。
-
openMode
– 界面打开模式,对应于OpenMode
枚举:NEW_TAB
,DIALOG
,NEW_WINDOW
,ROOT
,THIS_TAB
。默认值是NEW_TAB
。
ScreenFacet
带 properties
元素,表示一组属性,会通过 public setter 注入到打开的界面中。参阅 为界面传递参数。