Добрый день!
При нажатии на кнопку “Создать” в DataGrid у меня открывается диалоговое окно, в котором указано 1 поле “Название”. Мне нужно проверять, что если пользователь ввел название, а в БД уже есть сущность с точно таким же названием, не сохранять ее, а выдавать предупреждение. Если все хорошо, и название уникально, после сохранения я должен попадать в редактор сущности сразу. Пока удалось реализовать такой код, но он не работает, как нужно:
@Subscribe("policiesDataGrid.create")
public void onPoliciesDataGridCreate(final ActionPerformedEvent event) {
PolicyUiDto policyUiDto = dataContext.create(PolicyUiDto.class);
policiesDc.getMutableItems().add(policyUiDto);
policyUiDto.setName(policyDc.getItem().getName());
List<Policy> existingPolicies = policyRepository.findByName(policyUiDto.getName());
if (!existingPolicies.isEmpty()) {
notifications.create("Политика с таким названием уже существует.")
.withType(Notifications.Type.WARNING)
.withPosition(Notification.Position.MIDDLE)
.withCloseable(true)
.show();
}
notifications.create("Политика " + policyUiDto.getName() + " создана!")
.withType(Notifications.Type.SUCCESS)
.withPosition(Notification.Position.MIDDLE)
.withCloseable(false)
.withDuration(2000)
.show();
policiesDataGrid.getEditor();
}
Подскажите, что тут делаю не так? Основной мой вопрос: как мне получить название сущности, которую вбил пользователь, чтобы дальше ее сравнивать?