Alterator/Widgets/CheckTree
Описание
Виджет для организации иерархического табличного представления с флажками выбора.
Пример
[-] [x] Элемент 1 +----[ ] Подэлемент [+] [ ] Свёрнутый элемент
У каждого элемента показывается флажок, который можно установить или снять (с помощью мыши или клавишей Space). При изменении состоянии флажка генерируется сигнал changed
API
Конструктор
- (checktree)
- Конструктор.
Опциональные параметры:
- columns 1
- Количество столбцов. По умолчанию — 1.
Свойства
- (append-row LIST)
- Добавить строку в дерево.
- Формат LIST: список полей, разделённый символами «;»:
- item_id — идентификатор элемента;
- item_parent_id — идентификатор родительского элемента;
- label_1 — надпись в первом столбце;
- label_X... — (опционально) надписи во втором и последующем столбцах;
- (rows LIST)
- Добавить список строк в дерево. Строки разделены символом «;». Количество элементов в каждой строке должно быть равно количеству столбцов+2.
- (rows-clear)
- Удалить все строки в дереве.
- (expand-rows LIST)
- Развернуть элементы по списку идентификаторов, разделённых символами «;».
- (collapse-rows LIST)
- Свернуть элементы по списку идентификаторов, разделённых символами «;». По умолчанию все элементы свёрнуты.
- (checked-rows LIST) → (id_1;id_2...)
- Установить флажки для элементов по списку идентификаторов, разделённых символами «;».
- Вернуть список идентификаторов отмеченных элементов, разделённые символами «;».
- (current ID) → id
- Выделить элемент по его идентификатору
- Вернуть идентификатор текущего элемента
- (icon-rows ICON;LIST)
- Установить значок в первом столбце для элементов по списку идентификаторов, разделённых символами «;».
Сигналы
- (changed)
- Возникает при изменении состоянии флажка любого элемента.
- (selected)
- Возникает при выделении (мышью или с клавиатуры) элемента виджета.
Пример
(document:id packages (checktree focus #t columns 2 (when changed (test-label)))) (packages append-row "g1;;Group 1") (packages append-row "gp1;g1;Subgroup") (packages append-row "g2;;Another group;22045") (packages collapse-rows "g2") (packages state-rows "g1;gp1")