Para que sirve Ext.util.MixedCollection??
Es como un hash, guardas un objeto y le asignas una llave, muy semejante al TreeMap en Java <!-- s;) --><!-- s;) -->
saludos
Entonces en el puedo guardar componentes de extjs para saber si ya han sido declarados etc?
Podrias ponerme un pequeño ejemplo??(no he programado en java po rlo que no entiendo lo del treemap sorry <!-- s;) --><!-- s;) --> )
vas hash = Ext.util.MixedCollection(); hash.add('elemento1',element); hash.add('ventana',ventanaObj); if(hash.containsKey('ventana')){ var ventana = hash.get('ventana'); ventana.show(); hash.removeKey('ventana'); } hash.each(function(item,index,lenght){ //has algo aquí para cada elemento });bueno, te pongo el ejemplo anterior, espero quede mas clara la situación <!-- s:D --><!-- s:D --> en pocas palabras podemos decir que es una colección donde le puedes asignar una "llave" a los indices y luego puedes usar esa llave para acceder a los elementos. saludos
yo de nuevo <!-- s;) --><!-- s;) -->.
si yo tengo este codigo
Ext.BLANK_IMAGE_URL="ext/resources/images/default/s.gif"; Ext.onReady(function(){ Ext.QuickTips.init(); var coleccion= new Ext.util.MixedCollection(); Ext.get('boton').on('click',function(){ if(coleccion.containsKey('filemanager')){ console.debug('abro'); var otro=coleccion.item('filemanager'); otro.show(); } else{ console.debug('añado'); var manager = new Ext.ux.FileManager({ url: 'secciones/getfiles/getFiles.php' }); manager.show(); coleccion.add(manager.getXType().toString(),manager); } }); });Usando tu filemanager <!-- s;) --><!-- s;) -->, por que la 2º vez que hago click en el boton no se abre de nuevo la ventana filemanager?? es porque cuando se cierra la ventana , y la destruye, el mixedcollection no tiene una copia de este componente y no la puede abrir??. Gracias de nuevo!
Lo que tienes que hacer es ocultar la ventana cuando el usuario la cierra en lugar de eliminarla, utiliza la propiedad "closeAction", algo así:
var manager = new Ext.ux.FileManager({ closeAction: 'hide', url: 'secciones/getfiles/getFiles.php' });Esto es porque el componente "FileManager" extiende de "Window", osea puedes aplicarle todas las propiedades de configuración que usas para las ventanas. prueba y nos cuentas. saludos
si habia pensado eso pero entonces no hace falta que guarde el componente en el Ext.util.MixedCollection solo con guardar la referencia vale ?
quedaria de la siguiente manera:
if(coleccion.containsKey('filemanager')){ console.debug('abro'); /* esto lo borrro ------var otro=coleccion.get('filemanager'); otro.show();----*/ //con volver a poner esto valdria manager.show(); } else{ console.debug('añado'); var manager = new Ext.ux.FileManager({ url: 'secciones/getfiles/getFiles.php' }); manager.show(); coleccion.add(manager.getXType().toString(),manager); }
¿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.