Я не могу понять, как обновить мою таблицу сотовых телефонов после того, как изменения были сделаны с помощью редактора. Если бы я мог получить отредактированный прокси, я могу использовать dataprovider для обновления моей таблицы сотовых.Как я могу получить отредактированный прокси от RequestFactoryEditorDriver
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();
}
});
}
Прокси-сервер в .using (прокси) не содержит изменений, внесенных в редактор. Однако метод persist на сервере получает обновленные значения. Если я перезагружу данные с сервера, я получаю правильные значения для таблицы сотовых.
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));
}
прокси устанавливается в виде списка: configurationPageView.proxy = selectionModel.getSelectedObject();
Любые советы были бы весьма полезными. Спасибо.
Благодарим Вас за отличный ответ. Теперь я лучше понимаю. Я все еще не могу получить ссылку на editProxy для обновления моей таблицы сотовых телефонов. Я попытался вернуть новый прокси-сервер из метода persist, но это нарушает интерфейс ReqeustFactory. Я ожидал, что клеточная таблица будет автоматически обновляться. Что такое хороший способ обновить таблицу сотовых телефонов после редактирования, как это произошло в прокси, отображаемом в таблице сотовых телефонов? onSuccess (Void response) { proxy.getAdTitle(); // прокси в этот момент имеет старые значения showListView(); } –
Самый надежный способ обновления пользовательского интерфейса состоит в том, чтобы ваш элемент пользовательского интерфейса прослушивал события «EntityProxyChange» от общего «EventBus». Когда элемент пользовательского интерфейса получает уведомление о том, что объект, о котором он заботится, был обновлен, он должен создать свой собственный 'RequestFactory.find()' (поскольку событие содержит только идентификатор) для извлечения требуемых данных. Эта развязка может помочь уменьшить количество перекрестных помех между проблемами в вашем коде. В GWT 2.4, используя 'RequestBatcher.get(), find()' сделает это более эффективным. – BobV