Ваш код Java выглядит хорошо.
Убедитесь, что у вас есть html-файл типа webapp/frontend/styles/shared-styles.html
, содержащий что-то вроде:
<dom-module id="my-grid-theme" theme-for="vaadin-grid">
<template>
<style>
[part~="cell"].error_row {
background: red;
}
</style>
</template>
</dom-module>
Если ваш макет содержит сетку, помеченную @HtmlImport("frontend://styles/shared-styles.html")
(которую вы уже используете, поскольку ваш пользовательский класс CSS уже применен), он должен работать.
Пример:
grid.addColumn(Customer::getFirstname).setHeader("Firstname");
grid.addColumn(Customer::getLastname).setHeader("Lastname");
grid.addColumn(Customer::getEmail).setHeader("Email");
grid.setClassNameGenerator(customer -> {
if (customer.getFirstname().equals("Marco")) {
return "error_row";
} else {
return "";
}
});
становится: