在古巴框架中,我必须检测到表格中某行的点击,但是我找不到方法。
我有一个TreeTable。然后我有一个按钮。如果我在表中没有任何选择,则希望禁用该按钮。如果我单击某个项目,则希望启用该按钮。如果我单击一个子项目,则希望禁用该按钮。
在按钮操作中可以使用:
trackSelection = true
这将起作用,但是如果我单击子项目,也会启用该按钮。
然后,想法是,当在表上单击任何内容时,然后执行某项操作。我只需要跟踪任何项目的选择,然后执行逻辑即可。
如何跟踪此选择?
我尝试过类似的事情:
table.setClickListener("columnId", new CellClickListener() {
@Override
public void onClick(Entity item, String columnId) {
// TODO Auto-generated method stub
LOG.info("On cell click");
}
});
首先,即使我单击一个单元格,它也不起作用。然后,即使它可以工作,我仍然拥有完整的行,而不仅仅是一个单元格。
有人有主意吗?
谢谢 最好的问候
答案 0 :(得分:1)
您可以使用CollectionDatasource.ItemChangeListener
对表中的选择更改做出反应:
employeesDs.addItemChangeListener(event -> {
log.info("Datasource {} item has been changed from {} to {}",
event.getDs(), event.getPrevItem(), event.getItem());
});
另请参阅:https://doc.cuba-platform.com/manual-6.9/datasource_listeners.html