initi.doc/docfiles/custom/context.js

143 lines
6.7 KiB
JavaScript
Raw Normal View History

2020-03-31 11:06:26 +00:00
/**
* ### Документация по работе с GUI версии 2.9.1
*
* @name 01
* @context
* @memberof context
*/
/**
* ### Контекстное меню
*
* <br>
*
* #### Протокол
| type | command | data |
|------------- |------------------------------ |----------------------------------------------------------------------------- |
| GUI => CORE | requestContext | |
| CORE => GUI | responseContext | result: List(VariableContainer)<br>proxyData: VariableContainer |
| GUI => CORE | executeContextAction | action: String,<br>data: VariableContainer,<br>proxyData: VariableContainer |
| CORE => GUI | executeContextActionResponse | wizard: Boolean,<br>result: Map(Integer, Integer) |
<br>
#### Описание содержимого responseContext.result
| name | type | description |
|---------- |------------------- |-------------------------------------------------------------------- |
| id | String | Идентификатор, пункта меню |
| type | Integer | Тип пункта меню |
| parentId | String | Родительский ПМ, если его нет, то "" |
| name | String | Локализация названия |
| options | VariableContainer | Данные, которые сопутствую ПМ, в зависимости от контекста действия |
<br>
#### Описание типов, пунктов контекстного меню
| id | name | descriptions | options |
|---- |----------- |--------------------------------------------------------------------------------------------------- |------------------------------------------------------------------------------ |
| 0 | group | пункт меню (ПМ), который содержит в себе подпункты | VariableContainer[] |
| 1 | simple | ПМ, который исполняет запрос к ядру (executeAction) | VariableContainer[] |
| 2 | guiAction | действие которое исполняется со стороны GUI. | Опции, специфичные для id |
| 3 | dialog | ПМ, который откроет диалог, который необходимо заполнить и исполнит запрос к ядру (executeAction) | VariableContainer [<br> type: String,<br> data: VariableContainer<br>] |
| 4 | widget | ПМ, который любой виджет | VariableContainer [<br> type: String,<br> data: VariableContainer<br>] |
* #### Пример ответа
*
* ```
VariableContainer [
errCode : 0,
proxyData : VariableContainer [
nodeIds : Set(Integer) [
0
]
],
result : List(VariableContainer) [
VariableContainer [
options : VariableContainer [
],
id : "model",
parentId : "",
type : 2,
name : "Модель"
],
VariableContainer [
options : VariableContainer [
data : VariableContainer [
label : "Введите название для нового контейнера",
formVC : VariableContainer [
data : VariableContainer [
rules : List(VariableContainer) [
VariableContainer [
id : "name",
message : "Имя не может быть пустым",
validator : "input.size() > 0"
]
],
data : List(VariableContainer) [
VariableContainer [
value : "",
id : "name",
title : "Название",
viewer : VariableContainer [
data : VariableContainer [
vc : true
],
type : "LabelString"
],
editor : "Textbox"
]
]
],
type : "Form"
],
windowOptions : VariableContainer [
width : VariableContainer [
type : 0,
data : 300
],
height : VariableContainer [
type : 0,
data : 160
]
]
],
type : "VariablesForm"
],
id : "addContainer",
parentId : "",
type : 3,
name : "Добавить контейнер"
],
VariableContainer [
options : VariableContainer [
],
id : "shortcutTopology",
parentId : "",
type : 1,
name : "Создать ярлык на рабочем столе"
],
VariableContainer [
options : VariableContainer [
],
id : "inventory",
parentId : "",
type : 1,
name : "Синхронизация инвентаря"
]
],
command : "responseContext"
]
* ```
*
* @name 02
* @context
* @memberof context
*/