code: protected void load(int offset, int limit) {
          if (!completed) {
              LoadingEvent.fire(this, offset, offset + (limit - 1));
              dataSource.load(new LoadConfig<>(offset, limit), new LoadCallback<T>() {
                  @Override
                  public void onSuccess(LoadResult<T> loadResult) {
                      LoadedEvent.fire(InfiniteScrollPanel.this, loadResult);
                      InfiniteScrollPanel.this.offset = InfiniteScrollPanel.this.offset + limit;
  
                      if (InfiniteScrollPanel.this.offset >= loadResult.getTotalLength()) {
                          CompleteEvent.fire(InfiniteScrollPanel.this, loadResult.getTotalLength());
                      }
                  }
  
                  @Override
                  public void onFailure(Throwable caught) {
                      ErrorEvent.fire(InfiniteScrollPanel.this, caught.getMessage());
                  }
              });
          }
      }
docs: Will load the provided offset and limit with the datasource provided via
  {@link this#setDataSource(DataSource)}