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