Доброго дня!
Подскажите пожалуйста как реализовать сохранение пользовательских настроек компонента?
В CUBA мы добавляли композитный компонент помечали его интерфейсом HasSettings
и реализовывали его методы applySettings(Element element)
, saveSettings(Element element)
и isSettingsEnabled
.
Благодаря этому, вызовы методов контроллера saveSettings()
и applySettings()
, где размещался композитный компонент, сохраняли и применяли его настройки, без лишнего кода на стороне экранов.
Немного посёрфив не нашел похожего механизма, чтобы компонент экрана сам заботился о своих настройках без написания обработчиков событий ScreenSettingsFacet на всех экранах, где он расположен.
реализация компонента
import com.haulmont.cuba.gui.components.HasSettings
public class CompositeComponentExample extends CompositeComponent<HBoxLayout>
implements CompositeWithCaption, CompositeWithDescription, CompositeWithIcon, CompositeWithContextHelp, HasSettings {
@Override
public void applySettings(Element element) {
//some code
}
@Override
public boolean saveSettings(Element element) {
//some code
}
Обстановка:
- студия Jmix 2.1.3-233
- версия Jmix 1.5.4
- IntelliJ IDEA 2023.3.3 (Community Edition)