OptionDialogFacet
Фасет OptionDialogFacet позволяет предварительно настраивать диалоговое окно опций. Декларативное определение диалогового окна заменяет существующий метод Dialogs.createOptionDialog().
XML-имя компонента: optionDialog.
Атрибуты
OptionDialogFacet определяется в элементе facets XML-дескриптора экрана и имеет следующие атрибуты:
Действия
Чтобы добавить кнопки для пользовательского отклика, используйте элемент actions XML-дескриптора экрана. Элементы action должны быть размещены внутри него. Например:
<optionDialog id="optionDialog">
<actions>
<action id="ok"
caption="OK"
icon="CHECK"
primary="true"/>
<action id="cancel"
caption="Cancel"
icon="BAN"
description="The changes will not be saved"/>
</actions>
</optionDialog>
Для настройки action существуют следующие атрибуты:
-
description- задает текст, который будет отображаться при наведении курсора на соответствующуюbutton. -
icon- задает значок для соответствующейbutton. -
primary- определяет, будет ли соостветсвующая кнопка выделена и подсвечена как главная. Значение по умолчанию –false.
Чтобы реализовать собственную логику для action, используйте слушатель DialogActionPerformedEvent:
@Autowired
protected Notifications notifications;
@Install(to = "optionDialog.ok", subject = "actionHandler")
protected void onDialogOkAction(ActionsAwareDialogFacet.DialogActionPerformedEvent<OptionDialogFacet> event) {
String actionId = event.getDialogAction().getId();
notifications.create(Notifications.NotificationType.TRAY)
.withCaption("Dialog action performed: " + actionId)
.show();
}
Код внутри этого слушателя будет выполнен, когда пользователь нажмет кнопку с id="ok" в диалоговом окне опций.
Пример использования
<window xmlns="http://jmix.io/schema/ui/window"
caption="msg://optionDialogFacetScreen.caption">
<facets>
<optionDialog id="optionDialog"
caption="Option Dialog"
message="Message"
onButton="optionDialogBtn"> (1)
<actions>
<action id="ok"
caption="OK"
icon="CHECK"
primary="true"/> (2)
<action id="cancel"
caption="Cancel"
icon="BAN"
description="The changes will not be saved"/> (3)
</actions>
</optionDialog>
</facets>
<layout>
<button id="optionDialogBtn"
caption="Show OptionDialog"/> (4)
</layout>
</window>
| 1 | Определение OptionDialogFacet внутри элемента facets. |
| 2 | Добавляет первое action и устанавливает для атрибута primary значение true. |
| 3 | Добавляет второе action и определяет для него атрибут description. |
| 4 | Определение button, которая откроет диалоговое окно опций. |
Все XML-атрибуты
|
Вы можете просматривать и редактировать применимые к фасету атрибуты с помощью панели инспектора Jmix UI в дизайнере экранов Studio. |
caption - contentMode - height - htmISanitizerEnabled - id - message - onAction - onButton - stylename - width - windowMode