Vraag : Flex Boom met RadioKnoop

Ik heb een Xml- gegeven, en ik wil aantonen dat de gegevens in Flex Boom met radioknoop controleren. Hoe wij kunnen flex boom en knoop voor leafs.

veronderstel dat wij op zijn plaats de volgende Toepassing hebben:


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




























paddingTop= " 5“ paddingLeft= " van Controle“ width= " 100%“ 5“ paddingRight= " 5“ paddingBottom= " 5 " >

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






How kan wij het volgende bereiken:
•Bevolk de boom op gecontroleerde waarde (toon geselecteerd teken wordt gebaseerd als het) waar is
•Bepaal de geselecteerde (gecontroleerde) knoop met zijn ouder voor verdere processing.
•De radioknoop zou aan elke knoop individueel
(wat ik door dit bedoel dat wij radioknoopgroep voor elke ouder node.
As de kinderen van voorbeeld
List A radioknoop heeft en de gebeurtenis over die radioknoop de geen radioknoop van de Lijst zou moeten beïnvloeden B) moeten werken.


Antwoord : Flex Boom met RadioKnoop

Het volgende is mijn oplossing:
1- Cre�ër als volgt een douane TreeItemRenderer:

RadioButtonTreeItemRenderer.as
_________________________________________________
pakket
{
      de invoer flash.events. Gebeurtenis;
      
      de invoer mx.controls.RadioButton;
      de invoer mx.controls.RadioButtonGroup;
      de invoer mx.controls.treeClasses.*;

      de openbare klasse RadioButtonTreeItemRenderer breidt TreeItemRenderer uit
      {
            openbare var RadioBtn: RadioButton;
            openbare var RadioBtnGR: RadioButtonGroup
        openbare var itemXml: XML;

            overheidsfunctie RadioButtonTreeItemRenderer ()
            {
                  super ();
                  mouseEnabled = vals;
            }


            treed openbare functie vastgestelde gegevens met voeten (waarde: Voorwerp): leegte {
            als (waarde! = verklaar) nietig {
                super.data = waarde;
               
                this.itemXml = XML (waarde);
                als (ware this.itemXml.@checked ==) {
                    this.RadioBtn.selected = waar;
                } anders {
                    this.RadioBtn.selected = vals;
                }
            }
        }
        createChildren de opheffing beschermde functie (): leegte {
            super.createChildren ();
            RadioBtn = nieuwe RadioButton ();
            RadioBtnGR = nieuwe RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        opheffing beschermde functieupdateDisplayList (unscaledWidth: Aantal, unscaledHeight: Aantal): leegte {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            als (super.data) {
                var tld: TreeListData = TreeListData (super.listData);

                als (tld.hasChildren) {
                    this.RadioBtn.visible = vals;
                } anders {
                    this.RadioBtn.visible = waar;
                }
                als (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- de toepassings code is:

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

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              de invoer mx.collections.ArrayCollection;
                  de invoer mx.rpc.events.ResultEvent;
                  de invoer mx.controls. Alarm;


                  privé functie TreeClickHandler (gebeurtenis: Gebeurtenis): leegte
                  {
                        var selectedXmlList: XMLList;
                        var itemObject: Voorwerp = event.currentTarget.selectedItem;

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

                  }

                  privé functieprocessSelection (lijst: XMLList, Objid: Koord): leegte {
                        var punt: XML;
                        voor elk (punt in lijst) {
                              als (item.@id! =Objid)
                              {
                                    item.@checked = vals;
                              } anders
                              {
                                    item.@checked = waar;
                              }
                        }
                  }

            ]] >
      



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


      



Andere oplossingen  
 
programming4us programming4us