Foro

Nodos a arrastrar en un dragConfig de un TreePanel ?...

0
Hola amigos !. Mi pregunta es la siguiente... Asi como en el caso de los DataView uno creo que tiene un itemSelector y en el caso de los GridPanel uno tiene un rowSelector, que es lo que uno tendria para detectar que se ha hecho click en un nodo con el metodo getTarget en el metodo getDragData o se podria hacer alguna que otra tramoya o como se hace ?. Yo habia pensado en verificar que 2 condiciones de berian de dar: 1. Que lo que devuelva e.getTarget() no sea nulo 2. Que el metodo getSelectedNodes() tenga por lo menos uno... Estaria bien la logica ???... De pronto no se como haria con el tema de getRepairXY !!!... Una ultima acotacion es la API de esta clase... Digo la de TreeDragZone !... Cuales son los metodos vitales a implementar???. getDragData es uno el otro getRepairXY y ya ?... Despues obviamente yo iria probando pero eso seria... ???. Una cosa que he estado probando y no me funciona es la siguiente, en el caso de querer poner un proxy customizado: var ddelContent = document.createElement('div'); ddelContent.id='dragData'; ddelContent.innerHtml = 'Agustin
Ernesto'; return { ddel: ddelContent, repairXY: ... }; Ven algo raro en esto ?. Espero que me puedan responder !... Saludos
0
Alvaro. Gracias por responderme !. Mi idea era hacerlo entre un TreePanel y un GridPanel... Me las ingenie con el TreePanel e hice el overrride de initDrag y pude hacer un proxy muy piola... Pero en el caso del TreePanel, tambien tendria que hacer lo mismo con la clase TreeDragZone ?... Un abrazo... Ya lo voy a probar xq toy con unas cosas de una diplomatura...
0
Alvaroooo !. Me salioooo !... Gracias a Dios !. Lo hice con Ext JS 3.4 !. Cuando tenga tiempo lo voy a pasar a la version 4.0 !...Gracias por el ejemplo de nuevo !.
0
Hola Agus, te paso un ejemplo de drag and drop sobre dos Arboles en el que solo uno puede hacer drag && drop sobre el otro pero viceversa no, xq asi estaba requerido, ademas ese drag and drop es de multiseleccion var arbol_a = Ext.create('Ext.tree.Panel', { region:'west', id:'tree', layout: 'column', split:true, flex: .75, useArrows: true, rootVisible: false, store: store, multiSelect: true, //Defines que la seleccion de nodos es multiple singleExpand: false, //Defines que no haya exclusión a la hora de expandir nodos simpleSelect: true, //Defines el tipo de selección (haciendo click con el boton derecho) viewConfig: { plugins: { ptype: 'treeviewdragdrop' }, componentCls: 'x-treegrid-row' }, }, listeners:{ //Con este listener y el evento beforeselect evito que se pueda seleccionar un directorio para que no pueda hacer DD sobre el directorio, esto ya es un poco al gusto del consumidor y de requerimientos beforeselect: function(rm, rec, index, opt){ if (!rec.data.leaf) return false; } }, columns:[...] }); var arbol_b = Ext.create('Ext.tree.Panel', { layout: 'column', region: 'center', id: 'treeUsua', useArrows: true, rootVisible: false, store: storeUsuarios, animCollapse: true, singleExpand: true, flex: .25, forceFit: true, singleExpand: false, viewConfig: { plugins: { ptype: 'treeviewdragdrop', appendOnly: true, // Defines que solo se puede añadir y no ordenar enableDrag: false // evitas que se pueda hacer drag & drop desde el arbol_b al arbol_a }, componentCls: 'x-treegrid-row', appendOnly: true, listeners: { drop: function(node, data, overModel, dropPosition, opt){ // tu código cuando se produce el evento on drop en el arbol receptor, toma como referencia que para acceder a los nodos seleccionados se realiza de la siguiente forma "arbol_a.getSelecionModel()" } } }, NOTA: Luego si que hay algunos ejemplos de DD en sencha en el que define las regiones por grupos en los que se puede realizar DD pero yo nunca he llegado a entenderlo el ejemplo es el siguiente http://docs.sencha.com/ext-js/4-0/#!/guide/drag_and_drop Espero poder ayudarte, Saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.