Bonsoir,

Je voudrais pouvoir "interdire" un drop dans des noeuds spécifiques d'un Tree.
Dernièrement, il me semblait avoir trouvé ce qu'il me fallait avec un "cancelDrop", mais rien ne fonctionne

Voici la déclaration de mon arbre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
Ext.define('module_contracts.view.Tree',
{
    id			: 'treePanel',
    extend		: 'Ext.tree.Panel',
    alias		: 'widget.treePanel',
    region		: 'west',
    xtype		: 'tree-grid',
    title		: 'Arborescence',
    width		: '35%',
    store		: 'TreeNodes',
    margin		: '5 5 5 5',
    multiSelect	: true,
    collapsible	: true,
    rootVisible	: false,
    useArrows 	: true, 
    hideHeaders	: true,
 
    columns: 
    [{
        xtype		: 'treecolumn',
        sortable	: true,
        dataIndex	: 'code',
        flex		: 6
    },
    {
        dataIndex	: 'description',
        sortable	: false,
        flex		: 10
    }],    
 
    viewConfig	: 
    {
    	id : 'treeView',
    	stripeRows: true,
    	plugins : 
    	[
    	 {
    		dropGroup		: 'treeGroup',
    		ptype 		: 'treeviewdragdrop',
    	 }
    	]
    }
});
Ensuite, dans mon controller, je comptais avoir un listener (event : beforedrop) et sa fonction, de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Ext.define('module_contracts.controller.General', 
{
    extend: 'Ext.app.Controller',
    init: function() 
    {
        this.control
        ({
            '#treePanel > treeview' :
            {
            	beforedrop : this.beforeDropNode
            },
 
        });
    },
 
     beforeDropNode : function( node, data, overModel, dropPosition, dropFunction, eOpts )
    {
    	/* En fonction du node survolé, j'autorise ou j'interdis le drop */
        /* J'avais vu un eOpts.cancel = false ou eOpts.dropStatus = false, mais ça fonctionne pas */
    },
}
Et c'est ce point que je n'arrive pas à réaliser.

Merci d'avance de vos réponses