Логический флаг элемента данных не будет сохранять свое состояние при возврате элемента с сервера через диспетчера в Presenter (на стороне клиента).
общий пакет
public class ResourceItem extends BaseResourceItem implements IsSerializable {
private String name;
public ResourceItem() {
super();
}
public ResourceItem(String name) {
super(true);
this.name = name;
}
}
public class BaseResourceItem {
private boolean removeEnabled = true;
public BaseResourceItem() {
super();
}
public BaseResourceItem(boolean removeEnabled) {
super();
this.removeEnabled = removeEnabled;
}
public boolean isRemoveEnabled() {
return removeEnabled;
}
public void setRemoveEnabled(boolean removeEnabled) {
this.removeEnabled = removeEnabled;
}
}
Указанный флаг является removeEnabled.По умолчанию это true, и хотя я установил его на false на стороне сервера, когда Presenter его получит, по какой-то причине он был установлен на false.Я что-то упустил с сериализацией?(не могу думать ни о чем другом на данный момент).
Серверный пакет
@GenDispatch
public class GetModelSettings {
@Out(1)
List<ResourceItem> listOfSettings;
}
public class GetModelSettingsHandler implements ActionHandler<GetModelSettingsAction, GetModelSettingsResult> {
@Override
public GetModelSettingsResult execute(GetModelSettingsAction action, ExecutionContext context)
throws ActionException {
ResourceItem item1 = new ResourceItem();
ResourceItem item2 = new ResourceItem();
item2.setRemoveEnabled(false);
list.add(item1);
list.add(item2);
// item1 -> true
// item2 -> false
return new GetModelSettingsResult(list);
}
}
Как видите, простой обработчик возвращает список.На этом этапе данные верны, для одного элемента установлен флаг true, для другого - false.
Клиентский пакет
public class ModelSettingsPresenter {
dispatcher.execute(new GetModelSettingsAction(), new AsyncCallback<GetModelSettingsResult>() {
@Override
public void onSuccess(GetModelSettingsResult result) {
itemList = result.getListOfSettings();
// itemList.get(0) -> true
// itemList.get(1) -> true
}
});
}
Оба элемента данных имеют флагиустановите в этом презентере значение true.Есть идеи, почему это происходит?