Setting View States of Children from Parent

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Setting View States of Children from Parent

Bruce Denham
I have a parent component with various view states defined. Each child
component of the parent defines the same set of view states. So from
the child components, I want to bind to the currentState of the
parent, so that when something changes the parent state, the view
states of the children will automatically change accordingly. How
might I do this?

Bruce






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[hidden email]
    mailto:[hidden email]

<*> To unsubscribe from this group, send an email to:
    [hidden email]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply | Threaded
Open this post in threaded view
|

Re: Setting View States of Children from Parent

Bruce Denham
Here's here's one way I might do this:

public function setViewState(state:String):void
{
        //Sets parent's view state
        this.currentState = state;
       
        // The parent is responsible for controlling its child
        // component view states. All components must implement
        // IView's setViewState() and all components must define
        // view states that match their parents' view states.
        // That way, all child components will be updated based
        // on the parent's view state.

        // I only go down to grandchildren because that's typically
        // as deep as I'll make the child component heirarchy.
        // But...you never know. So... TODO: Make recursive.
        var children:Array=this.getChildren();
        for (var i:String in children)
        {
                if (children[i].hasOwnProperty("setViewState"))
                        children[i].setViewState(this.currentState);
                else {
                        Alert.show(children[i].toString());
                        var grandchildren:Array = Container(children
[i]).getChildren();
                        for (var j:String in grandchildren)
                        {
                                if (grandchildren[j].hasOwnProperty
("setViewState"))
                                        grandchildren[j].setViewState
(this.currentState);
                        }
                }
        }
}

It needs to be recursive, but maybe there's a better way?

Bruce

--- In [hidden email], "Bruce Denham" <bdenham@...>
wrote:
>
> I have a parent component with various view states defined. Each
child
> component of the parent defines the same set of view states. So
from
> the child components, I want to bind to the currentState of the
> parent, so that when something changes the parent state, the view
> states of the children will automatically change accordingly. How
> might I do this?
>
> Bruce
>






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[hidden email]
    mailto:[hidden email]

<*> To unsubscribe from this group, send an email to:
    [hidden email]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/