каркас редактора gwt, скопируйте состояние пользовательского интерфейса в объект - лучшие практики при сохранении объекта - PullRequest
1 голос
/ 09 января 2012

итак, просто интересно, возможно ли это вообще?

Я использую каркас редактора и мне интересно, если вместо того, чтобы выдвигать состояние объекта в пользовательский интерфейс, используя вызовы редактирования, - все равно есть?Вы можете взять состояние формы и накачать его в объект.

Я использую RequestFactoryEditorDriver с прокси-объектами и пытаюсь сделать что-то вроде обратного редактора, где я заполняю свой прокси-объектзначения в форме, а затем сохранить его.

Я также новичок в GWT, я начал 2 недели назад и учил себя различным примерам кода и Google, есть ли какая-либо другая среда GWT, чтобы сделать это.или каковы лучшие практики, когда просто сохраняете новые объекты?

я использую действия / места и до сегодняшнего вечера (я пытаюсь вывести что-то быстро, поэтому я знаю, что это не был правильный способсделать это) передавал во всех полях формы через моего докладчика, чтобы создать объект.Я хотел бы сделать что-то более чистое.

любая помощь очень ценится


любому, кто делает это - Томас Бройер ответил на это, и вот как я заставил это задание работать

public class EmployeesCreateFormActivity extends AbstractActivity implements EmployeesCreateFormView.Presenter

  interface EmployeeEditorDriver extends RequestFactoryEditorDriver<EmployeeProxy, EmployeesCreateFormView> {
  }

  private final ClientFactory clientFactory;
  private final EmployeesCreateFormView view;

  private EmployeeRequestContext employeeContext;
  private EmployeeProxy employee;
  private final EmployeeEditorDriver editor;

  public EmployeesCreateFormActivity(ClientFactory clientFactory) {
    this.clientFactory = clientFactory;
    view = clientFactory.getEmployeesCreateFormView();

    employeeContext = clientFactory.getRequestFactory().employeeContext();
    employee = employeeContext.create(EmployeeProxy.class);
    editor = GWT.create(EmployeeEditorDriver.class);
  }

  @Override
  public void start(AcceptsOneWidget container, EventBus eventBus) {
    view.setPresenter(this);
    container.setWidget(view.asWidget());
    editor.initialize(view);
    editor.edit(employee, employeeContext);
  }

  @Override
  public void doCreate() {
    editor.flush();
    // I STILL HAVE NO IDEA WHAT TO DO WITH THIS ????????
    employee.setVersion(Integer.valueOf(1));

    Request<EmployeeProxy> createRequest = employeeContext.persist(employee);
    createRequest.fire(new Receiver<EmployeeProxy>() {

      @Override
      public void onSuccess(EmployeeProxy response) {
        Window.alert("successfully created employee " + response.getId() + ": " + response.getFirstName());
        clientFactory.getPlaceController().goTo(new EmployeesCreatePlace());
        }
      });
    }
  });
}

1 Ответ

2 голосов
/ 09 января 2012

Способ сделать это - edit() пустой объект (например, тот, который вы только что создали), когда ваша деятельность начинается (точно так же, как если бы вы редактировали существующий объект), так что flush() заполнит объектсо значениями полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...