In that case I would create a component that had two states, one radio and
one button, and repeat that, passing in the entire currentItem in a setter
function, and set the state based on the passed in data.

 

On the filter, are you asking for an e4x expression?

 

One tip is that in an e4x expression, you can use a function in place of
in-line expressions, pass a ref to the current node into the function, do
whatever logic and return a Boolean if the node should be included.

 

Are all the ids 1 or 2 chars only?

 

Tracy Spratt,

Lariat Services, development services available

  _____  

From: [email protected] [mailto:[email protected]] On
Behalf Of fumeng5
Sent: Saturday, May 02, 2009 11:58 AM
To: [email protected]
Subject: [flexcoders] Re: Sorting VBox elements based on an XML ID

 






I've got it almost working now. However, I'm trying to write a Filter
function. This function will compare an ID and return a subset of IDs.

For example, an ID of 1 will return IDs with 11, 12, 13; an ID of 2 will
return IDs with 21, 22, 23, etc...

How do I compare IDs as strings to return what I want? Any tip in the right
direction is greatly appreciated. 

--- In flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com,
"fumeng5" <fume...@...> wrote:
>
> Hmmm...I didn't know about the Repeater component, that's quite useful.
However, I should have explained that I'm not working with all the same
components. The XML is more complex than I posted. 
> 
> Here's what it really looks like:
> 
> <Class> 
> <Class_ID>1</Class_ID>
> <Class_Name>First Class</Class_Name>
> <Class_Amount></Class_Amount>
> </Class>
> 
> <Class> 
> <Class_ID>2</Class_ID>
> <Class_Name>Second Class</Class_Name>
> <Class_Amount>1.31</Class_Amount>
> </Class>
> 
> <Class> 
> <Class_ID>11</Class_ID>
> <Class_Name>Subclass of first class</Class_Name>
> </Class>
> 
> So my conditional for building the UI goes like this; if Class_Amount is
empty, this element has a subclass, i.e. 
> 
> for (var i:int=0; i<classData.length; i++){
> 
> if(classDataNode.Class_Amount == ''){
> var myButton:Button = new Button();
> myButton.label = classData[i].Class_Name;
> addChild( myButton );
> }else{
> var myRadioButton:RadioButton = new RadioButton();
> myRadioButton.label = classData[i].Class_Name;
> addChild( myRadioButton );
> }
> }
> 
> I guess that with this scenario I'm not able to use the Repeater compnent
and will be forced to create a custom sorting of VBox child elements. 
> 
> Is that right? 
> 
> --- In flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com,
"Tracy Spratt" <tracy@> wrote:
> >
> > Use Repeater, and then just sort the dataProvider.
> > 
> > 
> > 
> > Tracy Spratt,
> > 
> > Lariat Services, development services available
> > 
> > _____ 
> > 
> > From: flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com
[mailto:flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com]
On
> > Behalf Of fumeng5
> > Sent: Friday, May 01, 2009 3:15 PM
> > To: flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com
> > Subject: [flexcoders] Sorting VBox elements based on an XML ID
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Hi,
> > 
> > I've got something that I'm trying to troubleshoot and I can't figure it
> > out. I have an XML file full of elements, i.e.
> > 
> > <Class> 
> > <Class_ID>1</Class_ID>
> > <Class_Name>First Class</Class_Name>
> > </Class>
> > 
> > <Class> 
> > <Class_ID>2</Class_ID>
> > <Class_Name>Second Class</Class_Name>
> > </Class>
> > 
> > <Class> 
> > <Class_ID>11</Class_ID>
> > <Class_Name>Subclass of first class</Class_Name>
> > </Class>
> > 
> > <Class> 
> > <Class_ID>21</Class_ID>
> > <Class_Name>Subclass of second class</Class_Name>
> > </Class>
> > 
> > ...
> > 
> > Some classes have subclasses, i.e. Class ID 1 has a subclass of Class ID
11.
> > And Class ID 2 has a subclass of Class ID 21. 
> > 
> > My XML parsing class creates UI elements based on the XML and adds them
to a
> > VBox, i.e. 
> > 
> > private var classXML:XML;
> > private var classData:XMLList;
> > 
> > for (var i:int=0; i<classData.length; i++){
> > 
> > var myButton:Button = new Button();
> > myButton.label = classData[i].Class_Name;
> > 
> > addChild( myButton );
> > }
> > 
> > When the XML first loads, the elements will be added to the VBox in the
way
> > they're defined in the XML. 
> > 
> > However, I have to add the functionality that if a class is clicked it
goes
> > to the top of the VBox and all its subclasses are listed right under it
i.e.
> > Class ID 1 is clicked, it goes to the top with Class ID 11 right under
it. 
> > 
> > This is what I don't know how to do. What is the best way to resort
children
> > in a VBox based on ID? 
> > 
> > Any tips are very much appreciated. 
> > 
> > Thank you.
> >
>



Reply via email to