Как добавить виджет в качестве ячейки в таблице ячеек GWT - PullRequest
2 голосов
/ 27 декабря 2011

Теперь я застрял в проблеме разбиения страниц на виджеты в GWT.

Я использую таблицу Cell для отображения списка экземпляров моего класса пользовательского интерфейса Binder (например: LocationView). http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable Это витрина CellTable.

Теперь я хочу добавить свой виджет (класс пользовательского интерфейса) в каждую ячейку таблицы. Это будет выглядеть примерно так enter image description here

В этой таблице ячеек каждая ячейка является этим виджетом (LocationView - класс связывания пользовательского интерфейса):

enter image description here

Итак, как мне создать эту таблицу, используя таблицу ячеек (я не использую сетку, потому что она не поддерживает разбиение на страницы)

или Если я не могу использовать таблицу Cell для создания этой таблицы, что я могу использовать для нее, которая поддерживает разбиение на страницы (если число LocationView (значок, который вы видите) превышает 6, оно перейдет на страницу 2). 1017 *

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

Создание пользовательских ячеек В руководстве объясняется, как это сделать.

2 голосов
/ 05 февраля 2013

Чтобы добавить виджет в ячейку, я использую пользовательский CellTableBuilder и задаю уникальный идентификатор для ячейки, которая должна содержать виджет.Затем я прикрепляю виджет к DOM и перемещаю его в ячейку.

void addWidgetToCell(final String cellId, final Widget widget) {
    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
        @Override
        public void execute() {
            Element cellElem = DOM.getElementById(cellId);

            if (!widget.isAttached()) {
                // attach the detail to DOM (cannot attach it directly to the cell, because it has existing parent widget)
                RootPanel.get().add(widget);
            }
            // move detail element under the cell element
            cellElem.appendChild(widget.getElement());
        }
    });
}
...