Frage : Flexbaum mit Radioknopf

Ich habe XML Daten, und ich möchte dass Daten in der Flexbaumsteuerung mit Radioknopf zeigen. Wie können, kombinieren wir Flexbaum und Knopf für leafs.

Let wir nehmen an, dass wir die folgende Anwendung an der richtigen Stelle haben:


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


































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

id= " myTree“
showRoot= " falsches "
width= " 100%“
height= " 100%“
labelField= " @label“
folderClosedIcon=“ {Null} „
folderOpenIcon=“ {Null}“
defaultLeafIcon= " {Null} „
dataProvider=“ {myData}“
openItems= " {myData. .item} „>

       
   
             
   

How kann wir das folgende erzielen:
•Den Baum bevölkern, der auf überprüftem Wert basiert (Erscheinen vorgewählte Markierung, wenn es zutreffend ist),
•Den vorgewählten (überprüften) Nullpunkt mit seinem Elternteil für weiteres processing.
feststellen•Der Radioknopf sollte an jedem Nullpunkt
(was einzeln arbeiten ich durch dieses bedeute, dass wir Radioknopfgruppe für jedes Elternteil haben sollten, node.
als Beispiel
List A, das Kinder Radioknopf hat und das Ereignis auf diesem Radioknopf Radioknopf der Liste B nicht beeinflussen sollte).


Antwort : Flexbaum mit Radioknopf

Das folgende ist meine Lösung:
1- Ein kundenspezifisches TreeItemRenderer verursachen, wie folgt:

RadioButtonTreeItemRenderer.as
_________________________________________________
Paket
{
      Import flash.events. Ereignis;
      
      Import mx.controls.RadioButton;
      Import mx.controls.RadioButtonGroup;
      Import mx.controls.treeClasses.*;

      allgemeine Kategorie RadioButtonTreeItemRenderer verlängert TreeItemRenderer
      {
            Öffentlichkeit var RadioBtn: RadioButton;
            Öffentlichkeit var RadioBtnGR: RadioButtonGroup
        allgemeines var itemXml: XML;

            allgemeine Funktion RadioButtonTreeItemRenderer ()
            {
                  Super ();
                  mouseEnabled = falsch;
            }


            gesetzte Daten der allgemeinen Funktion der Übersteuerung (Wert: Gegenstand): Lücke {
            wenn (Wert! = Null) {
                super.data = Wert;
               
                this.itemXml = XML (Wert);
                wenn (this.itemXml.@checked == zutreffend) {
                    this.RadioBtn.selected = ausrichten en;
                } sonst {
                    this.RadioBtn.selected = falsch;
                }
            }
        }
        Übersteuerung geschützte Funktion createChildren (): Lücke {
            super.createChildren ();
            RadioBtn = neues RadioButton ();
            RadioBtnGR = neues RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        Übersteuerung geschütztes Funktion updateDisplayList (unscaledWidth: Zahl, unscaledHeight: Zahl): Lücke {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            wenn (super.data) {
                var tld: TreeListData = TreeListData (super.listData);

                wenn (tld.hasChildren) {
                    this.RadioBtn.visible = falsch;
                } sonst {
                    this.RadioBtn.visible = ausrichten en;
                }
                wenn (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- Anwendungscode ist:

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

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              Import mx.collections.ArrayCollection;
                  Import mx.rpc.events.ResultEvent;
                  Import mx.controls. Alarm;


                  private Funktion TreeClickHandler (Ereignis: Ereignis): Lücke
                  {
                        var selectedXmlList: XMLList;
                        var itemObject: Gegenstand = event.currentTarget.selectedItem;

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

                  }

                  privates Funktion processSelection (Liste: XMLList, Objid: Schnur): Lücke {
                        var-Einzelteil: XML;
                        für jedes (Einzelteil in der Liste) {
                              wenn (item.@id! =Objid)
                              {
                                    item.@checked = falsch;
                              } sonst
                              {
                                    item.@checked = ausrichten en;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (Ereignis) „      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " falsch "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {Null} „
                         folderOpenIcon= " {Null} „
                         defaultLeafIcon= " {Null} „
                         dataProvider= " {myData} „
                         openItems= " {myData. .item} „>
            


      



Weitere Lösungen  
 
programming4us programming4us