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 № 1Vous 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(....);
}