BPMN#
BPMN - элемент управления для отрисовки диаграм в формате условных обозначений.
Контрол поставляется в отдельном пакете ecosoft-lexema8-bpmn. Для его использования необходимо установить последнюю версию пакета и настроить свойство controls раздела front.
Свойства#
id#
Идентификатор контрола.
Отнаследовано от Control.
hint#
Всплывающая подсказка, которая появляется при наведении на контрол.
Отнаследовано от Control.
hintLength#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | - |
максимальное количество символов для всплывающей подсказки
captionWidth#
Ширина заголовка в колонках (для Bootstrap-верстки).
Отнаследовано от Control.
editorWidth#
Ширина контрола в колонках (для Bootstrap-верстки).
Отнаследовано от Control.
captionTextAlign#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | left | left, right |
Выравнивание текста заголовка контрола.
controlRows#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 1 |
Количество строк.
Количество однострочных контролов, по общей высоте которых (с учетом расстояния между ними) вычисляется высота memo,в случае заданного height вычисляется через height
readOnly#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | false | true/false |
Режим "только для чтения"
height#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | auto |
Высота мемо в пикселях.
По умолчанию "auto" и вычисляется через controlRows. Например, height = "100px".
denyRoles#
Список ролей без прав на данный элемент.
Отнаследовано от Control.
readRoles#
Список ролей на чтение данных.
Отнаследовано от Control.
writeRoles#
Список ролей на изменение данных.
Отнаследовано от Control.
visible#
Видимость контрола.
Отнаследовано от Control.
width#
Ширина контрола.
Отнаследовано от Control
Методы#
getRootElement#
Асинхронный метод, возвращает корневой элемент диаграммы для отрисовки.
Пример
getServices#
Метод, возвращающий объекты для взаимодействия с bpmn представлением.
Пример
Данный метод возвращает следующие элементы
| параметр | тип | описание |
|---|---|---|
| args | object | объект с элементами |
| args.eventBus | object | шина событий, которая управляет всеми событиями в приложении |
| args.elementRegistry | object | реестр всех элементов диаграммы |
| args.modeling | object | сервис для модификации диаграммы |
Возможности объектов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 | |
Пример обновления имени объекта в bpmn
Пример отслеживания клика по объекту
cleanAll#
Синхронный метод, удаляет все элементы с диаграммы.
Пример
moveObject#
Синхронный метод, изменяет координаты диаграммы.
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.object | object | объект который будет перемещаться |
| args.x | number | координата x |
| args.y | number | координата y |
Пример
createParticipant#
Синхронный метод, создает диаграмму.
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.name | string | текст подписи диаграммы |
| args.height | number | высота диаграммы |
| args.width | number | ширина диаграммы |
| args.x | number | координата x |
Пример
После создание элемента необходимо передать его в параметр shape метода createObjectShape
createLanes#
Синхронный метод, создает полосы. Возвращает массив объектов полос диаграммы
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.laneName | [string] | массив имен полос |
| args.participantShape | number | диаграмма для которой будут добавляться линии |
Пример
createShape#
Синхронный метод, создает элемент
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.type | string | Параметр задающий то какой будет объект. Допустимые значения: bpmn:StartEvent, bpmn:BusinessRuleTask, bpmn:ExclusiveGateway, bpmn:EndEvent, bpmn:ParallelGateway |
| args.name | string | текст, который будет отображаться на экране в элементе |
Пример
После создание элемента необходимо передать его в параметр shape метода createObjectShape
createObjectShape#
Синхронный метод, добавляет элемент на диаграмму
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.shape | object | объект создающий с помощью метода createShape или createParticipant |
| args.canvas | object | полотно в котором отрисовывается элемент |
| args.x | number | координата x |
| args.y | number | координата y |
| args.color | string | цвет элемента, при отсутствии цвет белый по умолчанию. Допустимые значения: Red, Green |
| args.textTimer | string | текст который будет отображаться в элементе часы |
| args.leftDocument | function | функция срабатываемая после клика по левому документу |
| args.rightDocument | function | функция срабатываемая после клика по правому документу |
Пример
createConnection#
Синхронный метод, добавляет линию соединения
| параметр | тип | описание |
|---|---|---|
| args | object | объект со свойствами |
| args.shapeBebin | object | объект откуда выходит линия соединения |
| args.shapeEnd | object | объект куда входит линия соединения |
| args.canvas | object | полотно в котором отрисовывается элемент |
| args.directionB | string | параметр, говорящий откуда из начального объекта выводить flow. Допустимые значения: left, right, top. По умолчанию значение top |
| args.directionE | string | параметр, говорящий куда в конечный объект вводить flow. Допустимые значения: left, right, top. По умолчанию значение top |
| args.canvas | object | полотно в котором отрисовывается элемент |
| args.curve | string | параметр, говорящий как искривить линию соединения. Допустимые значения: right, top. По умолчанию рисуется прямая линия без изгибов |
| args.text | string | текст который добавиться на линию соединения |
| args.textPosition | string | параметр, говорящий о том около какого из изгибов добавить текст при значении curve = right. Допустимые значения: bottom, top. По умолчанию значение bottom |
| args.finalLine | boolean | параметр говорящий о том что это линия заканчивающая распараллеливание, координаты x для кривой высчитвыаются как конечный объект минус 40 |
Пример
getElements#
Синхронный метод, возвращает массив объектов всх элементов с диаграммы
Пример
importXML#
Асинхронный метод, импортирующий текст формата xml в диаграмму
| параметр | тип | описание |
|---|---|---|
| string | string | текст диаграммы в формате xml |
Пример
exportXML#
Асинхронный метод, экспортирующий диаграмму в текст формата xml. Возвращает string переменную
Пример
События#
valueChanged#
Возникает при смене значения
| параметр | тип | описание |
|---|---|---|
| s | BPMN | экземпляр класса контрола |
| e | object | |
| e.args | object | аргументы события |
| e.args.element | object | измененный элемент |
| e.args.gfx | object | SVG элемент (визуальное представление) |
Пример
Особенности контрола#
У данного контрола нет свойств value и bind, поэтому для сохранения в базу данных рекомендуется использовать следующее решение:
Добавить в constructor документа следующий код:
Пример
Так же необходимо добавить код в сохранение
