Валидация полей сущности в момент ее создания

Добрый день!
При нажатии на кнопку “Создать” в 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();
    }

Подскажите, что тут делаю не так? Основной мой вопрос: как мне получить название сущности, которую вбил пользователь, чтобы дальше ее сравнивать?

Что-то я не вижу, где в вашем коде открывается диалог. Здесь только оповещения отправляются.
Посмотрите документацию по диалогам.

Это в дескрипторе ListView указано:

<action id="create" type="list_create">
    <properties>
        <property name="openMode" value="DIALOG"/>
    </properties>
</action>
  1. Чет я не пойму. В какой момент у вас открывается диалог, если я ничего не путаю, ваша подписка на ActionPerformedEvent полностью переопределяет дефолтную работу action list_create. В вашем коде открытие диалога не происходит.

  2. <property name="openMode" value="DIALOG"/> означает что редактор сущности будет открыт в диалоге. То есть, если у вас какой-то диалог и открывается, то это редактор сущности. По вашему коду, вы хотите открыть редактор сущности 2 раза?

Как я понимаю. Вам надо создать input dialog. (ссылку я прикреплял выше). Как оттуда получить введенное значение в доке написано. А потом через DialogWindows открыть редактор.

@yarik1706 да, уже попробовал, помогло) Спасибо!