Свежесохраненные настройки фильтров не применяютя автоматически

Есть фрагмент под условным названием SomeObjectFragment с таблицей <table id=“someObjectsTable” …> и применяемом к ней фильтром <filter id=“filter” dataLoader=“someObjectsDl” applyTo=“someObjectsTable”…>, сидящие соответственно на Entity c условным названием SomeObject. Создан экран, состоящий из этого фрагмента. Предпринята следующая последовательность действий

  1. В фильтр добавлено поле Название, имеющееся в объекте (String), в появившееся поле вбито значение, фильтр применен.
    В результате таблица отфильтровала названия, содержащие строку в поле фильтра.
  2. Фильтр был сохранен
  3. Нажать на шестеренку, выбрать опцию “Сделать по умолчанию”.
    Фильтр со введенными значениями стал фильтром по умолчанию
  4. Нажата стандартная кнопка “Новое окно”, которая в правом верхнем углу рядом с кнопкой выхода.
    изображение
    Откроется приложение в новой вкладке браузера
  5. В новом окне открыть тот же пункт меню с той же таблицей
    Ожидаемое поведение - фильтр применился в новом окне автоматически
    Фактическое поведение - фильтр не применился.

Если выйти из приложения и снова войти, фильтр уже будет применен автоматически.

Добрый день! Если вас не затруднит, укажите пожалуйста какое у вас окружение (версия платформы, операционная система). Это позволит лучше понимать, где именно искать ошибку.

cubaVersion = ‘7.2.14’
OS : Windows 7 64 bit, Windows 10 64 bit - проверял на двух системах. В обоих случаях браузер - Morzilla Firefox

Еще раз приветствую. Собственно в ходе анализа выяснилось, что загвоздка заключается в самом механизме сохранения настроек. Необходимо закрыть текущий экран на котором добавлялся фильтр, чтобы настройки были корректно применены.

Возможно ли сделать так, чтобы настройки все-таки сохранялись по нажатию кнопки сохранить, не висели в подвешенном состоянии до закрытия панели? Потому что сейчас поведение действительно странное.

Попробуйте создать такой же класс как в примере ниже, с переопределенным классом MakeDafault, однако стоит учитывать, что при таком варианте будут сохраняться настройки для всех компонентов на экране, при сохранении фильтра как дефолтного: (например количество отображаемых столбцов, их порядок и т.п.).

@org.springframework.stereotype.Component(ExtFilterDelegateImpl.NAME)
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
@Primary
public class ExtFilterDelegateImpl extends FilterDelegateImpl {
    public static final String NAME = "app_ExtFilterDelegateImpl";
    
    @Override
    protected void createFilterActions() {
        super.createFilterActions();
        makeDefaultAction = new ExtMakeDefaultAction();
    }
    
    protected class ExtMakeDefaultAction extends MakeDefaultAction {
        @Override
        public void actionPerform(com.haulmont.cuba.gui.components.Component component) {
            super.actionPerform(component);
            
            Window window = ComponentsHelper.getWindow((Component.BelongToFrame) component);
            if (window != null) {
                UiControllerUtils.saveSettings(window.getFrameOwner());
            }
        }
    }
}

Спасибо, помогло.