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();
}

另外,这个 facet 还可以通过 id 关联至任何操作(参阅 onAction 属性)或按钮(参阅 onButton 属性)。

ScreenFacet 有如下属性:

  • screenId – 指定需要打开的界面 id。

  • screenClass – 指定需要打开的界面控制器 Java 类。

  • openMode – 界面打开模式,对应于 OpenMode 枚举:NEW_TABDIALOGNEW_WINDOWROOTTHIS_TAB。默认值是 NEW_TAB

ScreenFacetproperties 元素,表示一组属性,会通过 public setter 注入到打开的界面中。参阅 为界面传递参数


screen 的属性

id - onAction - onButton - openMode - screenClass - screenId

screen 的元素

properties