made CellEditStartedEvent.getPath public

Hi,
if one wants to detect, which cell/column was edited by using a grid.cellEditStartedListener, there are currently only private methods and fields containing the necessary infos and some ugly reflection is needed. It would be fine if the path which is the columnInternalId is available by a public getter method. Better, if not only the columnInternalId but also the commonly used column-key is public available within the cellEditStartEvent.

Hmm, what is the use case?
Are you trying to style the cell that’s being edited?
It would be useful if the cell had a classname / attribute indicating whether its being edited, but I guess you could just base the style on the inner element.

Are you trying to figure out which property of the object has been modified, so you could modify only that in DB?
Then you could just specify ItemUpdater on column definition

grid.addEditColumn(SimpleObject::getText).text(SimpleObject::setText);
// or
grid.addEditColumn(SimpleObject::getText2).text((item, text2) -> {
    // save to database ...
    item.setText2(text2);
    grid.getDataProvider().refreshItem(item);
    System.out.println("text2 from item: " + item.getText() + ", text2: " + text2);
});

We have to call e.g. setItems(…) if the cell to edit is a within a certain column for which we use select as edit components. Every row / DTO of the grid could have their own/distinct items in the select / edit component.

I see, seems like in Grid you could something like this (haven’t tested it though):

grid.addColumn(SimpleObject::getText2).setEditorComponent(item -> {
    var mySelect = new Select<MySimpleEnum>();
    if (item.getId().equals(1L)) {
        mySelect.setItems(MySimpleEnum.ROCK, MySimpleEnum.PAPER);
    } else {
        mySelect.setItems(MySimpleEnum.SCIZORS, MySimpleEnum.SPOCK);
    }

    return mySelect;
});

but doesn’t seem possible for GridPro.

Maybe you can create a feature request for this feature?
https://github.com/vaadin/flow/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=

So in your case you would need a new method like this:

Column<T> select(ItemUpdater<T, String> itemUpdater, SerializableFunction<T, String> options)

that could be used like

grid.addEditColumn(SimpleObject::getText).select(SimpleObject::setText, myObject -> myService.getOptionsForObject(myObject));

Thank you @incredible-wolf Issue created: https://github.com/vaadin/flow/issues/18787