settings
settings
facet 可以保存和恢复当前用户的可视化组件设置。支持以下组件:
-
dataGrid、treeDataGrid - 可以保存列的顺序和列宽的设置,以及排序参数的设置。
-
details、genericFilter - 保存打开的状态。
-
simplePagination - 如果
itemsPerPageVisible
为true
,则 facet 可以保存所选的每页显示的数据量。
基本用法
当在界面内添加 auto="true"
属性的 settings
时,facet 会自动管理视图内具有标识符的所有支持的组件配置:
<facets>
<settings auto="true"/>
</facets>
如需管理视图内的特定组件配置,可以用 component
内嵌元素,示例:
<facets>
<settings>
<component id="citiesDataGrid"/>
</settings>
</facets>
如需排除某些组件,可以先设置 auto="true"
,然后用配置特定组件的 enabled="false"
:
<facets>
<settings auto="true">
<component id="hobbiesDataGrid" enabled="false"/>
</settings>
</facets>
组件的配置以 JSON 格式保存在主数据存储的 FLOWUI_USER_SETTINGS
表中。可以在 实体探查 中打开 flowui_UserSettingsItem
实体对保存的数据进行管理。
事件和处理器
在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |
applySettingsDelegate
applySettingsDelegate
在视图的 ReadyEvent
处理方法之前调用。
@ViewComponent
private JmixCheckbox checkbox;
@ViewComponent
private SettingsFacet settings;
@Install(to = "settings", subject = "applySettingsDelegate")
private void settingsApplySettingsDelegate(final SettingsFacet.SettingsContext settingsContext) {
settings.applySettings();
Optional<Boolean> value = settingsContext.getViewSettings().getBoolean("checkbox", "value");
checkbox.setValue(value.orElse(Boolean.FALSE));
}
applyDataLoadingSettingsDelegate
applyDataLoadingSettingsDelegate
在视图的 BeforeShowEvent
处理方法之前调用,并支持恢复与数据加载有关的配置。
saveSettingsDelegate
The saveSettingsDelegate
handler 在视图的 DetachEvent
处理方法之前调用。
@ViewComponent
private JmixCheckbox checkbox;
@ViewComponent
private SettingsFacet settings;
@Install(to = "settings", subject = "saveSettingsDelegate")
private void settingsSaveSettingsDelegate(final SettingsFacet.SettingsContext settingsContext) {
settingsContext.getViewSettings().put("testCheckbox", "value", checkbox.getValue());
settings.saveSettings();
}