пытаясь реализовать GWT cellList - PullRequest
0 голосов
/ 18 февраля 2012

Я пытаюсь реализовать Список ячеек и вставить свои данные, поступающие с сервера, в мой Список ячеек, в celltable все работало нормально, но теперь мне нужно переключиться на cellList, который не работает.

от GWT Показать случай, когда я сделал этот класс

         public class EmployerJobCell extends AbstractCell<EmployerJobs> {

@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
        EmployerJobs value, SafeHtmlBuilder sb) {

     if (value == null) {
            return;
          }

          sb.appendHtmlConstant("<table>");

          // Add the contact image.
          sb.appendHtmlConstant("<tr><td rowspan='3'>");
          sb.appendHtmlConstant("</td>");

          // Add the name and address.
          sb.appendHtmlConstant("<td style='font-size:95%;'>");
          sb.appendEscaped(value.getJobTitle());
          sb.appendHtmlConstant("</td></tr><tr><td>");
          sb.appendEscaped(value.getJobLevel());
          sb.appendHtmlConstant("</td></tr></table>");



}

}

в моем классе просмотра я сделал это

            EmployerJobCell jobCell = new EmployerJobCell();
            celllist = new CellList<EmployerJobs>(jobCell);
    celllist.setPageSize(5);
    verticalpanel.add(celllist);

но я не вижу ничего на мой взгляд.

Должен ли я также использовать setRowData?

Если да, как я получу свои данные

           ArrayList<EmployerJobs > values = new ArrayList<EmployerJobs>();
       celllist.setRowData(values);

как то, что я положу в свой список

          values.  ??       

1 Ответ

0 голосов
/ 19 февраля 2012

CellList работает в основном так же, как и CellTable - оба берут список данных и рисуют их с помощью Cell. Основное отличие состоит в том, что CellList рисует только одну ячейку с каждым типом контента, тогда как CellTable может рисовать несколько, каждая из которых считывает данные не так, как объект модели.

Оба реализуют HasData, что позволяет вам, помимо прочего, предоставлять данные и выбирать мониторы. Таким образом, в обоих случаях вы должны вызывать widget.setRowData(index, data) для каждого, чтобы заставить его рисовать контент. Короче говоря, чтобы полностью заменить содержимое элемента CellList на List с именем values, сделайте что-то вроде этого:

List<EmployerJobs> values = ...
CellList<EmployerJobs> cellList = ...

cellList.setRowCount(0);// clear out existing rows
cellList.setRowData(0, values);// apply new rows

Или, проще, используя AbstractHasData.setRowData(List),

cellList.setRowData(values); //clear and apply new rows

Это должно привести вас к точке, в которой вы отображаете данные.

Использование подкачки делает это немного сложнее - обычно вы используете виджет подкачки, такой как SimplePager, и вы предоставляете данные не HasData, а поставщику данных, который, в свою очередь, передает его виджету, на основе информации подкачки. См. http://code.google.com/webtoolkit/doc/latest/DevGuideUiCellWidgets.html#paging и http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/javadoc/com/google/gwt/examples/view/AsyncDataProviderExample.java?r=8944 для некоторых примеров того, как сделать это, передавая данные в DataProvider для управления ими и позволяя AbstractPager позволить пользователю решать, что он хочет смотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...