settings
Фасет settings
сохраняет и восстанавливает настройки визуальных компонентов для текущего пользователя. Поддерживаются следующие компоненты:
-
dataGrid, treeDataGrid - фасет сохраняет порядок и ширину колонок, а также параметры сортировки.
-
details, genericFilter - фасет сохраняет состояние открытия.
-
simplePagination - фасет сохраняет выбранный размер страницы, если
itemsPerPageVisible
имеет значениеtrue
.
Базовое использование
При добавлении на экран с атрибутом auto="true"
фасет управляет настройками всех поддерживаемых компонентов экрана, имеющих идентификаторы:
<facets>
<settings auto="true"/>
</facets>
Для управления настройками конкретного компонента используйте вложенные элементы component
, например:
<facets>
<settings>
<component componentId="citiesDataGrid"/>
</settings>
</facets>
Чтобы исключить какой-либо компонент, используйте auto="true"
для фасета и enabled="false"
для компонента:
<facets>
<settings auto="true">
<component componentId="hobbiesDataGrid" enabled="false"/>
</settings>
</facets>
Настройки хранятся в основном хранилище данных в таблице FLOWUI_USER_SETTINGS
в формате JSON. Вы можете управлять сохраненными настройками, открыв сущность flowui_UserSettingsItem
в Инспекторе сущностей.
Обработчики
Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду 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
Обработчик saveSettingsDelegate
вызывается перед обработчиком события 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();
}