如何在Cuba框架中的表上单击行?

时间:2018-07-27 10:02:40

标签: cuba-platform

在古巴框架中,我必须检测到表格中某行的点击,但是我找不到方法。

我有一个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");
            }
        });

首先,即使我单击一个单元格,它也不起作用。然后,即使它可以工作,我仍然拥有完整的行,而不仅仅是一个单元格。

有人有主意吗?

谢谢 最好的问候

1 个答案:

答案 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