ScreenSettingsFacet

Фасет ScreenSettingsFacet сохраняет настройки, установленные пользователем для визуальных компонентов.

Component’s XML-name: screenSettings.

Основы

ScreenSettingsFacet определяется в элементе facets XML-дескриптора экрана.

Чтобы включить сохранение настроек экрана для всех его компонентов, установите для атрибута auto значение true:

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

Вы можете включить сохранение настроек экрана только для конкретных компонентов. Для этого, нужные компоненты должны быть объявлены явно:

<facets>
    <screenSettings id="settingsFacet">
        <components>
            <component id="carsTable"/>
        </components>
    </screenSettings>
</facets>
<layout expand="carsTable">
    <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">
    <groupTable id="carsTable"
                width="100%"
                dataContainer="carsDc">
        <!-- ... -->
    </groupTable>
</layout>

События и слушатели

Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите фасет в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI.

В качестве альтернативы вы можете воспользоваться кнопкой 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-атрибуты

Вы можете просматривать и редактировать применимые к фасету атрибуты с помощью панели инспектора Jmix UI в дизайнере экранов Studio.

auto - id