Редактирование коллекций с помощью редакторов GWT и RequestFactory

См. контекст в оригинальном вопросе.

Дополнительный контекст:

  • 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);
}

Для удаления вопроса я отмечаю в вопросе флаг, который удалит его из списка на сервере, и удаляю. (хак) Это работает только для уже сохраненных вопросов.


person Nick Siderakis    schedule 17.08.2011    source источник
comment
Какая связь между Form и Question ?   -  person expert    schedule 10.04.2012