Hi all,
The component below gets to instantiate its chid correctly but it
doesn't show up in the displaylist.
any clues??
package foo.conditionals
{
import mx.containers.HBox;
/**
*
* Does not support changing the condition property at runtime yet
*
* @author abucchi
*
*/
public class ConditionalContainer extends HBox
{
private var _condition:Boolean;
public function get condition():Boolean
{
return _condition;
}
public function set condition( value:Boolean ):void
{
_condition = value;
}
override public function createComponentsFromDescriptors(
recurse:Boolean = true ):void
{
if ( childDescriptors.length == 0 )
return; // no children specified
if ( condition ) // condition met, create first child
{
createComponentFromDescriptor(
childDescriptors[0] , recurse );
}
else if ( childDescriptors.length == 2 ) // not met,
create second
child if specified
{
createComponentFromDescriptor(
childDescriptors[1] , recurse );
}
}
}
}
<mx:Repeater id="rep" dataProvider="{[0,1,2,3,4,5]}">
<conditionals:ConditionalContainer
condition="true"
paddingBottom="0" paddingLeft="0" paddingRight="0"
paddingTop="0"
>
<mx:Label text="first label" creationComplete="trace('first
label created')"/>
<mx:Label text="second label" creationComplete="trace('second
label
created')"/>
</conditionals:ConditionalContainer>
On 5/31/07, Aldo Bucchi <[EMAIL PROTECTED]> wrote:
> ok,
>
> just realized that you can accomplish something similar by using
> navigators... just set creationPolicy="auto" and conditionally set the
> selectedIndex... only it will just work under some particular
> circumstances and is quite hacky.
>
> i need to destroy children when the condition changes, to avoid
> parameter problems... but still. that only leaves me with binding
> issues.
>
> OTOH, the ideal way would be to create a custom component that
> implements IRepeater so that containers don't add it, and then play
> with createChildrenFromDescriptors and such.
>
> i just gave the latter a try and got it kinda working, but it would
> take toooooooooo much time to make it work with bindings and stabilize
> it. i give up.
>
> c'mon adobe guys!
> you can do it ;)
>
> best,
> Aldo
>
> On 5/31/07, Aldo Bucchi <[EMAIL PROTECTED]> wrote:
> > Hi Guys,
> >
> > Has anyone flirted with the idea of creating MXML
> > conditional-structure components that can be used to dynamically
> > generate interfaces??
> >
> > just to be more graphical... something like this
> >
> > <mx:Repeater id="rep2" dataProvider="{rep1.currentItem.elements('*')}">
> >
> > <foo:If condition="[EMAIL PROTECTED]'super'}">
> >
> > <foo:SuperLabel text="[EMAIL PROTECTED]"/>
> >
> > <foo:Else>
> >
> > <mx:Label text="[EMAIL PROTECTED]"/>
> >
> > </foo:Else>
> >
> > </foo:If>
> >
> > </mx:Repeater>
> >
> > it just makes a lot of sense...
> > any ideas????
> >
> > best,
> > Aldo
> >
> >
> > --
> > ::::: Aldo Bucchi :::::
> > mobile +56 9 8429 8300
> >
>
>
> --
> ::::: Aldo Bucchi :::::
> mobile +56 9 8429 8300
>
--
::::: Aldo Bucchi :::::
mobile +56 9 8429 8300