Cuestión : Árbol de la flexión con el botón de radio

Tengo datos de XML, y quiero demostrar que los datos en control del árbol de la flexión con el botón de radio. Cómo poder combinamos el árbol de la flexión y el botón para leafs.

Let nosotros asume que tenemos el uso siguiente en el lugar: ¿


: Xmlns del uso: del >
del " #FFFFFF " del backgroundColor= " del nofollow " > http://www.adobe/>.com/2006/mxml " del " rel= del _blank del " target= " de http://www.adobe.com/2006/mxml href= " del
” del label= " de " part1 del id= del
de la " lista B " del label= de " item2” del id= del


” del label= " de " part2 del id= del
" del label= " de " part1 del id= del
de la " lista A " del label= de " item1 " del id= del del
del >
del " myData " del id= de " e4x " del format= de XML part1 " comprobó = part2” comprobado = part1” comprobado = part2” comprobado = comprobado = “verdad”el id= “verdadero” “falso” “falso” “falso” " part1” del
de la " lista E " del label= del id= " item5” del
de/>
” del label= " de " part2 del id= del
” del label= " de " part1 del id= del
del " artículo D " del label= de " item4” del id= del del
del >
de la " lista C " del label= de " item3” del id= del de/>

” del label= " de " part2 del id= del
” del label= " de " part2 del id= del
part4” comprobó = part5” comprobado = part1” comprobado = part2” comprobado = el label= “falso” " part1” del id= " part15” del
de la " lista F " del label= del id= " item6” del
de/>
del label= " part1” comprobó = comprobado = el


: XML>
 
 
     ” 5” paddingBottom= "” del paddingRight= " 5 5 "

: Width= falso del
" del showRoot= " del
" del " myTree” del id= del
del árbol 100%” height= del
" 100%” folderClosedIcon=” {falta de información} “folderOpenIcon=” {falta de información}” defaultLeafIcon= " {falta de información} “dataProvider=” {myData}” openItems= " {myData. .item} “>
del " @label” del labelField= del
del
del
del
del
: Tree>
       
   
             
   

How puede nosotros alcanzar el siguiente:
•Poblar el árbol basado en el
del valor (marca seleccionada demostración si es verdad)•Determinar el nodo (comprobado) seleccionado con su padre para processing.
•El botón de radio debe trabajar en cada
(qué del nodo individualmente significo por esto que debemos tener grupo del botón de radio para una cada los niños del
List A del ejemplo del padre node.
As tenemos botón de radio y el acontecimiento en ese botón de radio no debe afectar al botón de radio de la lista B).


class= del

Respuesta : Árbol de la flexión con el botón de radio

Lo que sigue es mi solución:
1- Crear un TreeItemRenderer de encargo como sigue:

RadioButtonTreeItemRenderer.as
_________________________________________________
paquete
{
      importación flash.events. Acontecimiento;
      
      importación mx.controls.RadioButton;
      importación mx.controls.RadioButtonGroup;
      importación mx.controls.treeClasses.*;

      la clase pública RadioButtonTreeItemRenderer amplía TreeItemRenderer
      {
            público var RadioBtn: RadioButton;
            público var RadioBtnGR: RadioButtonGroup
        itemXml público del var: XML;

            función pública RadioButtonTreeItemRenderer ()
            {
                  estupendo ();
                  mouseEnabled = falso;
            }


            datos determinados de la función pública de la invalidación (valor: Objeto): vacío {
            ¡si (valor! = falta de información) {
                super.data = valor;
               
                this.itemXml = XML (valor);
                si (== de this.itemXml.@checked verdad) {
                    this.RadioBtn.selected = verdad;
                } {
                    this.RadioBtn.selected = falso;
                }
            }
        }
        la función protegida invalidación createChildren (): vacío {
            super.createChildren ();
            RadioBtn = nuevo RadioButton ();
            RadioBtnGR = nuevo RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        updateDisplayList protegido invalidación de la función (unscaledWidth: Número, unscaledHeight: Número): vacío {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            si (super.data) {
                tld del var: TreeListData = TreeListData (super.listData);

                si (tld.hasChildren) {
                    this.RadioBtn.visible = falso;
                } {
                    this.RadioBtn.visible = verdad;
                }
                si (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- el código de uso es:

backgroundColor= " #FFFFFF " de http://www.adobe.com/2006/mxml " >

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              importación mx.collections.ArrayCollection;
                  importación mx.rpc.events.ResultEvent;
                  importación mx.controls. Alarma;


                  función privada TreeClickHandler (acontecimiento: Acontecimiento): vacío
                  {
                        selectedXmlList del var: XMLList;
                        itemObject del var: Objeto = event.currentTarget.selectedItem;

                        ¡si (! myTree.dataDescriptor.isBranch (itemObject)) {
                              selectedXmlList = myData.item.part. (== itemObject.@parentid del @parentid);
                              processSelection (selectedXmlList, itemObject.@id);
                        }

                  }

                  processSelection privado de la función (lista: XMLList, Objid: Secuencia): vacío {
                        artículo del var: XML;
                        para cada uno (artículo en lista) {
                              ¡si (item.@id! =Objid)
                              {
                                    item.@checked = falso;
                              }
                              {
                                    item.@checked = verdad;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (acontecimiento) “      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " falso "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {falta de información} “
                         folderOpenIcon= " {falta de información} “
                         defaultLeafIcon= " {falta de información} “
                         dataProvider= " {myData} “
                         openItems= " {myData. .item} “>
            


      



Otras soluciones  
 
programming4us programming4us