OptionDialogFacet

OptionDialogFacet facet 支持预配置一个 选项对话框。用声明式的定义替代 Dialogs.createOptionDialog() 方法。

组件的 XML 名称:optionDialog

属性

OptionDialogFacet 在界面 XML 描述的 facets 元素中定义,有下列属性:

操作

如需添加用户交互按钮,使用界面 XML 描述中的 actions 元素。其内部需使用 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 - 定义是否高亮并选中对应的 button。默认为 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 facets 元素中定义 OptionDialogFacet
2 添加第一个 action 并设置 primary 属性为 true
3 添加第二个 action 并为其设置 description 属性。
4 定义打开选项对话框的 button

XML 属性

可以在 Studio 界面设计器中的 Component Inspector 面板查看和编辑 facet 支持的属性。