Как создать повторно используемые виджеты и объекты в GWT? - PullRequest
0 голосов
/ 16 ноября 2011

Я работаю над личным проектом, где у меня есть FormPanel.Внутри панели формы у меня есть flexTable.В котором есть строки с флажками.В каждой строке, которая динамически добавляется, будет метка «Очистить» в конце строки.У метки есть обработчик кликов, чтобы выбрать идентификатор строки и удалить его из гибкой таблицы.

Однако в GWT я могу использовать свой экземпляр метки только один раз.Таким образом, каждый раз, когда добавляется новая строка, метка очистки всегда заканчивается последней и не повторяется.Я хотел бы иметь возможность повторить очистку, сохраняя при этом функциональность для удаления соответствующей строки.Я очень новичок в этом и Java, поэтому любая помощь будет принята с благодарностью.Спасибо!

Ps.Я использую UiBinder для создания этих страниц, не уверен, что это имеет какое-то значение.Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2011

Виджет может иметь только одного родителя.Таким образом, каждый раз, когда вы добавляете один и тот же экземпляр метки в новую строку, он удаляется GWT из предыдущей строки и вместо этого вставляется в новую.Одним из вариантов будет создание одного экземпляра метки на строку.Вы можете установить обработчик кликов в таблице и проверить, какая ячейка была нажата:

@UiHandler("table")
void onTableClick(ClickEvent event) {
    Cell cell = table.getCellForEvent(event);
    if (cell != null) {
        int rowIndex = cell.getRowIndex();
        int cellIndex = cell.getCellIndex();
    }
}

Рассматривали ли вы использование CellTable вместо FlexTable?Он должен иметь лучшую производительность с несколькими виджетами в ячейках таблицы.

...