AdvancedDataGrid: условно изменить значок конечного узла.

Введение: у меня есть плоская коллекция ArrayCollection объектов, которую я группирую для создания dataProvider для AdvancedDataGrid. В этой AdvancedDataGrid у меня есть различные ветви, представляющие различные типы задач. Я хочу условно изменить значок для конечных узлов в AdvancedDataGrid на основе поля даты, хранящегося в каждом объекте.

Для этого предположим, что каждый объект Task содержит идентификатор и updatedDate (представляющий дату последнего обновления задачи). Если задача не обновлялась в течение последних пяти дней (updatedDate +5 конечного узла (Task) должен быть красным, в отличие от противоположного, значок листа в AdvancedDatagrid должен быть зеленым, например, как изображение ниже. В этом случае задание 35 не обновлялось за последние 5 дней, а 13 и 39 - обновлено.

Вопрос: Как мне изменить листовые иконки в ADG на основе updatedDate базового объекта? Я думаю, что мне нужно расширить AdvancedDataGrid и переопределить какой-то метод, но какой и как? Любой тип руководства для достижения этой конкретной задачи очень ценится!

Я видел простые способы изменения открытых и закрытых значков в Интернете, но не было способа условно изменить значок открытого узла:)

Обновление: после применения решения @takteek groupIconFunction, которое всегда возвращало один и тот же значок:

Проблема в том, что мне нужны измененные значки конечного узла, а не ветви.

Решено: Использовал ответ @ takteek, за исключением использования iconFunction вместо groupIconFunction, потому что я хотел изменить значки конечного узла, а не groupIcons:)

1 ответ

Решение

Ваши два варианта:

  1. УкажитеgroupIconFunction для сетки данных. При этом передается текущий элемент, и вы возвращаете, какой значок использовать, или null, чтобы использовать значение по умолчанию.

  2. Создайте подкласс AdvancedDataGrid и переопределите makeListData, Эта функция отвечает за создание объекта AdvancedDataGridListData, который передается средствам визуализации. Вы можете изменить icon а также disclosureIcon Свойства в списке данных, что вы хотите. Это, вероятно, не нужно, если вам не нужно больше контроля.

  3. Создайте свой собственный рендерер предметов на основе AdvancedDataGridGroupItemRenderer,

Другие вопросы по тегам