/ / Como posso obter o proxy editado de RequestFactoryEditorDriver - gwt, requestfactory

Como posso obter o proxy editado de RequestFactoryEditorDriver - gwt, requestfactory

Não consigo descobrir como atualizar meu celltable depois que as alterações foram feitas usando um editor. Se eu pudesse obter o proxy editado, posso usar o dataprovider para atualizar meu 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();
}
});
}

O proxy em.using (proxy) não contém as alterações feitas no editor. No entanto, o método persist no servidor obtém os valores atualizados. Se eu recarregar os dados do servidor, recebo os valores corretos para a tabela de células.

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 é definido na visualização de lista: configurationPageView.proxy = selectionModel.getSelectedObject ();

Qualquer conselho seria muito apreciado. Obrigado.

Respostas:

2 para resposta № 1

Você pode alterar como a solicitação é criada, fazendo o seguinte:

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

No GWT 2.4 será possível manter sua organização de código atual e usar 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(....);
}