如何在GWT中创建可重用的小部件和对象?

时间:2011-11-16 00:23:45

标签: java javascript gwt uibinder

我正在开发一个个人项目,我有一个formPanel。在表单面板中,我有一个flexTable。其中有带复选框的行。在动态添加的每一行中,行末尾都会有一个“清除”标签。标签有一个单击处理程序,用于获取行ID,并将其从flex表中删除。

然而,在GWT中,我只能使用我的标签实例一次。因此,每次添加新行时,clear标签始终是最后一个且不可重复的。我希望能够重复清除,同时保持功能删除其相应的行。我非常擅长这个和java所以任何帮助将不胜感激。谢谢!

聚苯乙烯。我正在使用UiBinder来创建这些页面,不确定这是否有所不同。谢谢!

1 个答案:

答案 0 :(得分:0)

小部件只能有一个父级。因此,每次将相同的标签实例添加到新行时,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?表单元格中的多个小部件应该具有更好的性能。