Как получить примененный цвет фона из строки и ячейки Vaadin TreeGrid / Grid?

Я использую Vaadin версии 8.6.4 для Java, и у меня есть набор данных, представленный в TreeGrid. До сих пор я не мог получить styleName, который применяется к какой-либо строке или любой ячейке. Есть ли какой-нибудь метод или трюк, чтобы получить фактический стиль ячейки / строки в vaadin? Список стилей добавляется, как в приведенном ниже коде.

Я также установил идентификатор для всех ячеек до создания сетки, переопределив внутренний метод класса сетки. После этого я смогу запустить функцию Javascript на стороне клиента для поиска стиля ячейки по ее идентификатору. Но все это было настолько сложно, что я не добился успеха.

final String reservationColor  = "background-color: "green" !important;";   
final String STYLENAME_RESERVED = "reserved";

Styles styles = Page.getCurrent().getStyles();
styles.add(".v-treegrid-cell." + STYLENAME_RESERVED +"{"+ reservationColor + "}");

person Helmer Barcos    schedule 18.01.2019    source источник


Ответы (1)


TreeGrid напрямую расширяет Grid, поэтому вы должны иметь возможность использовать аналогичные методы для стилизации TreeGrid.

Предпочтительный способ, например, изменить цвет фона ячейки - использовать генератор стилей

Здесь уже есть вопрос об этом с ответом: Как установить цвет фона ячейки в сетке / таблице в представлении в Vaadin?

person Tatu Lund    schedule 18.01.2019
comment
Спасибо за ответ, но я не хочу устанавливать цвет фона для ячейки. Я хочу ПОЛУЧИТЬ стиль этой ячейки. - person Helmer Barcos; 18.01.2019
comment
Я бы рекомендовал хранить информацию об этом на стороне сервера и использовать эту информацию также в генераторе стилей, чтобы определить имя стиля, которое будет использоваться. Тогда вам не нужно напрямую проверять имя стиля. - person Tatu Lund; 18.01.2019
comment
Конечно. Проблема в том, что я хочу создать представление TreeGrid в формате xlsx, а некоторые строки имеют важные цвета. Есть ли способ узнать, какой стиль / цвет фона имеет любую ячейку сетки? это происходит на стороне сервера. - person Helmer Barcos; 18.01.2019
comment
В: Есть ли способ узнать, какой стиль / цвет фона имеет любую ячейку сетки? О: Для этого нет серверного API. Вот почему я предложил другой способ установить цвет фона и вместо этого сохранить эту информацию в вашей модели данных. Я думаю, что с точки зрения архитектуры программного обеспечения это также более правильный способ. - person Tatu Lund; 21.01.2019