Foro

Para que sirve Ext.util.MixedCollection??

0
He leido el manual pero no me entero demasiado <!-- s;) --><!-- s;) --> de cual es su funcion
0
Es como un hash, guardas un objeto y le asignas una llave, muy semejante al TreeMap en Java <!-- s;) --><!-- s;) --> saludos
0
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;) --> )
0
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
0
muchas gracias!! ahora si me quedó claro <!-- s;) --><!-- s;) -->
0
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!
0
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
0
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.