gpt4 book ai didi

java - 带有 UIBinder 的 GWT CellTable

转载 作者:行者123 更新时间:2023-11-30 17:58:33 25 4
gpt4 key购买 nike

我试图通过单击页面中的按钮来显示一个非常简单的 cellTable。然而,celltable 没有被渲染。

提供以下代码片段以加深理解:

preview.ui.xml 文件

<g:HTMLPanel>
<div class="{bundle.css.roundedBorder}">
<table style='width:100%;'>
<tr>
<td>
<c:CellTable pageSize='15' ui:field='cellTable' width="100%">
</c:CellTable>
</td>
</tr>
</table>
</div>
</g:HTMLPanel>

相应的 Java 类:

public class Preview extends Composite {
.
.
. // other generic GWT code to bind UIBinder XML with this class
.
.
.

@UiField
CellTable<Contact> cellTable;

@UiHandler("button")
void handleClickOnSearchButton(ClickEvent e) {
cellTable = configureCellTable();
}

private CellTable<Contact> configureCellTable() {
// The list of data to display.
List<Contact> CONTACTS = Arrays.asList(new Contact("John", "123 Fourth Road"), new Contact("Mary", "222 Lancer Lane"), new Contact("Zander", "94 Road Street"));
// Create a CellTable.
CellTable<Contact> table = new CellTable<Contact>();


// Create name column.
TextColumn<Contact> nameColumn = new TextColumn<Contact>() {
@Override
public String getValue(Contact contact) {
return contact.name;
}
};




// Create address column.
TextColumn<Contact> addressColumn = new TextColumn<Contact>() {
@Override
public String getValue(Contact contact) {
return contact.address;
}
};

// Add the columns.
table.addColumn(nameColumn, "Name");
table.addColumn(addressColumn, "Address");


// Create a data provider.
ListDataProvider<Contact> dataProvider = new ListDataProvider<Contact>();

// Connect the table to the data provider.
dataProvider.addDataDisplay(table);

// Add the data to the data provider, which automatically pushes it to the widget.
List<Contact> list = dataProvider.getList();
for (Contact contact : CONTACTS) {
list.add(contact);
}


return table;
}



private static class Contact {
private final String address;
private final String name;

public Contact(String name, String address) {
this.name = name;
this.address = address;
} } }

请指导!

谢谢,

阿克谢

最佳答案

您有两个不同的 cellTable 对象。一个是由 UiBinder 创建的,一个是在你的 configureCellTable 方法中创建的。

尝试在 UiBinder 文件中添加一个 SimplePanel 而不是表格:

<td>
<g:SimplePanel ui:field="simplePanel"/>
</td>

然后在您的 Java 代码中添加表格:

@UiField
SimplePanel simplePanel;
...
private CellTable<Contact> configureCellTable() {
...
simplePanel.add(table);
}

关于java - 带有 UIBinder 的 GWT CellTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com