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 注入到打开的界面中。参阅 为界面传递参数。