Выражение привязки

Выражения привязок инструментальной панели очень похожи на выражения привязок сервера. Однако выражения привязок в инструментальных панелях могут включать несколько основных типов ссылок:

  • Стандартные ссылки (без схемы), которые указывают на переменные или функции контекста, их поля или свойства

  • Ссылки на компоненты (использующие схему form/),  которые указывают на свойства, события или функции компонентов инструментальной панели

  • Специальные ссылки Web UI (использующие схему web/), которые запускают специфичные для Web UI операции

  • Параметры инструментальной панели доступны как переменные окружения выражения (схема env/)

  • Ссылка на данные активатора события (записанная как env/value), которая указывает на переменную окружения с именем value, содержащую таблицу данных события, вызвавшего активацию привязки

Ссылки на компоненты

Ссылка на компонент указывает на свойство компонента Инструментальная панель (например, текст метки). Она имеет следующий формат:

form/component:property

form  - имя схемы, используемой для идентификации ссылок на компонент. Схема говорит обработчику языка выражений распознавать ссылки в соответствии с компонентом, в отличие от стандартной ссылки. Ссылки на компоненты необходимо всегда начинать с form/.

component - имя компонента инструментальной панели, с которым вы хотите работать. Имя компонента отображается в дереве компонентов и в заголовке окна свойств компонентов, если компонент выбран в конструкторе.

property  - имя определенного свойства внутри компонента. Имена свойств можно найти в описании свойств каждого компонента инструментальной панели. Указывать свойство в ссылке на компонент необязательно. Если свойство не указано, ссылка ведет к свойству по умолчанию компонента.

Формат свойства, т.е. типа значения, возвращаемого ссылкой на свойство компонента, можно найти в описании этого свойства в справочнике компонентов.

Примеры ссылок на свойство компонента

{form/userNameField:}

{form/userNameField:text}

Обе ссылки разрешаются в текст, который содержится в userNameField (при условии, что это текстовое поле). Первая ссылка указывает на свойство по умолчанию компонента, то есть text, а вторая прямо называет его (:text).

Специальные ссылки web UI

Специальная ссылка инициирует выполнение операции, специфичной для Web UI. Ссылка имеет следующий формат:

web/operation([parameter1, parameter2,...])

Поддерживаются следующие операции:

  • web/logout() - прекращает текущую сессию Web UI и осуществляет выход пользователя. Если пользователь вошел в систему с помощью Технологии единого входа (SSO), команда будет отправлена Поставщику идентификационных данных чтобы аннулировать текущий токен аутентификации.

  • web/executeAction(context, action[, parameters]) - выполняет указанное действие из контекста. При необходимости можно указать входные параметры действия.

Имя параметра

Тип параметра

Примечания

context

String

Путь контекста желаемого действия.

action

String

Имя выполняемого действия

parameters

Data Table

Таблица данных, содержащая входные параметры действия. Имена полей таблицы данных должны соответствовать именам входных параметров действия. Таблица данных должна содержать одну строку со значениями для каждого входного параметра

  • web/redirect(dashboard, historyUrlChanged, newTab, parameters) - переадресует текущего пользователя на другую веб инструментальную панель согласно указанному пути контекста или на другой URL-адрес

Имя параметра

Тип параметра

Примечания

dashboard

String

Путь контекста инструментальной панели или абсолютный URL-адрес. Примеры значений:

  • "users.admin.dashboards.exampleDashboard" Путь контекста инструментальной панели.

  • "http://www.dashboardserver.com/users.admin.dashboards.exampleDashboard" Абсолютный URL-адрес инструментальной панели

  • "http://example.com/" Абсолютный URL-адрес внешнего сайта

historyUrlChanged

Boolean

Значение по умолчанию - False. Определяет, перенаправлять ли пользователя на путь контекста или URL, заданный в инструментальной панели, или добавить значение инструментальной панели в конец текущего URL.

  • False - перенаправлять пользователя на путь контекста или URL, указанный в качестве аргумента инструментальной панели.

  • True - перенаправлять пользователя на URL, созданный путем добавления значения инструментальной панели в конец текущего URL.

    • Если текущий URL http://example.com/ и инструментальная панель “users.admin.dashboards.exampleDashboard", пользователь будет перенаправлен на "http://www.dashboardserver.com/users.admin.dashboards.exampleDashboard"

newTab

Boolean

Значение по умолчанию - False. Определяет необходимость перенаправления в новую вкладку:

  • False - Открывать в текущей вкладке

  • True - Открывать в новой вкладке

parameters

Data Table

Таблица содержит параметры инструментальной панели, которые должны быть добавлены к URL. Таблица должна состоять из одной строки с полем для каждого параметра. Каждое поле таблицы представляет собой параметр запроса, а соответствующее значение в строке должно содержать значение для этой пары ключ-значение.

По умолчанию, функция web/redirect() перенаправляет пользователя на текущий экземпляр инструментальной панели если таковой существует, с указанным параметров инструментальной панели.

Чтобы перенаправить пользователя на новый экземпляр приборной панели, укажите уникальное значение с одним или несколькими ключами специальных параметров:

  • dc - Указывает контекст по умолчанию для относительной инструментальной панели. Использование этого параметра позволяет открывать одну и ту же относительную панель несколько раз с разными контекстами. Может иметь любое значение при перенаправлении на абсолютные или относительные инструментальные панели.

  • instanceId - Ссылается на конкретный экземпляр класса при открытии инструментальной панели, содержащей компонент Классовая таблица или Поля экземпляра класса. Может иметь любое значение, если в цели редиректа нет ссылок на экземпляры классов.


Например, таблица, созданная путем вычисления выражения:

table("<<key1><S>><<key2><S>>","value1","value2")

объединяет URL со следующей строкой запроса:

?key1=value1&key2=value2

Результат будет примерно следующим: http://example.com?key1=value1&key2=value2.

Обратите внимание, что это идентично вызову:

web/redirect("http://example.com?key1=value1&key2=value2")

componentLocation

Data Table

Форматируется так же, как и переменная Расположение контейнера и применяется только в том случае, если оба параметра newTab и historyUrlChanged равны False.

Параметр componentLocation указывает переменную Расположение компонента , которая должна быть применена к инструментальной панели при ее открытии. Она управляет расположением панели относительно панели, на которой была вызвана функция web/redirect(...).

Вспомогательные функции Создать расположение компонента для сетки, Создать расположение компонента абсолютно, и Создать расположение компонента плавающе из контекста утилиты могут быть использованы для удобного создания правильно отформатированной таблицы данных для параметра componentLocation.


Например

Функция componentLocationForDockable() может использоваться для создания переменной Расположение компонента которая открывает инструментальную панель users.admin.dashboards.example как tab в компоненте с именем panel0, при этом группа вкладок располагается в top компонента:

evaluate(
'{web/redirect("users.admin.dashboards.example",
false,
false,
\'table("<<key1><S>><<key2><S>>","value1","value2")\',
\'{utilities:componentLocationForDockable(
"^",
"tab",
"",
"panel0",
"",
"top")}\' )}')

Ссылка на событие активатора

Многие инструментальные панели генерируют события при взаимодействии с пользователем или при изменении их свойств каким-либо другим способом. Некоторые события содержат сопутствующую информацию (например, координаты точки щелчка мыши в области компонента).

Ссылка env/value (т. е. ссылка на переменную окружения value) указывает на таблицу, содержащую данные о событии, вызвавшем активацию привязки.

Пример выражения привязки инструментальной панели

{form/numberField1:value} * 100

Это выражение разрешится в число, равное свойству value компонента Числовое поле, названного numberField1, умноженному на 100.