Навигатор является ключевым элементом для создания решений на Showcase. Он отображается в левой части основного окна приложения.
Навигатор имеет строго определённую структуру и состоит из групп, в каждой из которых находится иерархическое «дерево». Например:
groupJSON = {
"group": {
"@id": "1",
"@name": "Учебный пример",
"level1": {
"@id": "11",
"@name": "Справочники",
"level2": [{
"@id": "111",
"@name": "Орг.структура",
"@selectOnLoad": true,
"action": {
"#sorted": [
{ "main_context": "orgStructure" },
{ "datapanel": { "@type": "orgStructure.xml" } }
]
}
}]
}
}
}
В приведённом примере используются следующие ключи:
-
«group» - обозначает группу навигатора;
-
«level<НомерУровня>», где НомерУровня = 1..5 - обозначает уровни дерева внутри группы;
-
«action» - описывает события при клике на элемент дерева, содержащего данный ключ, в навигатор. Задаётся внутри ключей «group» или «level».
-
«datapanel» - задаётся внутри ключа «action». Событие отображения информационной панели (datapanel), заданной значением атрибута «@type» (см. п. 3).
-
«#sorted» - используется, если важен порядок ключей в передаваемом в качестве значения одномерном массиве словарей.
-
Каждый элемент – группа или уровень – должен иметь следующие атрибуты:
-
«@id» - уникальный идентификатор. Значением этого атрибута должна быть уникальная для всего навигатора строка, т.е. в навигаторе не должно быть элементов, имеющих одинаковые значения атрибута «@id»;
-
«@name» - подпись для отображения элемента.
У одного из ключей «level» может быть атрибут @selectOnLoad: true. Это означает, что при первой загрузке дерева или при обновлении страницы будет выделен соответствующий уровень («level») в дереве с последующим выполнением событий, описанных в ключе «action». В предыдущем примере каждый уровень («level») содержал только один элемент. Чтобы добавить несколько элементов на одном уровне, нужно использовать конструкцию, как в следующем примере:
groupJSON = {
"group": {
"@id": "gr2",
"@name": "Группа 2",
"level1": [
{ "@id": "121", "@name": "Раздел 1" },
{ "@id": "122", "@name": "Раздел 2" }
]
}
}
Результат отображения показан на рисунке:

Навигатор. Группа с двумя разделами

