Реализуйте 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
)