我必须在Cuba框架中检测到一行中的点击,但我不知道如何检测。
我有一个树表。然后我有一个按钮。如果我在表中没有选择任何内容,我希望禁用该按钮。如果我单击某个项目,我希望启用该按钮。如果我点击一个子项目,我希望该按钮被禁用。
有可能,在按钮的作用下使用:
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");
}
});
首先,即使我点击一个单元格,这也不起作用。然后,即使它能工作,我也有完整的一行,而不仅仅是一个单元格。
有人有主意吗?
谢谢向致以最良好的问候
您可以使用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