AdvancedDataGrid: условно изменить значок конечного узла. - PullRequest
1 голос
/ 14 марта 2012

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

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

enter image description here

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

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

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

enter image description here

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

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

1 Ответ

3 голосов
/ 14 марта 2012

Доступны два варианта:

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

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

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

...