oman
(Oleg SmaLL)
17.Октябрь.2024 12:11:40
1
Добрый день!
Jmix version: 1.6.0
Jmix Studio plugin version: 2.3.3-241
IntelliJ version: IntelliJ IDEA 2024.1.6 (Community Edition)
Открываю экран выбора сущности через screenBuilders.lookup()
Можно ли не изменяя открываемый экран запросить подтверждение выбора выводом dialogs.createOptionDialog() с вариантами Да/Нет и если выберут Нет, то lookup экран не закрывается, а при выборе Да, происходит стандартный выбор?
oman
(Oleg SmaLL)
21.Октябрь.2024 09:26:38
2
Пока сделал так в валидаторе lookup
if (!inConfirm) {
String message = "Будут также добавлены маппинговые номенклатуры:%n%s"
.formatted(prepareNomenklaturesList(mappedNomenklatures));
dialogs.createOptionDialog().withContentMode(ContentMode.HTML)
.withCaption("Подтверждение")
.withMessage(message)
.withActions(new DialogAction(DialogAction.Type.YES, Action.Status.PRIMARY)
.withCaption("Продолжить")
.withHandler(actionPerformEvent -> {
screen.select(null);
inConfirm = false;
}),
new DialogAction(DialogAction.Type.CANCEL)
.withHandler(actionPerformedEvent -> {
inConfirm = false;
}))
.show();
inConfirm = true;
return false;
}
где inConfirm статусный атрибут вызывающего экрана
d.cherkasov
(Dmitry Cherkasov)
21.Октябрь.2024 09:36:39
3
Добрый день,
Через валидатор пожалуй будет оптимально.
Альтернативно если вам надо в другом флоу (не на валидации) вызвать подтверждение - можно сделать так
var screen = screenBuilders.lookup(...)
.withScreenClass(UserBrowse.class)
.build();
screen.addMyMethodCallback(e -> {});
screen.show();
Заранее определив список делегатов которые вы будете вызывать в классе экрана в определенном нужном месте
1 лайк