всем доброго времени суток и всех с наступающим
у меня вопрос вот какого плана..
есть DataGrid, заполняемый данными.
заголовки столбцов в нем могут быть самой разной длины, и мне нужно, чтобы:
1. название каждого столбца помещалось в заголовке (без изменения шрифта)
2. если имя столбца очень короткое - чтобы в заголовке столбца не оставалось много свободного места.
иными словами, мне нужно, чтобы ширина каждого столбца менялась в зависимости от содержимого его заголовка..
я понимаю, что нужно имплементировать свой headerRenderer, но, так как ранее с рендерерами дела не имел, пока не получается добиться желаемого эффекта.
допустим, что сам датагрид у меня описан примерно в таком формате:

Код:
<mx:DataGrid headerRenderer="ColumnRenderer" >
<mx:dataProvider>
<mx:ArrayCollection>
<mx:source>
<mx:Object Name="name 1" SecondName="second name 1"/>
</mx:source>
</mx:ArrayCollection>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn headerRenderer="ColumnRenderer" headerText="Name" dataField="Name" />
<mx:DataGridColumn headerRenderer="ColumnRenderer" headerText="Second Name" dataField="PrevClaimID" />
</mx:columns>
</mx:DataGrid>
и, соответственно, я создаю файл ColumnRenderer.mxml:

Код AS3:
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.*;
import mx.controls.listClasses.*;
import mx.controls.Label;
override public function set data(value:Object):void
{
if(value != null)
{
// допустим, длину текста в заголовке я могу получить так:
var myListData:DataGridListData = DataGridListData(listData);
var textLength:int = myListData.label.length;
// чтобы изменить сам текст в заголовке столбца - достаточно сделать так:
text = "bla-bla";
// а вот как установить получать ширину заголовка в пикселях, и как установить ширину столбца - не понимаю
// ....
}
}
</mx:Script>
</mx:Label>
если не сложно - подскажите, как реализовать данную фичу..
нужно ли вообще переопределять функцию set data или же надо идти каким-то иным путем?
Заранее спасибо и с Новым Годом.)