82 lines
4.9 KiB
JavaScript
82 lines
4.9 KiB
JavaScript
/**
|
||
* ### Протокол и данные паблишера
|
||
*
|
||
* @name 01
|
||
* @publishers
|
||
* @memberof publishers
|
||
*/
|
||
|
||
/**
|
||
* #### DragData - описание того, как работать с драгом из паблишера
|
||
*
|
||
* Важно понимать, что если вы положили component, то model или group класть уже не нужно, т.к. данные о них у вас уже есть
|
||
*
|
||
* <br>
|
||
*
|
||
* #### Структура
|
||
* ```
|
||
* // dragType - один из типов, того что возможно перетаскивать
|
||
* // Map(String, String) - определяет какой атрибут будет использован для получения данных
|
||
* // короче говоря, у нас есть список колонок, которые приходят в responseTableInfo под полем tableInfo : List(VariableContainer)
|
||
* // и там есть поле colId - это идентификатор колонки.
|
||
* // Так вот, ключ в этой мапе и есть colId,
|
||
* // Значением же выступает имя опции, под которым значение в поле перетаскиваемой строчки будет положено в данные клипборда
|
||
* // в таблице ниже, приведены атрибуты соответствующие dragType'ам
|
||
*
|
||
* // структура
|
||
* VariableContainer [
|
||
* <dragType> : Deque(Structure[
|
||
* type: Number, // 0 - обычный режим (установит по значению cbAttrId то, что в ячейке colId)
|
||
* // 1 - установит в cbAttrId имя ячейки
|
||
* // 2 - установит в cbAttrId значение ячейки
|
||
* colId: String, // этот атрибут нужен только когда type=0,
|
||
* cbAttrId: String // этот атрибут нужен всегда, т.к. он указывает идентификатор поля в объекте клипборда
|
||
* ])
|
||
* ]
|
||
*
|
||
* // пример
|
||
* // Здесь мы видим dragType "model"
|
||
* // Дальше мы находим colId "modelAddr" и получаем данные из паблишера в нужной строчке по этому полю
|
||
* // затем мы укладываем по clipboardOptionId "address" в объект клипборда значение, которое было получено из таблицы
|
||
* VariableContainer [
|
||
* model: Deque(VariableContainer)[
|
||
* VariableContainer [type: 0, colId: "modelAddr", cbAttrId: "address" ]
|
||
* ]
|
||
* ]
|
||
*
|
||
* // результат
|
||
* new CBModel({"address": Address[]})
|
||
*
|
||
* // Если тип = 0, тогда мы берем по colId "modelAddr", вынимаем значение по нему, и укладываем в поле "addr"
|
||
* VariableContainer [
|
||
* component: Deque(VariableContainer)[
|
||
* VariableContainer [ type: 0, colId: "modelAddr", cbAttrId: "address" ]
|
||
* VariableContainer [ type: 0, colId: "cTag", cbAttrId: "cTag" ],
|
||
* VariableContainer [ type: 0, colId: "cid", cbAttrId: "id" ]
|
||
* ]
|
||
* ]
|
||
* // результат
|
||
* new CBComponent({"address": Address[],"cTag": "someCTag","id": "someId"})
|
||
* ```
|
||
*
|
||
* <br>
|
||
*
|
||
* #### Описание dragType'ов
|
||
*
|
||
*| dragType | description | attributes
|
||
*|---------------- |------------------------------------------------ |-------------------------------------------------------------------------------------------------
|
||
*| model | позволяет перетаскивать устройства | address:Address
|
||
*| group | позволяет перетаскивать группу | address: Address, cTag: String
|
||
*| component | позволяет перетаскивать компонент | address: Address, cTag: String, id: String
|
||
*| attribute | позволяет перетаскивать атрибут | address: Address, cTag: String, id: String, name: String
|
||
*| attributeValue | позволяет перетаскивать значение атрибута | address: Address, cTag: String, id: String, name: String, value: Any
|
||
*| componentCell | позволяет перетаскивать из паблишера компонент | address: Address, cTag: String, id: String, name: String, value: Any, componentTypeName: String
|
||
*| alarmCell | позволяет перетаскивать из паблишера аварий | address: Address, cTag: String, id: String, name: String, value: Any, componentTypeName: String
|
||
*| node | позволяет перетащить ноду | nodeId: Integer, treeTag: String
|
||
*
|
||
*
|
||
* @name 02
|
||
* @publishers
|
||
* @memberof publishers
|
||
*/
|