update dragData

This commit is contained in:
Aleksey Chichenkov 2020-10-15 17:47:55 +03:00
parent 2e0878d9fd
commit 87ce60293f
1 changed files with 35 additions and 18 deletions

View File

@ -9,6 +9,8 @@
/**
* #### DragData - описание того, как работать с драгом из паблишера
*
* Важно понимать, что если вы положили component, то model или group класть уже не нужно, т.к. данные о них у вас уже есть
*
* <br>
*
* #### Структура
@ -23,39 +25,54 @@
*
* // структура
* VariableContainer [
* <dragType> : Map(String, String)
* // <dragType> : Map(<colId>, <clipboardOptionId>)
* <dragType> : Deque(Structure[
* type: Number, // 0 - обычный режим (установит по значению cbAttrId то, что в ячейке colId)
* // 1 - установит в cbAttrId имя ячейки
* // 2 - установит в cbAttrId значение ячейки
* colId: String, // этот атрибут нужен только когда type=0,
* cbAttrId: String // этот атрибут нужен всегда, т.к. он указывает идентификатор поля в объекте клипборда
* ])
* ]
*
* // пример
* // Здесь мы видим dragType "model"
* // Дальше мы находим colId "modelAddr" и получаем данные из паблишера в нужной строчке по этому полю
* // затем мы укладываем по clipboardOptionId "address" в объект клипборда значение, которое было получено из таблицы
* // аналогичные действия проделываются и для dragType "component"
* VariableContainer [
* model: Map(String, String)[
* "modelAddr": "address"
* ],
* component: Map(String, String)[
* "modelAddr": "address",
* "cTag": "cTag",
* "cid": "id"
* 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 |
*| node | позволяет перетащить ноду | nodeId: Integer, treeTag: String |
*| 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