Редактор GWT использует IsEditor<LeafValueEditor <Date >> для заполнения поля Long

Я только что освоил использование Editor framework и я портирую все свои формы, чтобы использовать его. У меня проблемы с моим Event форма. У меня 5 разных time fields - для каждого поля я использую DateBox чтобы позволить пользователю выбрать время.

В моем старом Activity я преобразовал значения этих полей в Long раз, заселенный мой proxy object и сохранил это.

Я хочу сделать то же самое, используя Editor framework, В любом случае я могу использовать Editor с DateBox заселить Long поле в моем доменном объекте. Я уверен, что должен быть способ сделать это, я просто не могу понять это.

Если это не так, и я просто не могу сделать это сейчас, кто-нибудь знает хорошее решение, как это сделать?

1 ответ

Решение

Вы должны обернуть DateBox в Editor<Long>, Что-то вроде:

@Editor.Ignore
@UiField
DateBox dateField;

LeafValueEditor<Long> longField = new LeafValueEditor<Long>() {
    @Override
    public Long getValue() {
        Date date = dateField.getValue();
        return date == null ? null : date.getTime();
    }
    @Override
    public void setValue(Long value) {
        Date date = value == null ? null : new Date(value.longValue());
        dateField.setValue(date);
    }
}
Другие вопросы по тегам