 import mx.events.CollectionEvent;
 import mx.events.PropertyChangeEvent;
 import mx.events.PropertyChangeEventKind;
+import flex.graphics.graphicsClasses.GraphicElement;
 import flex.graphics.IAssignableDisplayObjectElement;
 import flex.graphics.IDisplayObjectElement;
 import flex.graphics.IGraphicElement;

                }
            }
        }
    }
    
    override protected function measure():void
    {
        super.measure();
        
        if (_layout)

    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);

        if (_layout)
            _layout.updateDisplayList(unscaledWidth, unscaledHeight);

        // Check whether we manage the elements, or are they managed by an ItemRenderer
        if (!alwaysUseItemRenderer)
        {
            // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
            // Iterate through the graphic elements, clear their graphics and draw them
            var length:int = numItems;
            for (var i:int = 0; i < length; i++)
            {
                var element:GraphicElement = getItemAt(i) as GraphicElement;
                if (element)
                    element.validateDisplayList();
            }
        }

        // TODO EGeorgie: maybe move this to commitProperties, or at least before
        // children validateDisplayList()    
        if (transformChanged)
        {
            transformChanged = false;
