开发者

How can i get the edited proxy from RequestFactoryEditorDriver

开发者 https://www.devze.com 2023-03-11 04:52 出处:网络
I can\'t figure out how to update my celltable after changes have been made using an editor. If I could get the edited proxy then I can use the dataprovider to update my celltable.

I can't figure out how to update my celltable after changes have been made using an editor. If I could get the edited proxy then I can use the dataprovider to update my celltable.

public void saveCampaign() {
  driver.flush();
  // the problem. proxy at this point should have the new values?....
  context.persist().using(proxy).fire(new Receiver<Void>() {
    @Override
    public void onSuccess(Void response) {
      showListView();
    }
  });
}

The proxy in .using(proxy) does not contain the changes made on the editor. However the persist method on the server gets the updated values. If I reload the data from the server I get the correct values to the celltable.

public void editCampaign(CampaignProxy proxy) {
  this.proxy = proxy;
  if (proxy != null) {
    context = AEHOME.requestFactory.campaignRequest();
    showEditView();
  }
}

private void showEditView() {
  driver.initialize(eventBus, AEHOME.requestFactory, editView);
  driver.edit(proxy, context);
  deckPanel.showWidget(deckPanel.getWidgetIndex(editView));
}

Proxy is set in the list view: configurationPageView.proxy = selectionModel.getSelectedObject();

Any ad开发者_C百科vice would be greatly appreciated. Thank you.


You can change how the request is built by doing the following:

private void showEditView() {
  driver.initialize(eventBus, AEHOME.requestFactory, editView);
  driver.edit(proxy, context);
  // Set up method invocation and callback in advance
  context.persist().using(proxy).to(new Receiver<Void>() {
    @Override
    public void onSuccess(Void response) {
      showListView();
    }
  }););
  deckPanel.showWidget(deckPanel.getWidgetIndex(editView));
}

public void saveCampaign() {
  driver.flush().fire();
}

In GWT 2.4 it will be possible to keep your current code organization and use RequestContext.append():

public void saveCampaign() {
  // Returns the context passed to edit()
  RequestContext ctx = driver.flush();
  // append() is generic and returns the type returned by myProxyContext();
  ctx.append(requestFactory.myProxyContext()).persist().using(proxy).fire(....);
}
0

精彩评论

暂无评论...
验证码 换一张
取 消