Pergunta : Árvore do cabo flexível com tecla de rádio

Eu tenho uns dados de XML, e eu quero mostrar que dados no controle da árvore do cabo flexível com tecla de rádio. Como poder nós combinamos a árvore do cabo flexível e a tecla para leafs.

Let nós supor que nós temos a seguinte aplicação no lugar:


: Xmlns da aplicação: do >
do " #FFFFFF " " do backgroundColor= " do nofollow " > http://www.adobe/>.com/2006/mxml do " rel= " do _blank do " target= " de http://www.adobe.com/2006/mxml do href=
” do label= " de " part1 do id= do
lista B "” do label= da " de " item2 do id= do


” do label= " de " part2 do id= do
" do label= " de " part1 do id= do
lista A " " do label= da " de " item1 do id= do do
do >
do " myData " " do id= de " e4x do format= de XML part1 " verific = part2” verific = part1” verific = part2” verific = verific = “verdadeiro”o id= “verdadeiro” “falso” “falso” “falso” " part1” do
lista E "” do label= da " do id= " item5 do
de/>
” do label= " de " part2 do id= do
” do label= " de " part1 do id= do
artigo D "” do label= do " de " item4 do id= do do
do >
lista C "” do label= da " de " item3 do id= do de/>

” do label= " de " part2 do id= do
” do label= " de " part2 do id= do
part4” verific = part5” verific = part1” verific = part2” verific = o label= “falso” " part1” do id= " part15” do
lista F "” do label= da " do id= " item6 do
de/>
do label= " part1” verific = verific = o


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

: Width= falso do
" do showRoot= " do
" do " myTree” do id= do
da árvore 100%” height= do
" 100%” folderClosedIcon=” {zero} “folderOpenIcon=” {zero}” defaultLeafIcon= " {zero} “dataProvider=” {myData}” openItems= " {myData. .item} “>
do " @label” do labelField= do
do
do
do
do
: Tree>
       
   
             
   

How pode nós conseguir o seguinte:
•Povoar a árvore baseada no
do valor (marca selecionada mostra se é verdadeiro)•Determinar o nó (verific) selecionado com seu pai para um processing.
•A tecla de rádio deve trabalhar em cada
do nó individualmente (o que eu significo por este que nós devemos ter o grupo da tecla de rádio para cada crianças do
List A do exemplo do pai node.
As temos a tecla de rádio e o evento nessa tecla de rádio não deve afetar a tecla de rádio da lista B).


class= do

Resposta : Árvore do cabo flexível com tecla de rádio

O seguinte é minha solução:
1- Criar um TreeItemRenderer feito sob encomenda como segue:

RadioButtonTreeItemRenderer.as
_________________________________________________
pacote
{
      importação flash.events. Evento;
      
      importação mx.controls.RadioButton;
      importação mx.controls.RadioButtonGroup;
      importação mx.controls.treeClasses.*;

      a classe pública RadioButtonTreeItemRenderer estende TreeItemRenderer
      {
            público var RadioBtn: RadioButton;
            público var RadioBtnGR: RadioButtonGroup
        itemXml público do var: XML;

            função pública RadioButtonTreeItemRenderer ()
            {
                  super ();
                  mouseEnabled = falso;
            }


            dados ajustados da função pública da ultrapassagem (valor: Objeto): vácuo {
            se (valor! = zero) {
                super.data = valor;
               
                this.itemXml = XML (valor);
                se (== de this.itemXml.@checked verdadeiro) {
                    this.RadioBtn.selected = retificam;
                } mais {
                    this.RadioBtn.selected = falso;
                }
            }
        }
        a função protegida ultrapassagem createChildren (): vácuo {
            super.createChildren ();
            RadioBtn = RadioButton novo ();
            RadioBtnGR = RadioButtonGroup novo ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        updateDisplayList protegido ultrapassagem da função (unscaledWidth: Número, unscaledHeight: Número): vácuo {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            se (super.data) {
                tld do var: TreeListData = TreeListData (super.listData);

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

________________________________________

2- o código de aplicação é:

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

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              importação mx.collections.ArrayCollection;
                  importação mx.rpc.events.ResultEvent;
                  importação mx.controls. Alerta;


                  função confidencial TreeClickHandler (evento: Evento): vácuo
                  {
                        selectedXmlList do var: XMLList;
                        itemObject do var: Objeto = event.currentTarget.selectedItem;

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

                  }

                  processSelection confidencial da função (lista: XMLList, Objid: Corda): vácuo {
                        artigo do var: XML;
                        para cada um (artigo na lista) {
                              se (item.@id! =Objid)
                              {
                                    item.@checked = falso;
                              } mais
                              {
                                    item.@checked = retificam;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (evento) “      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " falso "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {zero} “
                         folderOpenIcon= " {zero} “
                         defaultLeafIcon= " {zero} “
                         dataProvider= " {myData} “
                         openItems= " {myData. .item} “>
            


      



Outras soluções  
 
programming4us programming4us