.. _drag_and_drop_rows: Перетаскивание (Drag & Drop) строк списка мышью ================================================== Между фреймами содержащими список или древовидный список возможно организовать перетаскивание элементов (Drag & Drop). Возможность перетаскивания определяется свойствами фреймов .. versionadded:: 1.20.0_rc21 Свойства фреймов --------------------- :btk:frameprop:`dragDrop.rows.isDragEnabled` :btk:frameprop:`dragDrop.rows.isDropEnabled` События фреймов ---------------------- В процессе перетаскивания в выборке срабатывают следующие события (вызываются операции-тригеры, если они существуют в выборке): :btk:event:`onDragOver` :btk:event:`onDragDrop` Свойства списочного представления ----------------------------------- .. seealso:: :java:type:`CoreListView#canAcceptDragObject()` :java:type:`CoreListView#dragObject()` :java:type:`CoreListView#dragRecord()` :java:type:`CoreListView#dragRecordColumnName()` Пример использования Drag & Drop ---------------------------------- .. code-block:: scala :caption: Пример операции onDragOver def onDragOver(): Unit = { val listView = layout.frame.view.asListView val dragStartColumnName = listView.dragObject.getFocusedFieldName listView.canAcceptDragObject = dragStartColumnName.equals(listView.dragRecordColumnName) } .. code-block:: scala :caption: Пример операции onDragDrop def onDragDrop(): Unit = { val dropRecord = layout.frame.view.asListView.dragRecord var message = s"Drag id = ${layout.frame.view.asListView.dragObject.getVar("ID")}\nDrop id = " if (dropRecord != null) { message += s"${layout.frame.view.asListView.dragRecord.getValueByName("ID")}" } else { message += "null" } dialogs.showMessage(message) }