2013-11-11 6 views
0

У меня есть несколько сущностей с один-ко-многим отношений, таких как:Цепные ListEditors

A { List<B> b; } 

B { List<C> c; } 

C { some fields } 

Я пытаюсь редактировать эти объекты редакторами

AEditor extends Editor { 
BListEditor b... 
} 

BListEditor implements IsEditor<ListEditor<BProxy, BListEditor.BItemEditor>>{ 
    BItemEditor implements Editor<BProxy>{ 
    CListEditor c... 
    } 
} 

CListEditor implements IsEditor<ListEditor<CProxy, CListEditor.CItemEditor>>{ 
    CItemEditor implements Editor<CProxy>{} 
} 

В интерфейсе это выглядит следующим образом:

A - Container with fields and list of items B(list of grids) 
B - Container with combobox and grid - C 
C - editable grid 

Поэтому, когда я пытаюсь отредактировать уже сохраненные данные, он отлично работает. Но если я динамически создаю B и C, то при сохранении списка B.c == null

Почему RF не отправляет список CListEditor?

+0

Могли бы вы сначала внести изменения в свой код, чтобы определить, является ли это редактором или проблемой для РФ? (т. е. правильно ли заполнен Bc после «flush»?) или, альтернативно, ошибка все же возникает, если вы вручную создаете B и C после 'flush', вне рамки редактора?) –

+0

Они правильно созданы и сохранены в цепочка редакторов в ListEditorWrapper. – almagnit

+0

Но после сохранения AbstractRequestContext.state.editedProxies содержит BProxy.c == null, "CProxy" отправляется отдельно без контекста BProxy. – almagnit

ответ

Смежные вопросы