ScreenSettingsFacet

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

组件的 XML 名称:screenSettings

基本用法

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

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

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

如需只需为特定组件启用启用设置保存功能,可以按下面示例配置 facet:

<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>

事件和处理器

如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Component Hierarchy 面板选中 facet 元素,然后用 Component Inspector 面板的 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 界面设计器中的 Component Inspector 面板查看和编辑 facet 支持的属性。

auto - id