2014-12-22 2 views
0

У меня есть панель дерева с плагином treeviewdragdrop. в моем контроллере мне нужно попросить пользователя выбрать, хочет ли он просто удалить узел или скопировать его.динамическая копия в ExtJS перетаскивании

Ext.define('App.view.admin.LevelTree', { 
    extend: 'Ext.tree.Panel', 
    xtype: 'leveltree', 
    requires: ['Ext.tree.plugin.TreeViewDragDrop'], 
    viewConfig: { 
     preserveScrollOnRefresh: true, 
     plugins: { 
      ptype: 'treeviewdragdrop' 
     } 
    } 

И вот мой код контроллера:

me.getLevelTree().getView().on('drop', me.doChangeParent, me); 

-

doChangeParent: function(node, data, overModel, dropPosition, eOpts) {...} 

Как я могу установить копию: истинный атрибут в моем дереве панели (в контроллере) основанный на выборе пользователя?

ответ

1

Вы можете использовать плагин и конфигурацию вида, как это:

viewConfig: { 
       plugins: { 
        ptype: 'treeviewdragdrop' 
       }, 
       listeners: { 
        beforedrop: function(node, data, overModel, dropPosition, dropHandlers) { 
         dropHandlers.wait = true; 
         Ext.MessageBox.confirm('Copy or move', 'If you want to copy node, press Yes', function(btn) { 
          data.copy = (btn === 'yes'); 
          dropHandlers.processDrop(); 
         }); 
        } 
       } 
      }, 

Живой пример: https://fiddle.sencha.com/#fiddle/fea

+0

Спасибо приятель dropHandlers является то, что я искал. – sina