Дерево страниц
Skip to end of metadata
Go to start of metadata

Корневой элемент schema. Пространство имен: <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">

Краткое описание

  • описывает структуру данных объекта;
  • содержит код управления событиями объекта.
Структура XML
<?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) {}

Параметры:

    • object - объект Java API

Пример

querySave

Вызывается непосредственно перед переносом данных из объекта Java API в документ, в котором этот объект хранится.

Функция возвращает значение типа Boolean. Если функция вернула false - сохранение будет прервано.

Обработчики события выполняются в порядке наследования схем снизу вверх: сначала событие querySave текущей Схемы объекта, потом событие querySave той Схемы, которую она уточняет, и так далее до события querySave базовой Схемы.

function querySave(object, document) {
	return true;
}

Параметры:

    • object - объект Java API, содержащий все изменения
    • document - объект Notes Java API, notes-документ, сохраненный ранее (до внесения изменений).

Пример

postSave

Вызывается сразу после сохранения документа в хранилище.

Обработчики события выполняются в обратном порядке, сверху вниз: сначала событие postSave базовой Схемы, потом событие postSave уточняющей Схемы и так далее до текущей Схемы объекта. Обработчики события recalc выполняются аналогично postSave, сверху вниз.

function postSave(object, document) {}

Параметры:

    • object - объект Java API
    • document -  документа Java API, который был сохранен со всеми изменениями.

recalc

Вызывается при пересчете ресурса, том числе вызов recalc может быть связан в изменением значения поля или нажатием на кнопку.

function recalc(object, changedField) {}

Параметры:

    • object - объект Java API, содержащий все изменения
    • 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.




Статус

ГОТОВО

Комментарий

Теги и атрибуты: