[英]GWT 2: how can I add Button to the CellTable's header?
我的任务是创建一个带有控件的表以添加新行。 这个典型的控件应包括相应的TextEdits集和一个“添加新行”按钮。
我使用CellTable。
我可以仅在某些面板中组合按钮和必要字段来单独创建此“添加小部件”,但是我想尝试将其绑定到表。 我想使用CellTable进行制作。 为此,我尝试利用CellTable的标题。 我创建了一个页眉,并添加了EditCellText和ButtonCell。 我有两个问题:
[1]最后,第一个问题是: 如何将按钮添加到CellTable的标题中,以及如何处理该按钮的单击? 该按钮应该看起来像一个按钮,而不仅仅是单击区域。
[2]也许还有另一种方式可以完成我的任务。 是否可以在不同行包含不同按钮的地方创建CellTable? 即第一行按住按钮“添加”,所有其他行按住按钮“删除”。 GWT可以做到吗?
[3]还有一个问题。 目前,我使用Java代码描述了CellTable的结构。 即我在创建父窗口小部件时手动创建并添加列和标题对象。 是否可以用XML表示CellTable的结构,即使用某些mySpecialCellTable.ui.xml文件?
public static class BtnHeader extends Header<String>{
public BtnHeader(ButtonCell cell) {
super(cell);
}
@Override
public void onBrowserEvent(Context context, Element elem, NativeEvent nativeEvent)
{
int eventType = Event.as(nativeEvent).getTypeInt();
if (eventType == Event.ONCLICK)
{
nativeEvent.preventDefault();
updateHeader();
}
}
@Override
public String getValue() {
return "Click!";
}
protected void updateHeader() {
// TODO to redefine in a defiant class
}
}
在你的代码中
BtnHeader header = new BtnHeader(new ButtonCell()){
@Override
protected void updateHeader(){
// Actions when clicking button
}
cTable.addColumn(column, header);
要在表格中显示按钮,可以使用ButtonCell:
Column<MyObject, String> delete = new Column<MyObject, String>(new ButtonCell()) {
@Override
public String getValue(final MyObjectobject object) {
return "delete";
}
};
delete.setFieldUpdater(new FieldUpdater<MyObject, String>() {
@Override
public void update(final int index, final MyObjectobject object, final String value) {
myActivity.delete(object); // to whatever should happen if button is clicked
}
});
这也应该回答第二个问题。 据我所知,您必须在java类中添加列。 在uibinder文件中,您只能添加整个单元格表。
<p1:CellTable ui:field="table"></p1:CellTable>
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.