The trouble is that getting the books is dependent on the queryparam variable.

Matej Knopp wrote:
Does it also happen when you call result.setTotalCount(books.size())
before calling getCount()?

>From IDataSource:
                /**
                 * Sets the total items count. Alternatively, if the total item
count can't be determined,
                 * either {...@link #MORE_ITEMS} or {...@link #NO_MORE_ITEMS} 
constant can
be used to indicate
                 * whether there are more items left or not.
                 *
                 * If the real items count is specified, it might affect the 
result of
                 * {...@link IQuery#getCount()}, so it is preferred to call 
this method
before calling
                 * {...@link #setItems(Iterator)}.
                 *
                 * @param count
                 *            the total count of items
                 */

                public void setTotalCount(int count);

-Matej

On Mon, Oct 19, 2009 at 2:52 PM, Linda van der Pal
<lvd...@heritageagenturen.nl> wrote:
Hello,

I have a problem with the inmethod IDataSource. I've provided my own
implementation for it, including implementing the query method. But for some
reason, it only seems to want to return one row, while I know there should
be two. Can anybody tell me what I might be doing wrong? It must be that
I've made a stupid mistake somewhere, because I did get it working for two
other kinds of data. I simply don't see what I did differently.

Here's the query method. It's the initializing of the QueryParam variable
that fails. When I add in the line that I've commented out just below it, I
do get the two rows I'm expecting.

public void query(final IQuery query, final IQueryResult result) {
      String sortProperty = null;
      boolean sortAsc = true;
            // is there any sorting
      if (query.getSortState().getColumns().size() > 0) {
          // get the most relevant column
          ISortStateColumn state = query.getSortState().getColumns().get(0);
                    // get the column sort properties
          sortProperty = convertToFieldName(state.getPropertyName());
          sortAsc = state.getDirection() == IGridSortState.Direction.ASC;
      }
            List<Book> resultList;
      try {
          filter.setSort(sortProperty);
          filter.setSortOrder(sortAsc);
                     // HERE'S MY PROBLEM: query.getCount() is 1 for some
reason
          QueryParam qp = new QueryParam(query.getFrom(), query.getCount());
          //QueryParam qp = new QueryParam(0, 0);
                    List<Book> books = new
BookRetriever().getAllBooks(filter, qp);
          // determine the total count
          result.setTotalCount(books.size());
                    resultList = books;
      } catch (Exception e) {
          resultList = new ArrayList<Book>();
      }
            result.setItems(resultList.iterator());
  }

Regards,
Linda

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org
------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 8.5.422 / Virus Database: 270.14.21/2445 - Release Date: 10/19/09 06:40:00



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to