ScreenSettingsFacet

ScreenSettingsFacet facet,保存用户对 可视化组件 的配置。

组件的 XML 名称:screenSettings

基本用法

ScreenSettingsFacet 在界面 XML 描述的 facets 元素中定义。

如需为界面的所有组件启用配置保存功能,可以设置 autotrue

<facets>
    <screenSettings auto="true"/>
</facets>

可以只为特定组件启用配置保存功能,只需显式声明这些组件:

<facets>
    <screenSettings id="settingsFacet">
        <components>
            <component id="carsTable"/>
        </components>
    </screenSettings>
</facets>
<layout expand="carsTable" spacing="true">
    <groupTable id="carsTable"
                width="100%"
                dataContainer="carsDc">
        <!-- ... -->
    </groupTable>
</layout>

如果需要的话,也可以为特定组件禁用配置保存功能,只需设置其 enable 属性为 false

<facets>
    <screenSettings id="settingsFacet" auto="true">
        <components>
            <component id="carsTable" enable="false"/>
        </components>
    </screenSettings>
</facets>
<layout expand="carsTable" spacing="true">
    <groupTable id="carsTable"
                width="100%"
                dataContainer="carsDc">
        <!-- ... -->
    </groupTable>
</layout>

事件和处理器

如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Jmix UI 层级结构面板选中 facet 元素,然后用 Jmix UI 组件面板的 Handlers 标签页生成。

或者可以使用界面控制器顶部面板的 Generate Handler 按钮。

可以使用 ScreenSettingsFacet 代理对界面配置的生命周期做拦截处理。

ApplySettingsDelegate

该处理器支持在 AfterShowEvent 事件保存组件的状态。

@Autowired
private ScreenSettingsFacet settingsFacet;
@Autowired
private GroupTable<Car> carsTable;

@Install(to = "settingsFacet", subject = "applySettingsDelegate")
private void settingsFacetApplySettingsDelegate(ScreenSettingsFacet.SettingsContext settingsContext) {
    settingsContext.getScreenSettings()
            .getBoolean("carsTable", "visibility")
            .ifPresent(visibility -> carsTable.setVisible(visibility));

    settingsFacet.applySettings();
}

编程式用法,调用组件的 setApplySettingsDelegate() 方法。

ApplyDataLoadingSettingsDelegate

该处理器支持在 BeforeShowEvent 事件保存组件的状态。

编程式用法,调用组件的 setApplyDataLoadingSettingsDelegate() 方法。

SaveSettingsDelegate

该处理器支持在 AfterDetachEvent 事件保存组件的状态。

编程式用法,调用组件的 setSaveSettingsDelegate() 方法。

XML 属性

可以在 Studio 界面设计器中的 Jmix UI 组件面板查看和编辑 facet 支持的属性。

auto - id