Application Settings
Это дополнение предоставляет простой API и пользовательский интерфейс для работы с изменяемыми значениями различных типов, хранящимися в базе данных. Эти значения обычно используются как параметры различного функционала приложения, такие как значения по умолчанию, лимиты или функциональные флаги.
Установка
Для автоматической установки через Jmix Marketplace следуйте инструкциям в разделе Дополнения.
Для ручной установки добавьте следующие зависимости в ваш build.gradle:
implementation 'io.jmix.appsettings:jmix-appsettings-flowui-starter'
implementation 'io.jmix.appsettings:jmix-appsettings-starter'
|
Важное примечание для приложений в режиме меню Single mode Если ваше приложение использует режим меню Single mode, вам следует вручную добавить пункты меню после установки дополнения.
Этот шаг необходим, потому что приложения в режиме Single mode не выполняют автоматическое слияние меню дополнений с существующей структурой. |
Пример использования
Представьте, что у вас есть сущность Customer и простая бизнес-логика:
-
Новые клиенты должны получать грейд по умолчанию (например, Bronze/Gold/Platinum) и страну по умолчанию, которые бизнес-пользователи могут изменять во время выполнения.
-
Также есть текст уведомления, который может быть использован в пользовательском интерфейсе или отчетах.
-
Все эти значения должны быть изменяемыми без перезапуска приложения.
Это можно реализовать в два этапа.
Этап 1. Определите сущность настроек
Создайте сущность, которая расширяет класс io.jmix.appsettings.entity.AppSettingsEntity:
@JmixEntity
@Table(name = "CUSTOMER_SETTINGS")
@Entity
public class CustomerSettings extends AppSettingsEntity {
@AppSettingsDefault("B")
@Column(name = "DEFAULT_GRADE")
private String defaultGrade;
@Column(name = "COUNTRY")
private String country;
@Column(name = "NOTIFICATION_TEXT")
private String notificationText;
// getters and setters
После этого в приложении в разделе Application settings бизнес-пользователи смогут редактировать defaultGrade, country и notificationText.
Этап 2. Используйте настройки в бизнес-логике
Для получения настроек в коде приложения используйте бин AppSettings. Например, на экране редактирования клиента при инициализации сущности вы можете установить значения по умолчанию на основе настроек:
@Autowired
private AppSettings appSettings;
@Subscribe
public void onInitEntity(InitEntityEvent<Customer> event) {
CustomerSettings customerSettings = appSettings.load(CustomerSettings.class);
CustomerGrade defaultGrade = customerSettings.getDefaultGrade();
Customer customer = event.getEntity();
customer.setCountry(customerSettings.getCountry());
customer.setGrade(defaultGrade);
}
После этого:
-
Когда бизнес-пользователь обновляет значение грейда по умолчанию с Bronze на Gold, все новые клиенты будут инициализированы с этим значением.
-
Когда бизнес-пользователь указывает страну по умолчанию, все новые клиенты будут инициализированы с этим значением.
Аналично, вы можете использовать текст уведомления для меток и подсказок в пользовательском интерфейсе, привязывая его к компонентам или всплывающей подсказке.