Tree

Диджит Tree является одним из удивительнейших инженерных достижений. Построенный исключительно на основе использования DHTML, он выглядит и действует, как иерархическое дерево. Он поддерживает операции перетаскивания элементов дерева мышью и обладает достаточной гибкостью, чтобы его можно было связать с произвольным источником данных. Как и в случае с любым другим сложным механизмом, прежде чем приступить к манипулированию им, необходимо получить некоторые фундаментальные сведения о нем; они станут легко понятны, как только все факты будут связаны воедино. Это один из самых длинных разделов в главе, потому что диджит Tree является чрезвычайно мощным и предлагает очень широкий набор возможностей. Мы не будем углубляться в вопросы, связанные с обеспечением доступности, тем не менее вы должны знать, что диджит Tree полностью может управляться при использовании клавиатуры с помощью клавиш управления курсором, клавиши Enter и т. д.

Прежде чем перейти к изучению программного кода, совсем нелишним будет иметь представление о следующем:
Деревья и леса
Дерево – это иерархическая структура данных, содержащая единственный корневой элемент. С другой стороны, лес – это иерархическая структура данных, напоминающая дерево, но в отличие от него имеющая несколько корневых узлов.


Как будет показано ниже, различение дерева и леса – это распространенная проблема, потому что во многих случаях данные удобно представлять в виде дерева с единственным корневым узлом, несмотря на то, что фактически данные представлены в виде леса с несколькими неявными корневыми узлами.
Узлы
Дерево – это иерархическая организация узлов и связей между ними. Специальный тип узла, используемый в dijit.Tree, – dijit._TreeNode. Начальный символ подчеркивания в имени в данном случае говорит о том, что диджиты _TreeNode никогда не должны использоваться за пределами диджита Tree. Однако, _TreeNode обладает некоторыми свойствами, которыми удобно управлять непосредственно, в чем вы убедитесь при изучении следующих ниже примеров.
Независимость от данных
Диджит Tree не делает никаких предположений об источнике данных, наполняющих его. До версии 1.1 он напрямую обращался к реализации интерфейсов dojo.data, обладающих высокой гибкостью и предоставляющих единообразный способ доступа к данным, но начиная с версии 1.1 между моделью dojo.data и диджитом Tree были добавлены промежуточные уровни. Это, соответственно, dijit. tree.TreeStoreModel и dijit.tree.ForestStoreModel. В значительной степени такое изменение было обусловлено стремлением сделать диджит Tree более устойчивым и управляемым при выполнении
операций «перетащил и бросил».

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
ColorPalette
Dialog
Editor
InlineEditBox
Menu

Вернуться в раздел: Dojo / Виджеты приложения