- Создатель Васильев Антон, отредактировано 21.04.2022
Корневой элемент schema. Пространство имен: <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
Краткое описание
- описывает структуру данных объекта;
- содержит код управления событиями объекта.
<?xml version='1.0' encoding='UTF-8'?> <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema"> <schema name="{name}" extends="{parent schema name}" recalc="true" workflow="false"> <!--Свойство схемы --> <string name="{name}"/> <!-- Параметры конкретизации схемы --> <param-specification> <!--property-ref--> <string-ref ref="{property string name}" value="{string value}"/> </param-specification> <!-- Код управления событиями --> <custom-event-handler lang="JavaScript"><![CDATA[...]]></custom-event-handler> </schema> </schemas>
attributes
Параметры | Описание |
---|---|
name | Название схемы. Название должно быть уникально. |
extends | Родительская схема. Из родительской схемы наследуются все свойства схем и обработчики событий. |
recalc | Отвечает за обновление свойств схемы при событии обновлении объекта. Может принимать значение: true, false. |
<property>
Своиства схемы могут быть трех видов:
- Примитив;
- Перечисление;
- Объект.
Более детально рассматривается в разделе типы свойств
param-specification
Сохранен для совместимости более ранних версий. Вместо него нужно использовать Условие применения
Параметр отвечает за конктретизацию Схемы. Позволяет настроить отображение объекта по различным Формам в зависимости от определенных Свойств схемы. Результатом конкретизации является изменение Схемы данных объекта, а по измененной Схеме будет выбрана новая Форма для его отображения.
<property>-ref
Сопоставление свойства родительской схемы и значения, при котором будет включатся механизм конкретизации схемы
Параметры | Описание |
---|---|
ref | Название свойства родительской схемы |
value | Значение свойства |
custom-event-handler
Настраиваемый обработчик событий. Поддерживается настройка обработки событий для web-клиента:
Событие | Описание |
---|---|
queryCreate | Вызывается при создании объекта function queryCreate(object) {} Параметры:
|
querySave | Вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится. Функция возвращает значение типа Boolean. Если функция вернула false - сохранение будет прервано. Обработчики события выполняются в порядке наследования схем снизу вверх: сначала событие querySave текущей Схемы объекта, потом событие querySave той Схемы, которую она уточняет, и так далее до события querySave базовой Схемы. function querySave(object, document) { return true; } Параметры:
|
postSave | Вызывается сразу после сохранения документа в хранилище. Обработчики события выполняются в обратном порядке, сверху вниз: сначала событие postSave базовой Схемы, потом событие postSave уточняющей Схемы и так далее до текущей Схемы объекта. Обработчики события recalc выполняются аналогично postSave, сверху вниз. function postSave(object, document) {} Параметры:
|
recalc | Вызывается при пересчете ресурса, том числе вызов recalc может быть связан в изменением значения поля или нажатием на кнопку. function recalc(object, changedField) {} Параметры:
|
Обработчики событий могут быть созданы к нескольким схемам, объединенным в одну иерархию.
Если для какой-то из Схем в иерархии Обработчик событий не создан или не содержит описания соответствующего события, то эта Схема пропускается, и выполняется обработчик следующей по порядку обработки Схемы.
Код обработчика событий имеет доступ к API CMJ системы и подключенным к ней сторонним библиотекам. Для работы с тем или иным Java классом его или пакет, в котором он расположен, предварительно необходимо импортировать в обработчик. Для этого можно использовать функции importPackage() или importClass ().
importPackage (Packages.java.util); - импортирует все классы, расположенные в пакете java.util.
Как и в Java, импортируются только классы, находящиеся непосредственно в указанном пакете. Классы из дочерних пакетов импортированы не будут.
Коду обработчика на JavaScript доступны все public методы реальных классов, реализующих те или иные интерфейсы Java API. Области видимости protected и private недоступны.
Синтаксис работы с объектами Java классов точно такой же, как и с объектами JavaScript.
В описании обработчика событий можно объявлять дополнительные функции и вызывать их из событий.
Объекты API CMJ, переданные в обработчик событий извне (например, параметр document), нельзя передавать в дополнительно объявленные функции. Работать с параметром document можно только внутри событий querySave и postSave.
Статус | ГОТОВО |
---|---|
Комментарий |
Теги и атрибуты: