AsyncListViewAdapter + SimplePager, почему неактивный пейджер очищает таблицу?

EDIT: это похоже на ошибку< /а>.

Я пытаюсь заставить CellTable работать вместе с AsyncListViewAdapter‹T› и SimplePager‹T›. Данные отображаются, но когда пейджер должен быть «глухим» (имеется в виду, когда отображаются все существующие данные), он все равно получает клики и, что более важно, заставляет отображаемые данные исчезать. Вместо моих данных отображается индикатор «загрузки», и он продолжает загружаться и загружаться... Очевидно, ничего не загружается, так как он даже не вызывает обработчик onRangeChanged.

Я просмотрел фрагменты кода в этой теме , но я не вижу никаких подозрений в том, что я делаю.

Есть ли очевидный ответ на ошибку новичка?

Я сократил имена переменных, надеюсь, они не будут слишком большими.

protected class MyAsyncAdapter
  extends AsyncListViewAdapter<DTO> {
  @Override
  protected void onRangeChanged(ListView<DTO> v) {
    /*
     * doesn't even get called on [go2start/go2end] click :(
     */
    Range r = v.getRange();
    fetchData(r.getStart(), r.getLength());
  }
}

private void addTable() {
  // table:
  CellTable<DTO> table = new CellTable<DTO>(10);
  table.addColumn(new Column<DTO, String>(new TextCell()) {
      @Override
      public String getValue(DTO myDto) {
        return myDto.getName();
      }
    }, "Name");

  // pager:
  SimplePager<DTO> pager = new SimplePager<DTO>(table);
  table.setPager(pager);

  adapter = new MyAsyncAdapter();
  adapter.addView(table);
  // does not make any difference:
  // adapter.updateDataSize(0, false);
  // adapter.updateDataSize(10, true);

  VerticalPanel vPanel = new VerticalPanel();
  vPanel.add(table);
  vPanel.add(pager);
  RootLayoutPanel.get().add(vPanel);
}

// success-handler of my fetching AsyncCallback
@Override
public void onSuccess(List<DTO> data) {
  // AsyncCallback<List<DTO>> has start field
  adapter.updateViewData(start, data.size(), data);
  if(data.size() < length)
    adapter.updateDataSize(start + data.size(), true);
}

С уважением
Я. Заруба


person Jaroslav Záruba    schedule 13.06.2010    source источник


Ответы (1)


Очевидно, из-за ошибки.

person Jaroslav Záruba    schedule 14.06.2010