Навигатор
Навигатор - это иерархическая структура (дерево), состоящая из элементов навигатора. Есть три типа элементов навигатора:
- папка - объединяет другие элементы навигатора в группу. Также выбор этого элемента влияет на отображение его потомков, если они принадлежат другому окну. Потомки же, размещённые в том же окне, что и папка, наоборот, показываются вместе с ней независимо от выбора: вертикальный тулбар отображает их как вложенную группу под папкой, а горизонтальный — расплющенными рядом с ней, где выбор папки ничего не переключает. Поэтому папка в горизонтальном тулбаре работает как выбираемая группа только тогда, когда её потомки размещены в отдельном окне.
- действие - выполняет заданное действие. В навигатор можно добавить только те действия, которые не принимают на вход ни одного аргумента.
- форма - открывает заданную форму в интерактивном представлении в асинхронном режиме.
При добавлении элемента в навигатор ему устанавливается родительский элемент; среди потомков одной папки элементы упорядочены. Корневым элементом навигатора является папка навигатора System.root.
Если в какой-то папке навигатора не отображается ни один элемент навигатора, то эта папка автоматически прячется.
Для элемента навигатора можно дополнительно задать:
- заголовок, отображаемый пользователю, — постоянный текст или текущее значение свойства, и тогда он зависит от данных;
- условие видимости — элемент отображается только тогда, когда заданное условие выполняется;
- иконку, выбираемую или задаваемую по общему механизму установки иконок;
- горячую клавишу и привязку мыши, срабатывание которых равносильно выбору элемента пользователем.
Также, как и интерактивное представление формы, навигатор отображается в двумерном пространстве: на экране устройства пользователя, и, соответственно, для него, как и для других графических представлений, можно / нужно задавать дизайн.
Язык
Для управления навигатором используется инструкция NAVIGATOR.
Примеры
FORM items;
FORM stocks;
FORM legalEntities;
FORM shipments;
hello() { MESSAGE 'Hello world'; }
hi() { MESSAGE 'Hi'; }
NAVIGATOR {
// создаем новую папку навигатора и делаем, чтобы все ее потомки отображались в окно с вертикальным тулбаром
NEW FOLDER catalogs 'Справочники' WINDOW toolbar {
// создаем в папке элемент-форму для формы items, имя элемента по умолчанию равняется имени формы
NEW items;
}
catalogs { // инструкция редактирования элемента навигатора
// создаем элемент-форму stocksNavigator для формы stocls и добавляем в папку catalogs последним элементом
NEW FORM stocksNavigator 'Склады' = stocks;
// создаем элемент-форму с именем legalEntities в папку catalogs непосредственно за элементом items
NEW legalEntities AFTER items;
NEW shipments;
}
// создаем еще одну папку, элементы которой будут также отображаться в окно с вертикальным тулбаром
// сами папки будут отображаться в окне root, и при выборе одной из них в окне с вертикальным
// тулбаром будут показаны потомки именно этой папки
NEW FOLDER documents 'Документы' WINDOW toolbar {
NEW ACTION hi; // создаем элемент-действие
NEW ACTION h=hello; // создаем элемент-действие
// инструкция перемещения элемента shipments из папки catalogs в папку document перед элементом hello
MOVE shipments BEFORE h;
}
}