Hello,
I'm testing with the VirtualComboBox, specifically I want to assign one 
itemrenderer or another, depending on the value of a property.
I have tried, without success:


- Add a className when setting the property:



In this case, I define the IItemRenderer inside a known CSS class:

.itemrenderertruncate{

  IItemRenderer: 
ClassReference("org.apache.royale.community.itemRenderers.LabelTruncateItemRenderer");

}



In control, itemRendererTruncateByDefault property:



        private var _itemRendererTruncateByDefault:Boolean=false;

        public function set itemRendererTruncateByDefault(value:Boolean):void

        {

            _itemRendererTruncateByDefault = value;

            // The pseudo-class css itemrenderertruncate has the IItemRenderer 
assigned to it.

            // It adds the css selector but does not recognise the 
IItemRenderer assigned by ClassReference.

            if(value)

                addClass('itemrenderertruncate');

        }



-          Set the as3 class directly (I override loadBeads to set it before 
the IBeadView loads)


        override protected function loadBeads():void
        {
            // We must assign the itemRenderer to the control before loading 
the IBeadView bead.
            // At first it assigns the correct itemRenderer, but then it does 
not recognise it and sets the default itemRenderer, why?
            // (After this instruction, it has been verified that the 
itemRenderer is never set again).
            if(_itemRendererTruncateByDefault)
            {
                itemRenderer = new ClassFactory(LabelTruncateItemRenderer);
                // Test: is ok --> var it:Object = itemRenderer.newInstance();  
it is LabelTruncateItemRenderer
            }
            super.loadBeads();
        }

What am I doing wrong?

Thx
Hiedra

Reply via email to