AdvancedDataGrid: условно изменить значок конечного узла.
Введение: у меня есть плоская коллекция ArrayCollection объектов, которую я группирую для создания dataProvider для AdvancedDataGrid. В этой AdvancedDataGrid у меня есть различные ветви, представляющие различные типы задач. Я хочу условно изменить значок для конечных узлов в AdvancedDataGrid на основе поля даты, хранящегося в каждом объекте.
Для этого предположим, что каждый объект Task содержит идентификатор и updatedDate (представляющий дату последнего обновления задачи). Если задача не обновлялась в течение последних пяти дней (updatedDate +5
Вопрос: Как мне изменить листовые иконки в ADG на основе updatedDate базового объекта? Я думаю, что мне нужно расширить AdvancedDataGrid и переопределить какой-то метод, но какой и как? Любой тип руководства для достижения этой конкретной задачи очень ценится!
Я видел простые способы изменения открытых и закрытых значков в Интернете, но не было способа условно изменить значок открытого узла:)
Обновление: после применения решения @takteek groupIconFunction, которое всегда возвращало один и тот же значок:
Проблема в том, что мне нужны измененные значки конечного узла, а не ветви.
Решено: Использовал ответ @ takteek, за исключением использования iconFunction вместо groupIconFunction, потому что я хотел изменить значки конечного узла, а не groupIcons:)
1 ответ
Ваши два варианта:
Укажите
groupIconFunction
для сетки данных. При этом передается текущий элемент, и вы возвращаете, какой значок использовать, или null, чтобы использовать значение по умолчанию.Создайте подкласс AdvancedDataGrid и переопределите
makeListData
, Эта функция отвечает за создание объекта AdvancedDataGridListData, который передается средствам визуализации. Вы можете изменитьicon
а такжеdisclosureIcon
Свойства в списке данных, что вы хотите. Это, вероятно, не нужно, если вам не нужно больше контроля.Создайте свой собственный рендерер предметов на основе
AdvancedDataGridGroupItemRenderer
,