【发布时间】:2015-10-12 10:55:51
【问题描述】:
我无法理解如何在 GWT 中构建列。假设我有一个ArrayList 或Books,并希望将它们列在CellTable 中。一个特殊要求是每个Book 有一个ArrayList 的Pages,我想基于Page 列表构建自己的HTML 代码。
tutorial on custom cells 解释了如何创建一个输入 String 然后返回 String 的单元格。但是,我想给它一个Book,然后得到一个String(通过处理Book 的ArrayList<Page>)。为此,我几乎复制了单元格的示例代码,只是将String 替换为Book。
我不知道如何使用此单元格向我的CellTable 添加一列。使用TextColumn 将获取单元格的render 方法生成的HTML 代码并将其转义。我的最后一次尝试是构建一个Column<PagesCell, String>,但Column 的构造函数想要一个实现Cell<String> 的对象,而我的实现Cell<Book>。我究竟做错了什么?很可能,我对单元格和列在 GWT 中的工作方式有一些基本的误解。下面,您可以看到我想到的代码,但它不起作用。
Cell<Book> pagesCell = new PagesCell();
Column<Book, String> pagesColumn = new Column<Book, String>(pagesCell) {
@Override
public String getValue(Book book) {
PagesCell pagesCell = new PagesCell();
SafeHtmlBuilder safeHtmlBuilder = new SafeHtmlBuilder();
pagesCell.render(null, book, safeHtmlBuilder);
return safeHtmlBuilder.toSafeHtml().asString();
}
};
此代码产生错误
Column中的Column (com.google.gwt.cell.client.Cell)不能应用到(com.google.gwt.cell.client.Cell)
【问题讨论】:
-
你试过
cellTable.addColumn(pagesColumn);吗? -
我没有机会,因为我什至没有声明
pagesColumn。我在我的问题中添加了 IntelliJ 显示的错误。 -
您遇到的错误是什么?