/** * Simple TLF based Text ItemRenderer for flex DataGroup * After data set and text composed it ivokes invalidateParentSizeAndDisplayList if * if height of text container changed. */ public class TextItemRenderer extends UIComponent implements IItemRenderer {
private var _container:Sprite; private var _controller:ContainerController; private var _textFlow:TextFlow; private var _selectionManager:SelectionManager;
private var dataChanged:Boolean; private var _data:String; public function set data(value:Object):void { if (_data != value) { _data = String(value); dataChanged = true; invalidateProperties(); } }
public function get data():Object { return _data; }
protected override function createChildren():void { _container = new Sprite(); _controller = new ContainerController(_container, NaN, NaN); _selectionManager = new SelectionManager; addChild(_container); }
override protected function commitProperties():void { super.commitProperties(); if (dataChanged) { if (_textFlow != null) { _textFlow.flowComposer.removeAllControllers();