3.5.4.8. ScreenFacet
ScreenFacet
– это фасет, который обеспечивает возможность предварительной настройки открытия экранов и передачи параметров в экраны. Диалоговое описание экрана заменяет существующий метод ScreenBuilders.screen()
. ScreenFacet
определяется в элементе facets
XML-дескриптора экрана.
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();
}
Кроме того, фасет может быть подписан на действие (см. атрибут onAction) или кнопку (см. атрибут onButton) по идентификатору.
screen
имеет следующие атрибуты:
-
screenId
– задаёт идентификатор открываемого экрана.
-
screenClass
– задаёт Java-класс контроллера открываемого экрана.
-
openMode
– режим открытия экрана, задаваемый значением перечисленияOpenMode
:NEW_TAB
,DIALOG
,NEW_WINDOW
,ROOT
,THIS_TAB
. Значением по умолчанию являетсяNEW_TAB
.
ScreenFacet
может содержать элемент properties
, представляющий собой список параметров, которые будут переданы в открываемый экран через публичные setter-методы контроллера. См. также Передача параметров в экраны.