2011-12-21 11 views
0

私は以下を実装しようとしています:ExtJs4ツリーの最新ノードを削除する方法

ドラッグアンドドロップを有効にした2つのツリーパネルがあります。私はいくつかのアイテムを最初のツリーから2番目のツリーにドラッグできます。最初のツリーはコンポーネントのカタログであり、2番目のツリーはプロダクトコンストラクタです。場合によっては、コンストラクタにノードをドロップすると、ドロップされたノードに子を追加する必要があります。実際に私がドロップすると、同時に2つのノードを追加する必要があります:ドロップされたノードと、コードで追加する2つ目のノード。

私はその余分なノードをドロップイベントハンドラに追加することに決めましたが、問題は最新のドロップされたノードを見つける方法を理解できないことです。

アイデア?

答えて

0

私は2つのイベントitemadddrop

の組み合わせを使用して、私は必要なものを実装するために管理ここではサンプルです、それが誰かのために役立つことを願っています:

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

Ext.tree.plugin.TreeViewDragDropクラスで利用可能な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

はい、私は私がすべきことを知っていますこのプラグインを使用しますが、問題はその最新のドロップされたノードを見つける方法です。私はドキュメントを読むことができますが、私は答えを見つけられませんでした。あなたは何かを提案できますか? –

関連する問題