Реализуйте NullableSetEditor, обернув NullalbleListEditor

У меня есть рабочая реализация NullableStringListEditor:

public class NullableStringListEditor extends Composite implements IsEditor<OptionalFieldEditor< List<String>, ListEditor<String, StringEditor> >> {...}

Теперь я создаю NullableStringSetEditor, обернув его:

public class NullableStringSetEditor extends Composite implements ValueAwareEditor<Set<String>>, LeafValueEditor<Set<String>> {
private NullableStringListEditor wrappedEditor = new NullableStringListEditor();

    @Override
    public void setValue(Set<String> values) {
        List<String> list = wrappedEditor.asEditor().getValue();
        some null checking... 
        list.clear();
        list.addAll(values);
        wrappedEditor.asEditor().setValue(list); // will call setValue of OptionalFieldEditor from here
    }
}

Ошибка:

java.lang.NullPointerException: null at com.google.gwt.editor.client.adapters.OptionalFieldEditor.setValue(OptionalFieldEditor.java:113)

строка 113: chain.attach(значение, subEditor); кажется, что цепочка всегда нулевая.

Я делаю что-то неправильно? Спасибо!

1 ответ

Если NullableStringSetEditor это LeafvalueEditor, затем wrappedEditor будет игнорироваться генератором каркаса редактора и, следовательно, не будет инициализироваться и заполняться.

Вы можете следовать OptionaEditor шаблон, если ваш редактор будет CompositeEditor (в дополнение к тому, чтобы быть LeafValueEditor)

Другие вопросы по тегам