Comunidad de diseño web y desarrollo en internet online

Clonar un Panel y todo su contenido, y lanzar un PopUp

Citar            
MensajeEscrito el 28 Nov 2008 11:49 am
Hola que tal. Igual alguien me puede ayudar porque me he parado en los siguiente:

En una aplicación de flex tengo varios paneles y dentro de ellos hay distintos charts y botones. Lo que quiero hacer es que cuando pulses un botón del Panel, dicho Panel se convierta en un popup y así poder ver su contenido más grande en la pantalla.

El problema es que si hago un PopUpManager.addPopUp con ese Panel me hace lo que quiero aunque desaparece de la aplicación, por lo que cuando hago el removePopUp, el popup desaparece y ya no tengo el panel en la app principal.

En este link, hay una imagen más aclaratoria.(creo que no se poner la imagen aquí directamente)
http://img140.imageshack.us/my.php?image=panelll7.gif

Este es el código, super reducido, por que en la aplicación lo hago con varias clases y sería más complicado de mostrar.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private var panelClon:Panel;

private function panelExpandir():void{
panelClon = new Panel;
panelClon = panelUno;//copio el contenido de un panel en otro
panelClon.width=1000;
panelClon.height=600;
PopUpManager.addPopUp(panelClon,this,true);//lanzo el popup
PopUpManager.centerPopUp(panelClon);
btnExpand.visible= false;
var btnClose:Button = new Button();
btnClose.addEventListener(MouseEvent.CLICK,panelCerrar);
panelClon.addChild(btnClose);
}
private function panelCerrar(event:MouseEvent):void
{
PopUpManager.removePopUp(panelClon);
}

]]>
</mx:Script>
<mx:HDividedBox width="100%" height="100%">
<mx:Panel id="panelUno" width="50%" height="50%">
<mx:Label text="prueba"/>
<mx:Label text="prueba"/>
<mx:Button id="btnExpand" click="panelExpandir()" label="expand" />
</mx:Panel>
<mx:Panel id="paneldos" width="50%" height="50%">
<mx:Label text="prueba"/>
<mx:Label text="prueba"/>
</mx:Panel>
</mx:HDividedBox>
</mx:Application>


Muchas gracias anticipadas, un saludo

Por codico

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Nov 2008 02:57 pm
Al hacer esto:

panelClon = panelUno;

En realidad creas un puntero al mismo panel, no estas copiando sus propiedades

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Nov 2008 05:53 pm
Muchas gracias Jorge. Que pena que me cree un puntero :| .

¿Y no habría alguna forma de hacer una copia realmente? La verdad es que me sería muy útil.

Saludos.

David.

Por codico

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Nov 2008 01:55 pm
Not really, tendrías que recrear todos los datos, quizás agregar algún metodo clone

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.