Comunidad de diseño web y desarrollo en internet online

Insetrar items en un mx:Tree

Citar            
MensajeEscrito el 04 Dic 2008 09:48 pm
Hola, resulta que tengo un arbol (mx:Tree) y lo alimento con un XMLList

Quiero que despues de cierto evento se agreguen hojas a una rama especifica del arbol, pero antes, quiero saber si esa rama existe, de no existir, quiero crearla.

Antes del evento
Ej:
Categoria 1
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 2
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 3
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3

Despues del evento
Categoria 1
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 2
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 3
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria creada por el evento
|-------Hoja 1

2º ejecucion del evento
Categoria 1
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 2
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria 3
|-------Hoja 1
|-------Hoja 2
|-------Hoja 3
Categoria creada por el evento
|-------Hoja 1
|-------Hoja 2

Estuve provando con varias funciones pero no puedo encontrar una que me diga si la categoria existe o no dada su etiqueta u otro campo del XML y tampoco se que funcion usar para crear las hojas dentro de la categoria dada.

Me dan una mano?

Gracias!

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 05 Dic 2008 12:01 pm
Supongo que querrás graficar una estructura muy grande para tener que insertar una rama cada vez. Dado que el componente no tiene la raqma, no te podrá decir si existe o no, eso deberías buscarlo en la fuente de información, sea el XML, sea la BD que lo produjo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Dic 2008 12:47 pm
Hola Jorge, Gracias por la respuesta.

En realidad el arbol es chico, son solo unas ramas nomas. El problema es que ese arbol representa unos videos precargados, a los cuales, el usuario puede cargarle otros a travez de su webcam. Lo que quiero es que cuando el usuario cree sus propios videos, aparezca una nueva rama que se llame por ejemplo "Personales" y que todos los videos "Personales" vayan a parar ahi.

Para eso necesito saber, a la hora de guardar, si la categoria personales existe, de no existir, quiero crearla, pero solo una vez, para ir metiendo los videos ahi dentro, en forma den uevas entradas XML dentro del arbol.

Esta es la funcion que estoy preparando, pero no anda!

Código :

private function recordPushed():void{
   if(isRecording){
      isRecording=false;
      vPreviaMini.source=camera.stopRecord();
      vPreviaMini.play();
      record_btn.label = "Record";
        bIcon=stopIcon;
      
      if (arbolCategorias.getChildByName("Personales") == null) {
         //Agrego la Categoria "Personales" si no existe
         var newNode:XML = <categoria unNombre="Personales" isBranch="true"></categoria>;
                   arbolCategorias.dataProvider.addItemAt(newNode, arbolCategorias.dataProvider.length);
        }
    
                var dept:XMLList =discosDP.(@unNombre == "Personales");
      if (dept.length()) {
                   var newLeaf:XML = <disco/>;
                   newLeaf.@unNombre = "Jose";
                  if( dept.length() > 0 ) {
                     dept[0].appendChild(newLeaf);
                 }
        }
   }else{
      isRecording=true;
      camera.startRecord();
      record_btn.label = "Stop";
         bIcon=recordIcon;
   }
}


Esto solo logra crearme una categoria y un hijo cada vez que pasa!...y no es lo que quiero.

Gracias pro la ayuda!

Saludos.!

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2008 01:20 pm
Es decir tu quieres agregar solo el hijo si la categoría ya existe y eso es lo que te está fallando, no logras obtener la referencia al nodo padre para insertar el hijo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2008 01:50 pm
Exacto, necesito encontrar al Padre dentro del arbol e insertarle hijos. Ademas necesito saber si el padre existe, para decidir si debo crear al padre o no...


Gracias por el interes!

Saludos

Por razor7

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2008 02:18 pm
Dado que los nodos se van metiendo unos dentro de otros, te diría que en vez de manipular directamente el Tree (agregando y quitando nodos) actualizes un dataProvider, por ejemplo un ArrayCollection (o un XML, aunque puede ser mas tedioso) y las búsquedas las hagas sobre ese objeto, lo actualices y renueves el dataProvider del Tree completo, a menos que tu Tree sea muy extenso, en cuyo caso puede que el rendimiento caiga

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Dic 2008 02:16 am
OK...voy a provar a ver si me sale, cualquier cosa vuelvo aca.

Gracias!

Por razor7

26 de clabLevel



 

Argentina

firefox

 

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