почему textfiled сохраняет новое значение в поле?

При вводе значения в textfield у меня проверка на совпадение со старым значение, если его нет то появляется диалоговое окно в котором "да" - это сохранение нового значения, "нет" - это осавить старое. При нажатии "нет" в textfield остается старое значение и не пропадет пока не перезагрузишь страницу, как это исправить?

if (flag[0] == true) {
            ConfirmDialog.show(UI.getCurrent(),
                    "Внимание",
                    "Сохранить изменения перед переключением или будет утеряно?",
                    "Ok",
                    "Cancel",
                    (ConfirmDialog cd) -> {
                        if (cd.isConfirmed()) {
                            ConfigurationBean.saveConfig(CFG, resourceBundleWeb);
                            UI.getCurrent().getPage().reload();
                        } else {
                            flag[0] = false;
                            fields.forEach(field -> {
                                appSysTable.refreshRowCache();
                            });
                        }
                    });
        }
TextField login = new TextField(resourceBundleWeb.getString(ResourceKeys.RepositoryControlComponent_HorizontalLayout_TextField_Login_Caption.toString()));
        login.setWidth(40, Unit.PERCENTAGE);
        login.setPropertyDataSource(new MethodProperty(appSys.getGitConfigBean(), "login"));
        login.setNullRepresentation("");
        String oldLoginValue = login.getValue();
        login.focus();
        login.addValueChangeListener(valueChangeListener(oldLoginValue));
        login.setImmediate(true);
        componentForm.addComponent(login);  

private Property.ValueChangeListener valueChangeListener (String oldValue) {

        return new Property.ValueChangeListener() {
            private static final long serialVersionUID = 5678485350989070188L;
            @Override
            public void valueChange(Property.ValueChangeEvent event) {
                String newValue = (String) event.getProperty().getValue();
                LOGGER.info("oldValue " + oldValue);
                LOGGER.info("newValue " + newValue);
                if (oldValue == newValue) {
                    flag[0] = false;
                } else { flag[0] = true; }
            }
        };
    }


Ответы (0 шт):