Инструкция NAVIGATOR
Инструкция NAVIGATOR
- управление и настройка навигатора.
Синтаксис
Синтаксис представляет собой вложенные друг в друга блоки инструкций навигатора. Внешний блок инструкции описывается после ключевого слова NAVIGATOR
:
NAVIGATOR {
navigatorStatement1
...
navigatorStatementN
}
Каждый navigatorStatement
описывает одну инструкцию навигатора и может в конце содержать вложенный блок других инструкций навигатора. Инструкции навигатора бывают трех типов:
NEW elementDescription [options] [{ ... }];
MOVE name [caption] [options] [{ ... }];
name [caption] [options] [{ ... }];
SCHEDULE PERIOD intPeriod [FIXED] action;
где elementDescription
в инструкции NEW
описывает тип элемента, который должен быть создан, и может быть в одном из трех видов:
FOLDER name [caption]
FORM [[name] [caption] =] formName
ACTION [[name] [caption] =] actionName
[[name] [caption] =] formElseActionName
Инструкция навигатора должна завершаться точкой с запятой, если в ней не содержится вложенный блок других инструкций.
Опции элемента навигатора options
могут перечисляться друг за другом в произвольном порядке. Поддерживается следующий набор опций:
WINDOW windowName [PARENT]
insertPosition
imageSetting
CLASS classExpr
HEADER headerExpr
SHOWIF showIfExpr
Описание
Инструкция NAVIGATOR
позволяет настроить навигатор. Каждый блок инструкций навигатора, заключенный в фигурные скобки, позволяет изменять потомков определенного элемента навигатора, который будем называть текущим элементом. Во внешнем блоке, идущем после ключевого слова NAVIGATOR
, текущим элементом является корневая системная папка System.root
. Существует три типа инструкций навигатора:
- Инструкция создания (
NEW
) позволяет создать новый элемент навигатора, делая его потомком текущего элемента. Создаваемые элементы навигатора могут быть трех типов: папка, элемент-форма, элемент-действие. Тип создаваемого элемента указывается с помощью ключевых словFOLDER
,FORM
иACTION
. Если тип не указан, сначала происходит поиск формы с заданным именем. Если форма не найдена, осуществляется поиск действия. Блок инструкций навигатора, содержащийся в этой инструкции (если он есть), описывает потомков создаваемого элемента. - Инструкция перемещения (
MOVE
) позволяет переместить в качестве потомка в текущий элемент навигатора некоторый существующий элемент. Перемещаемый элемент навигатора предварительно удаляется из предыдущего места. Блок инструкций навигатора, содержащийся в этой инструкции, описывает потомков добавляемого элемента. - Инструкция редактирования позволяет изменить указанный элемент навигатора, который должен являться потомком текущего элемента (не обязательно непосредственным). Блок инструкций навигатора, содержащийся в этой инструкции, описывает потомков указанного элемента.
Инструкции перемещения и редактирования позволяют изменить заголовок и опции элемента навигатора.
Иерархия, описываемая в рамках одной инструкции NAVIGATOR
, может иметь произвольный уровень вложенности и описывать любое количество элементов на каждом из уровней.
Параметры
-
name
Имя элемента навигатора. В инструкции создания является простым идентификатором и должно быть уникальным в пределах текущего пространства имен, в остальных инструкциях является составным идентификатором. Имя может быть не задано при создании элемента-формы или элемента-действия, в этом случае в качестве имени элемента будет использовано имя формы либо имя действия соответственно.
-
caption
Заголовок элемента навигатора. Строковый литерал. В инструкции создания, если заголовок не задан, то заголовком будет являться имя создаваемого элемента. В остальных инструкциях изменяет существующий заголовок.
-
actionName
Идентификатор действия, для которого будет создан элемент навигатора. Действие не должно принимать на вход параметры.
-
formName
Имя формы, для которой будет создан элемент навигатора. Является составным идентификатором.
-
formElseActionName
Имя формы или идентификатор действия, для которых будет создан элемент навигатора. Сначала будет попытка найти форму с таким именем, и если она будет неуспешной, то будет осуществлен поиск действия. Действие не должно принимать на вход параметры.
-
SCHEDULE PERIOD intPeriod [FIXED] action
Cоздаёт планировщик, выполняющий действие
action
каждыеintPeriod
секунд. Ключевое словоFIXED
указывает на то, что период до следующего действия отсчитывается от старта текущего действия. По умолчанию период отсчитывается от окончания текущего действия.
Опции
-
WINDOW windowName [PARENT]
Указание окна, в котором будут отображаться потомки этого элемента навигатора (если для них не указано другое окно) и сам элемент, если указано ключевое слово
PARENT
.-
windowName
Имя окна. Составной идентификатор.
-
PARENT
Ключевое слово, при указании которого текущий элемент тоже будет отображаться в указанном окне.
-
-
insertPosition
Указание позиции вставки элемента навигатора. Может задаваться одним из следующих способов:
-
BEFORE elementName
-
AFTER elementName
Указание того, что элемент должен быть добавлен или перенесен непосредственно перед (
BEFORE
) или после (AFTER
) указанного элемента навигатора. Указанный элемент должен быть непосредственным потомком текущего элемента.-
elementName
Имя элемента навигатора. Составной идентификатор.
-
-
FIRST
Ключевое слово, указывающее на то, что элемент навигатора должен быть добавлен или перенесен в начало списка непосредственных потомков текущего элемента.
-
LAST
Ключевое слово, указывающее на то, что элемент навигатора должен быть добавлен или перенесен в конец списка непосредственных потомков текущего элемента. В отличие от добавления по умолчанию, элементы, вставленные с помощью
LAST
, всегда будут располагаться после всех элементов, добавленных в порядке объявления. -
DEFAULT
Ключевое слово, указывающее на то, что элемент навигатора добавляется в список непосредственных потомков текущего элемента в порядке объявления. Является значением по умолчанию.
Если опция указана в инструкции редактирования, то и сам элемент также должен быть непосредственным потомком текущего элемента, иначе необходимо использовать инструкцию
MOVE
. -
-
imageSetting
Настройка отображения иконки элемента навигатора. По умолчанию иконка или ее отсутствие регулируется параметрами
settings.defaultNavigatorImageRankingThreshold
,settings.defaultNavigatorImage
и другими. Эта опция позволяет настроить отображение иконки вручную. Может иметь один из двух видов:-
IMAGE [fileExpr]
Указание относительного пути к файлу изображения, которое будет отображаться в качестве иконки элемента навигатора. Если
fileExpr
не указывается, то происходит переключение в режим отображения иконки по умолчанию.-
fileExpr
Выражение, значение которого определяет путь к файлу изображения. Путь указывается относительно каталога
images
.
-
-
NOIMAGE
Ключевое слово, указывающее на то, что иконка элемента навигатора должна отсутствовать.
-
-
CLASS cssClassExpr
Указание имени CSS-класса для DOM-элемента, создаваемого для компонента элемента навигатора в HTML. Может быть использовано для применения пользовательских стилей.
-
cssClassExpr
Выражение, значение которого определяет имя класса.
-
-
HEADER headerExpr
Указание свойства, определяющего динамический заголовок элемента навигатора. Если возвращаемое значение этого свойства будет равно
NULL
, то заголовок элемента навигатора будет автоматически скрыт.-
headerExpr
Выражение, значение которого определяет динамический заголовок элемента навигатора.
-
-
SHOWIF showIfExpr
Указание свойства, определяющего видимость элемента навигатора. Если возвращаемое значение этого свойства будет равно
NULL
, то элемент навигатора не будет отображаться.-
showIfExpr
Выражение, значение которого определяет видимость элемента навигатора.
-
Примеры
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;
}
}