Инструкция NAVIGATOR
Инструкция NAVIGATOR
- управление и настройка навигатора.
Синтаксис
Синтаксис представляет собой вложенные друг в друга блоки инструкций навигатора. Внешний блок инструкции описывается после ключевого слова NAVIGATOR
:
NAVIGATOR {
navigatorStatement1
...
navigatorStatementN
}
Каждый navigatorStatement
описывает одну инструкцию навигатора и может в конце содержать вложенный блок других инструкций навигатора. Инструкции навигатора бывают трех типов:
NEW elementDescription [options] [{ ... }];
MOVE name [caption] [options] [{ ... }];
name [caption] [options] [{ ... }];
где elementDescription
в инструкции NEW
описывает тип элемента, который должен быть создан, и может быть в одном из трех видов:
FOLDER name [caption]
FORM [[name] [caption] =] formName
ACTION [[name] [caption] =] actionName
[[name] [caption] =] formElseActionName
Инструкция навигатора должна завершаться точкой с запятой, если в ней не содержится вложенный блок других инструкций.
Опции элемента навигатора options
могут перечисляться друг за другом в произвольном порядке. Поддерживается следующий набор опций:
WINDOW windowName
insertPosition
IMAGE fileName
Описание
Инструкция NAVIGATOR
позволяет настроить навигатор. Каждый блок инструкций навигатора, заключенный в фигурные скобки, позволяет изменять потомков определенного элемента навигатора, который будем называть текущим элементом. Во внешнем блоке, идущем после ключевого слова NAVIGATOR
, текущим элементом является корневая системная папка System.root
. Существует три типа инструкций навигатора:
- Инструкция создания (
NEW
) позволяет создать новый элемент навигатора, делая его потомком текущего элемента. Создаваемые элементы навигатора могут быть трех типов: папка, элемент-форма, элемент-действие. Тип создаваемого элемента указывается с помощью ключевых словFOLDER
,FORM
иACTION
. Если тип не указан, сначала происходит поиск формы с заданным им енем. Если форма не найдена, осуществляется поиск действия. Блок инструкций навигатора, содержащийся в этой инструкции (если он есть), описывает потомков создаваемого элемента. - Инструкция перемещения (
MOVE
) позволяет переместить в качестве потомка в текущий элемент навигатора некоторый существующий элемент. Перемещаемый элемент навигатора предварительно удаляется из предыдущего места. Блок инструкций навигатора, содержащийся в этой инструкции, описывает потомков добавляемого элемента. - Инструкция редактирования позволяет изменить указанный элемент навигатора, который должен являться потомком текущего элемента (не обязательно непосредственным). Блок инструкций навигатора, содержащийся в этой инструкции, описывает потомков указанного элемента.
Инструкции перемещения и редактирования позволяют изменить заголовок и опции элемента навигатора.
Иерархия, описываемая в рамках одной инструкции NAVIGATOR
, может иметь произвольный уровень вложенности и описывать любое количество элементов на каждом из уровней.
Параметры
-
name
Имя элемента навигатора. В инструкции создания является простым идентификатором и должно быть уникальным в пределах текущего пространства имен, в остальных инструкциях является составным идентификатором. Имя может быть не задано при создании элемента-формы или элемента-действия, в этом случае в качестве имени элемента будет использовано имя формы либо имя действия соответственно.
-
caption
Заголовок элемента навигатора. Строковый литерал. В инструкции создания, если заголовок не задан, то заголовком будет являться имя создаваемого элемента. В остальных инструкциях изменяет существующий заголовок.
-
actionName
Идентификатор действия, для которого будет создан элемент навигатора. Действие не должно принимать на вход параметры.
-
formName
Имя формы, для которой будет создан элемент навигатора. Является составным идентификатором.
-
formElseActionName
Имя формы или идентификатор действия, для которых будет создан элемент навигатора. Сначала будет попытка найти форму с таким именем, и если она будет неуспешной, то будет осуществлен поиск действия. Действие не должно принимать на вход параметры.
Опции
-
WINDOW windowName
Указание окна, в котором будут отображаться потомки этого элемента навигатора (если для них не указано другое окно).
к сведениюОбратите внимание, что с помощью этой опции окно устанавливается не для текущего элемента, а для его потомков.
-
windowName
Имя окна. Составной идентификатор.
-
-
insertPosition
Указание позиции вставки элемента навигатора. Может задаваться одним из следующих способов:
-
BEFORE elementName
-
AFTER elementName
Указание того, что элемент должен быть добавлен или перенесен непосредственно перед (
BEFORE
) или после (AFTER
) указанного элемента навигатора. Указанный элемент должен быть непосредственным потомком текущего элемента.-
elementName
Имя элемента навигатора. Составной идентификатор.
-
-
FIRST
Ключевое слово, указывающее на то, что элемент навигатора должен быть добавлен или перенесен в начало списка непосредственных потомков текущего элемента.
-
LAST
Ключевое слово, указывающее на то, что элемент навигатора должен быть добавлен или перенесен в конец списка непосредственных потомков текущего элемента. В отличие от добавления по умолчанию, элементы, вставленные с помощью
LAST
, всегда будут располагаться после всех элементов, добавленных в порядке объявления. -
DEFAULT
Ключевое слово, указывающее на то, что элемент навигатора добавляется в список непосредственных потомков текущего элемента в порядке объявления. Являетс я значением по умолчанию.
Если опция указана в инструкции редактирования, то и сам элемент также должен быть непосредственным потомком текущего элемента, иначе необходимо использовать инструкцию
MOVE
. -
-
IMAGE fileName
Указание относительного пути к файлу с картинкой, которая будет отображаться в качестве иконки элемента навигатора.
-
fileName
Путь к файлу. Строковый литерал. Путь указывается относительно каталога
images
.
-
Примеры
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;
}
}