Pytanie : Przewód Drzewo z Radio Guzik

I mieć XML dane, i I chcieć że dane w Przewód Drzewo kontrola z radiowy guzik. Jak móc my łączyć przewód drzewo i guzik dla leafs.

Let zakładać że my mieć the następujący Podaniowy na miejscu:


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


































 
 
      paddingTop= " 5" paddingLeft= " 5" paddingRight= " 5" paddingBottom= " 5 " >

id= " myTree"
showRoot= " fałszywy "
width= " 100%"
height= " 100%"
labelField= " @label"
folderClosedIcon=" {null} "
folderOpenIcon=" {null}"
defaultLeafIcon= " {null} "
dataProvider=" {myData}"
openItems= " {myData. .item} ">

       
   

             
   

How móc my the następujący:
•Zaludniać the drzewo opierać się na sprawdzać wartość (przedstawienie wybierać ocena jeżeli ono być prawdziwy)
•Ustalać the wybrany (sprawdzać) guzek z swój rodzic dla dalszy processing.
•The radiowy guzik musieć na radiowy guzek pojedynczo
(guzek I znaczyć guzek że My musieć radiowy guzik grupa dla radiowy rodzic node.
As przykład
List A dziecko mieć radiowy guzik i the wydarzenie na ten radiowy guzik musieć Lista B radiowy guzik).


Odpowiedź : Przewód Drzewo z Radio Guzik

The następujący być mój rozwiązanie:
1- Tworzyć zwyczaj TreeItemRenderer podążać:

RadioButtonTreeItemRenderer.as
_________________________________________________
pakunek
{
      importowy flash.events. Wydarzenie;
      
      importowy mx.controls.RadioButton;
      importowy mx.controls.RadioButtonGroup;
      importowy mx.controls.treeClasses.*;

      społeczeństwo klasowy RadioButtonTreeItemRenderer przedłużyć TreeItemRenderer
      {
            społeczeństwo var RadioBtn: RadioButton;
            społeczeństwo var RadioBtnGR: RadioButtonGroup
        jawny var itemXml: XML;

            jawny funkcja RadioButtonTreeItemRenderer ()
            {
                  super ();
                  mouseEnabled = fałszywy;
            }


            override jawny funkcja ustalony dane (wartość: Przedmiot): pustka {
            jeżeli (wartość! = null) {
                super.data = wartość;
               
                this.itemXml = XML (wartość);
                jeżeli (this.itemXml.@checked == prawdziwy) {
                    this.RadioBtn.selected = true;
                } inny {
                    this.RadioBtn.selected = fałszywy;
                }
            }
        }
        override ochraniać funkcja createChildren (): pustka {
            super.createChildren ();
            RadioBtn = nowy RadioButton ();
            RadioBtnGR = nowy RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        override ochraniać funkcja updateDisplayList (unscaledWidth: Liczba, unscaledHeight: Liczba): pustka {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            jeżeli (super.data) {
                var tld: TreeListData = TreeListData (super.listData);

                jeżeli (tld.hasChildren) {
                    this.RadioBtn.visible = fałszywy;
                } inny {
                    this.RadioBtn.visible = true;
                }
                jeżeli (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- podaniowy kod być:

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

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              importowy mx.collections.ArrayCollection;
                  importowy mx.rpc.events.ResultEvent;
                  importowy mx.controls. Ostrzeżenie;


                  intymny funkcja TreeClickHandler (wydarzenie: Wydarzenie): pustka
                  {
                        var selectedXmlList: XMLList;
                        var itemObject: Przedmiot = event.currentTarget.selectedItem;

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

                  }

                  intymny funkcja processSelection (lista: XMLList, Objid: Sznurek): pustka {
                        var rzecz: XML;
                        dla lista (rzecz w lista) {
                              jeżeli (item.@id! =Objid)
                              {
                                    item.@checked = fałszywy;
                              } inny
                              {
                                    item.@checked = true;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (wydarzenie) "      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " fałszywy "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {null} "
                         folderOpenIcon= " {null} "
                         defaultLeafIcon= " {null} "
                         dataProvider= " {myData} "
                         openItems= " {myData. .item} ">
            


      



Inne rozwiązania  
 
programming4us programming4us