См. оригинальный вопрос для контекста.
Дополнительный контекст:
- Objectify-Appengine используется для настойчивости.
FormProxy
и QuestionProxy
имеют тип EntityProxy
QuestionDataProxy
и его подтипы относятся к типу ValueProxy
- Все редакторы реализуют
HasRequestContext
, а в случае QuestionData
Редакторы подтипа HasRequestContext.setContext()
вызывается явно из родительского элемента.
Первая проблема связана с коллекциями, а вторая - с полиморфными типами . Я не уверен, если проблема в том, как я использую Editors или RequestFactory. Поскольку данные отсутствуют в полезной нагрузке RPC, мы можем исключить настройку персистентности.
Проблема
Все значения для QuestionProxy равны нулю в запросе RPC (если QuestionProxy создается заново, в противном случае все в порядке)
Вопрос
Как правильно добавить / удалить Questions
из формы. Какова последовательность вызова методов создания, редактирования, обновления для Question
, Form
и QuestionData
при использовании редакторов.
Современные решения
Функциональность добавления вопроса (в упражнении):
@Override
public void addQuestion(final QuestionEditor questionEditor) {
final QuestionProxy proxy = theOneAndOnlyOneContextForEditing.create(QuestionProxy.class);
final QuestionRequest dpr = theOneAndOnlyOneContextForEditing.append(clientFactory.getRequestFactory()
.qestionRequest());
dpr.updateQuestion(proxy);
questionListEditor.asEditor().getList().add(proxy);
}
Чтобы удалить вопрос, я отмечаю флаг в вопросе, который удалит его из списка на сервере, и удалит его. (взломать) Это работает только для вопросов, которые уже были сохранены.