Редактор сетки Vaadin 8

В Vaadin 8 дано следующее определение сетки:

    grid = new Grid<>();
    grid.getEditor().setEnabled(true);
    carBinder = grid.getEditor().getBinder();

с участием:

    grid.getEditor().addSaveListener(event -> {
    try {
        Binder<Car> binder = event.getSource().getBinder();
        grid.getDataProvider().refreshAll();
    } catch(Exception e) 
        ExceptionNotification.show(e);
    }
    });

У меня есть проблема: в настоящее время я не могу получить доступ к измененному значению из редактора сетки, ни через event.getSource (), ни через связыватель, определенный локально или в области класса.

В отладчике я вижу в классе Vaadin com.vaadin.ui.components.grid.EditorImpl свойство, отредактированное, содержащее значения, но частное, поэтому недоступное.

В отладке значение binder.bean равно ПУСТО (NULL). Это будет значение, полученное с помощью: binder.getBean ().

Итак, я пробовал много способов, но в настоящее время я не мог получить отредактированное значение с помощью слушателя сохранения для работы с ним и поискать помощь или вдохновение для решения проблемы.


person Lexx    schedule 27.02.2017    source источник
comment
Вы пробовали binder.writeBean(aCarObject) получить значения? Согласно документации, он записывает значения полей в данный объект, но выдает исключение, если какое-либо из полей недействительно.   -  person Axel Meier    schedule 28.02.2017
comment
Спасибо. Работает. Странно использовать операцию записи для получения данных, когда есть операция getBean (). Но это работает.   -  person Lexx    schedule 28.02.2017
comment
Большой. Я добавил ответ ниже, так что вы можете отметить его. :)   -  person Axel Meier    schedule 01.03.2017


Ответы (2)


Чтобы получить значения, используйте:

binder.writeBean(aCarObject);

Согласно документации, он записывает значения полей в данный объект, но выдает исключение, если какое-либо из полей недействительно.

person Axel Meier    schedule 01.03.2017

Я столкнулся с той же проблемой. После расследования мне сообщили, что это будет исправлено в Vaadin 8.0.3, который вот-вот будет выпущен.

https://github.com/vaadin/framework/issues/8658

person bobsyouruncle    schedule 17.03.2017