/ / Comment puis-je obtenir le proxy modifié à partir de RequestFactoryEditorDriver - gwt, requestfactory

Comment puis-je obtenir le proxy modifié de RequestFactoryEditorDriver - gwt, requestfactory

Je n'arrive pas à comprendre comment mettre à jour ma table depuis des modifications à l’aide d’un éditeur. Si je pouvais obtenir le proxy modifié, je pourrais utiliser le fournisseur de données pour mettre à jour ma table.

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

Le proxy dans.using (proxy) ne contient pas les modifications apportées à l'éditeur. Cependant, la méthode de persistance sur le serveur obtient les valeurs mises à jour. Si je recharge les données du serveur, j'obtiens les valeurs correctes sur la table.

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

Le proxy est défini dans la vue liste: configurationPageView.proxy = selectionModel.getSelectedObject ();

Tout avis serait grandement apprécié. Je vous remercie.

Réponses:

2 pour la réponse № 1

Vous pouvez modifier la manière dont la demande est construite en procédant comme suit:

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

Dans GWT 2.4, il sera possible de conserver l’organisation et l’utilisation de votre code actuel. 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(....);
}