Kut*_*ach 0 java gwt header celltable
我的任务是创建一个带有控件的表来添加新行.这个典型的控件应该包含相应的TextEdits和一个"添加新行"按钮.
我使用CellTable.
我可以单独创建这个"添加小部件",只需在某个面板中组合按钮和必要的字段,但我想尝试将其绑定到表中.我想用CellTable来制作它.为此,我尝试使用CellTable的标题.我创建了一个Header并添加了EditCellText和ButtonCell.我有两个问题:
[1]最后,第一个问题是:如何在CellTable的标题中添加一个按钮,以及如何处理该按钮上的点击?该按钮应该看起来像一个按钮,而不仅仅是一些点击区域.
[2]可能还有另一种方法可以完成我的任务.是否可以创建CellTable,其中不同的行包含不同的按钮?即第一行保持按钮"添加",所有其他行按住"删除"按钮.GWT可以这样做吗?
[3]还有一个问题.目前,我使用Java代码描述了我的CellTable的结构.即我在创建父窗口小部件时手动创建和添加列和标题对象.是否可以用XML表示我的CellTable的结构,即使用一些mySpecialCellTable.ui.xml文件?
小智 6
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
}
}
Run Code Online (Sandbox Code Playgroud)
在你的代码中
BtnHeader header = new BtnHeader(new ButtonCell()){
@Override
protected void updateHeader(){
// Actions when clicking button
}
cTable.addColumn(column, header);
Run Code Online (Sandbox Code Playgroud)