Отображение в выборке#
Отображение группирует бизнес-логику выборки в зависимости от способа представления данных.
Стандартные отображения для класса:
Default— отображение по умолчанию. В нем определяется общая функциональность для данных выборки. Остальные отображения обычно наследуют это отображение;List— отображение для списка объектов класса;Card— отображение для карточки объекта;
Пользовательские настройки отображения#
Пользовательские настройки отображения позволяют адаптировать внешний вид и поведение списка под индивидуальные рабочие сценарии. Система сохраняет выбранные параметры в привязке к конкретному пользователю, роли или профилю, а при повторном открытии выборки автоматически восстанавливает последнее состояние интерфейса.
К таким настройкам относятся:
видимость колонок;
порядок следования колонок;
ширина колонок;
сортировка колонок;
группировка строк;
отображение области итогов.
При выходе из приложения текущее состояние списка сохраняется автоматически.
Интеграционные события#
При работе с настройками вызываются события ядра:
onSaveUserSettings— сохранение пользовательской настройки;onSaveAsUserSettings— сохранение как новой настройки;onLoadUserSettings— загрузка выбранной настройки;onLoadDefaultUserSettings— загрузка настройки при открытии выборки.
Логика событий реализуется на прикладном уровне, управление пунктами меню выполняется ядром.
Управление пользовательскими настройками отображения#
Управление настройками выполняется через контекстное меню списка.
Чтобы открыть меню:
нажмите правой кнопкой мыши на любую область таблицы;
выберите пункт «Настройки пользователя».
Доступны операции:
сохранение настройки;
сохранение настройки с новым именем;
загрузка настройки;
восстановление настроек по умолчанию.
Сохранение настроек#
Чтобы сохранить текущую настройку:
откройте контекстное меню списка;
выберите «Настройки пользователя» > «Сохранить» или «Сохранить как».
Откроется окно сохранения настроек.
В окне указываются:
наименование настройки;
доступность:
Для всех;
Для пользователей — доступен выбор пользователей;
Профиль — доступен выбор профиля;
Только для меня.
Дополнительно:
может быть установлен признак «По умолчанию» — такая настройка применяется при открытии выборки.
Для завершения используется кнопка «Выбор».
После сохранения настройка применяется к текущему отображению.
Загрузка настроек#
Для одного интерфейса может быть сохранено несколько пользовательских настроек.
Чтобы загрузить сохранённую настройку:
откройте контекстное меню списка;
выберите «Настройки пользователя» > «Загрузить».
Откроется список доступных настроек. Доступны фильтры:
Личные — настройки текущего пользователя;
Общие — доступные настройки (для всех, пользователей, профилей);
Других пользователей — остальные настройки.
Для скрытия общих настроек снимите флаг «Общие».
После выбора настройка применяется к списку.
Восстановление настроек по умолчанию#
Восстановление настроек по умолчанию через интерфейс системы
Чтобы вернуть отображение к исходному виду:
откройте контекстное меню списка;
выберите «Восстановить настройки по умолчанию».
Это основной пользовательский способ сброса настроек.
Восстановление настроек по умолчанию через прикладной код
Внимание
Метод следует использовать только в ситуациях, когда восстановление через интерфейс не сработало.
Для программного сброса используется метод:
selection.layout.frame.view.asListView.restoreDefaultSettings()
Пример:
override def beforeFirstOpen(): Unit = {
super.beforeFirstOpen()
selection.layout.frame.view.asListView.restoreDefaultSettings()
}
Метод сбрасывает пользовательские настройки list-view и восстанавливает отображение в соответствии с конфигурацией выборки.
Применение настройки по умолчанию#
Для одной выборки может быть задано несколько настроек с признаком «По умолчанию».
Если пользователю доступны несколько таких настроек, применяется одна из них с учётом приоритета:
Только для меня;
Для пользователей;
Профиль;
Для всех.
Если в рамках одного уровня доступности доступно несколько настроек, используется первая созданная настройка.
Ограничения прав доступа#
Настройка прав доступа выполняется в приложении «Администратор» в разделе:
Доступ > Роли > Права роли. Подробнее про права роли см. в Администрирование приложений.
В системе права доступа для работы с пользовательскими настройками списка определяются администрируемым объектом Btk_SelGridSetting.
В объекте используются следующие привилегии:
CanEditPublicSetting— сохранение и редактирование публичных настроек.
Определяет возможность создавать и изменять настройки с доступностью:Для пользователей;
Профиль;
Для всех.
При отсутствии данной привилегии:
недоступен выбор указанных типов доступности;
недоступно редактирование соответствующих настроек;
невозможно сохранить настройку, если активна настройка с публичной доступностью.
CanEditAnotherUserSetting— редактирование настроек других пользователей.
Определяет возможность изменять настройки, созданные другими пользователями.
При отсутствии данной привилегии редактирование доступно только для собственных настроек.
Ограничения прав доступа учитываются как при сохранении, так и при редактировании и загрузке настроек.
Примеры сценариев#
Сохранение удобного представления списка
Пользователь настраивает состав колонок и сортировку, затем сохраняет настройку через
«Настройки пользователя» > «Сохранить как».
В дальнейшем настройка может быть быстро загружена при работе с выборкой.
Использование настройки по умолчанию
Сохраняется настройка с признаком «По умолчанию».
При открытии выборки она применяется автоматически без дополнительных действий.
Сброс некорректных настроек
После изменения разметки списка ранее сохранённые настройки могут работать некорректно.
В этом случае используется:
пользовательский сценарий — «Восстановить настройки по умолчанию»;
программный сброс —
restoreDefaultSettings()(в исключительных случаях).
Восстанавливать изменения в интерфейсе при переоткрытии#
Флажок управляет приоритетом между автоматически сохраняемыми настройками интерфейса (автонастройками) и явно сохраненными пользовательскими настройками.
Назначение#
Флаг определяет, какие настройки применяются при открытии выборки:
автонастройки (состояние интерфейса, сохраненное в реестре при закрытии);
пользовательские настройки (сохраненные через контекстное меню).
Значение по умолчанию: включено.
Уровни конфигурации#
Уровень |
Параметр / элемент |
Описание |
|---|---|---|
Сервер |
|
Глобальный приоритет автонастроек над пользовательскими настройками. По умолчанию |
Сервер |
|
Разрешение пользователю изменять флаг. По умолчанию |
Главное меню |
|
Пользовательское управление флагом ( |
Контекстное меню грида |
|
Дублирующий элемент управления, может быть отключен администратором |
Логика применения при открытии выборки#
При открытии выборки система определяет источник настроек:
Если флаг включен
есть автонастройки в реестре > применяются автонастройки;
нет автонастроек > применяется пользовательская настройка (если существует).
Если флаг выключен
есть пользовательская настройка > применяется она;
нет пользовательской настройки > применяются автонастройки из реестра.
Автонастройки продолжают сохраняться в реестре независимо от выбора флага и используются как fallback-источник.
Поведение при наличии пользовательских и административных настроек#
В режиме строгой администраторской политики:
администраторская конфигурация имеет приоритет над пользовательской;
пользователь не может переопределить поведение через сохраненные настройки;
применение пользовательских настроек ограничивается логикой флага восстановления.
Режим активируется параметром:
RestoreAutoSettingsRegardlessOfUserSettings = true
Ограничение изменения флага#
Возможность изменения флага определяется серверным параметром:
Configuration.Databases.Database.UI.AutoSettings.AllowUserToChangeSettings
Если параметр выключен:
флаг в UI становится недоступным для изменения;
доступно только администраторское управление.
Техническая реализация#
пункты контекстного меню реализуются в ядре;
бизнес-логика обработки — на прикладной стороне;
при наведении на недоступные пункты может отображаться причина блокировки (для диагностики).
Флаг на уровне API:
ru.bitec.gtk.core.gl.CoreAutoSettings.isAllowUserToChangeSettings()
Переопределение поведения:
ru.bitec.gtk.core.gl.CoreAutoSettings.isRestoreAutoSettingsRegardlessOfUserSettings()
Итоговое поведение формируется на уровне:
CoreApplication.autoSettings()