我想基于对象的一些输入删除动作单元的单击处理程序。怎么办呢?
目前,我的代码如下所示:
public static Column<vTO, vTO>
createReissueButtonColumn(String columnName) {
ActionCell<VolunteerTO> reListCell = new ActionCell<VTO>("Reissue",
new ActionCell.Delegate<VTO>() {
@Override
public void execute(VTO object) {
// code to be executed
}
})
{
@Override
public void render(Cell.Context context,VTO value,SafeHtmlBuilder sb) {
if(null != value.getStatus() && !"".equalsIgnoreCase(value.getStatus())) {
super.render(context,value,sb);
}
}
};
Column<VTO, VTO> reListColumn = new Column<VTO, VTO>(reListCell) {
@Override
public VTO getValue(VTO object) {
return object;
}
};
reListColumn.setDataStoreName(columnName);
reListColumn.setSortable(false);
return reListColumn;
}
答案 0 :(得分:1)
您可以根据自己的条件忽略点击(不执行任何操作)。
编辑: 在您的代码中,在execute()方法中,您可以根据特定条件执行某些操作,也可以不执行此操作。
或者,您可以取消此列上的点击事件:
unitTable.addCellPreviewHandler(new Handler<Unit>() {
@Override
public void onCellPreview(CellPreviewEvent<Unit> event) {
if ("click".equals(event.getNativeEvent().getType())) {
if (event.getColumn() != myTable.getColumnIndex(reListColumn)) {
// Check some condition. If necessary:
event.setCanceled(true);
}
}
}
});