2011-12-21 2 views
0

Я пытаюсь реализовать следующее:Как найти последние упал узел в дереве ExtJs4

У меня есть 2 дерева панели с поддержкой перетаскивания. Я могу перетащить некоторые элементы из первого дерева во второе. Первое дерево - это каталог компонентов, второй - конструктор продукта. В некоторых случаях, когда я бросаю узел в конструктор, мне нужно добавить дочерний элемент к удаленному узлу. Так что, когда я отбрасываю, мне нужно добавить одновременно два узла: узел, который был сброшен, и второй, который я добавляю в код.

Я решил добавить этот дополнительный узел в обработчик события пересылки, но проблема в том, что я не понимаю, как найти последний удаленный узел.

Любые идеи?

ответ

0

мне удалось осуществить то, что мне было нужно, используя сочетание двух событий itemadd и drop

Вот пример, надеюсь, что это будет полезно для кого-то:

onComponentAdd: function (records) { 
     var record = records[0]; 
     this.lastAddedRecord = record; 
    }, 

    onComponentDrop: function (element, data, dropNode) { 
     var record = this.lastAddedRecord; 

     var data = record.get('Data'); 
     if (!Ext.isEmpty(data)) { 
      var scheme = data.scheme; 
      Ext.each(scheme, function (item) { 
       if (item.type == 'componentlist') { 
        record.appendChild({ 
         text: item.name, 
         loaded: true, 
         expanded: true, 
         allowDrop: true 
        }); 
       } 
      }); 
     } 
    } 
0

Вы можете использовать событие drop, доступное с классом Ext.tree.plugin.TreeViewDragDrop. Этот класс в основном обеспечивает функцию перетаскивания или возврата для представления дерева (TreeView). Таким образом, вам нужно добавить событие drop в объект TreeView и добавить дочерние узлы или другие операции при запуске этого события.

Чтобы настроить TreeView, вы можете использовать параметр viewConfig, доступный с классом древовидной панели. Над головой, вы можете иметь закодировать что-то вроде этого:

viewConfig: { 
    plugins: {ptype: 'treeviewdragdrop'}, 
    listeners: { 
     drop: function(node,data,model,dropPosition,opts) { 
      // Add child nodes & other modification codes here... 
     } 
    } 
} 

Направить drop method in docs для получения более подробной информации о том, как получить данные, что вам нужно.

+0

да, я знаю, что я должен используйте этот плагин, но проблема заключается в том, как найти этот последний удаленный узел. Я прочитал документы, но я не нашел ответа, мог бы вы что-нибудь предложить? –