Добрый день!
Есть следующий метод, отрабатывающий, когда происходит попытка удалить пользователя из таблицы. Проблема в том, что запись об удаленном пользователе автоматически из таблицы не удаляется (удаляется только в случае принудительного нажатия кнопки “Обновить” или при закрытии/открытии экрана). Предположил, что после удаления dataLoader не перезагружается. Добавил userDl.load(), но при попытке удалить пользователя получаю NPE.
Вопрос: как мне получить загрузчик, где будут лежать данные о пользователях, чтобы их обновлять при попытке удаления?
@ActionType(RemoveAction.ID)
public class JdRemoveAction<E> extends RemoveAction<E> {
protected CollectionLoader<User> usersDl;
private Dialogs.OptionDialogBuilder createRemoveConfirmationDialog(Set<E> itemsToRemove, Consumer<ActionPerformedEvent> removeHandler) {
String confirmationMessage = itemsToRemove.size() == 1
? "Вы уверены, что хотите удалить выбранную запись?"
: "Вы уверены, что хотите удалить выбранные записи?";
ScreenContext screenContext = UiControllerUtils.getScreenContext(target.getFrame().getFrameOwner());
Dialogs dialogs = screenContext.getDialogs();
if (usersDl != null) {
return dialogs.createOptionDialog().withCaption("Удаление").withMessage(confirmationMessage).withActions(
new DialogAction(DialogAction.Type.YES).withStyleName("danger")
.withCaption(messages.getMessage("actions.Remove")).withHandler(e -> {
removeHandler.accept(e);
usersDl.load();
}),
new DialogAction(DialogAction.Type.NO)
);
}
return null;
}
}