anubis
anubis

Reputation: 1505

How can I get a click on a row in a table in Cuba framework?

I have to detect a click in a row in a table in Cuba framework but I don't find how.

I have a TreeTable. Then I have a button. If I have nothing selected in the table, I want the button disabled. If I click on a item I want the button to be enabled. If I click on a sub-item, I want the button to be disabled.

It is possible, in the action of the button to use a:

trackSelection = true

That will work, but enabled the button too if I click on a sub-item.

Then The idea is, when anything is clicked on the table, then do something. I have only to track the selection of any item, and then do a logic.

How can I track this selection?

I have tried anything like:

table.setClickListener("columnId", new CellClickListener() {

            @Override
            public void onClick(Entity item, String columnId) {
                // TODO Auto-generated method stub
                LOG.info("On cell click");
            }
        });

First, that don't work, even if I click on a cell. Then even if it will work, I have the complete row and not only a cell.

Somebody have an idea?

Thanks Best regards

Upvotes: 1

Views: 1231

Answers (1)

jreznot
jreznot

Reputation: 2773

You can react on selection change in Table using CollectionDatasource.ItemChangeListener:

    employeesDs.addItemChangeListener(event -> {
        log.info("Datasource {} item has been changed from {} to {}",
                event.getDs(), event.getPrevItem(), event.getItem());
    });

See also: https://doc.cuba-platform.com/manual-6.9/datasource_listeners.html

Upvotes: 1

Related Questions