Brief: навигатор
Структура навигатора
Навигатор — дерево, с которого пользователь начинает работу с приложением. Элементы бывают трех типов: папка объединяет другие элементы, элемент-форма открывает форму в интерактивном представлении, элемент-действие выполняет действие, не принимающее аргументов. Корень — папка System.root. Аналогия: меню приложения вместе с его маршрутизацией.
Навигатор наполняет инструкция NAVIGATOR вложенными блоками: NEW FOLDER, NEW FORM и NEW ACTION создают элемент потомком текущего, MOVE переносит существующий, имя элемента с блоком редактирует его; позиция — FIRST, LAST, BEFORE, AFTER. Опции элемента: WINDOW — окно для его потомков (с PARENT — и для него самого), HEADER — заголовок из свойства, SHOWIF — видимость, IMAGE / NOIMAGE — иконка, CHANGEKEY и CHANGEMOUSE — горячая клавиша и привязка мыши, CLASS — CSS-класс. Инструкция SCHEDULE PERIOD создает планировщик, выполняющий действие с заданным периодом в секундах.
NAVIGATOR {
NEW FOLDER catalogs 'Справочники' WINDOW toolbar {
NEW items;
NEW FORM stocksNavigator 'Склады' = stocks;
}
NEW FOLDER documents 'Документы' WINDOW toolbar {
NEW ACTION recalculate;
}
}
Окна и расположение
Дизайн навигатора — набор окон, участков экрана, каждый из которых показывает свои элементы навигатора. Окно объявляет инструкция WINDOW: VERTICAL или HORIZONTAL задает ориентацию тулбара, POSITION(x, y, width, height) — место на рабочем столе размером 100 на 100 точек, а LEFT, RIGHT, TOP и BOTTOM прижимают окно к краю. Есть также HIDETITLE, HIDESCROLLBARS, выравнивания HALIGN, VALIGN, TEXTHALIGN, TEXTVALIGN, CLASS и CUSTOM — пользовательское представление окна, отрисовываемое React-компонентом или HTML-шаблоном. Рисует его только десктопный веб-клиент: мобильный веб-клиент и десктопный клиент оставляют стандартное меню.
В каком окне рисуется элемент, задает опция WINDOW его родительской папки. Элемент, попавший в окно, отличное от окна своей папки, показывается только тогда, когда эта папка выбрана пользователем в своем окне, — так папка переключает содержимое соседнего окна.
Системные окна создает платформа: System.forms — окно, в котором открываются формы, System.log — сообщения пользователю, System.root и System.toolbar — горизонтальный и вертикальный тулбары навигатора, System.system — системные кнопки, System.logo — логотип. Инструкция EXTEND WINDOW ... CUSTOM меняет отрисовщик уже объявленного окна, HIDE WINDOW скрывает его. Из NATIVE-окон отрисовщик принимают только System.forms и System.log, и только React-компонент — ему передается то, что положило в окно приложение, вместо элементов навигатора; остальные не содержат элементов навигатора и не принимают ни компонента, ни шаблона.