Такого плана итемРендерер

Код AS3:
package de.dts.web2print.plugin.ordersoverview.components.documentpanel.itemrenderer
{
import de.dts.isy3suite.core.locale.Localizer;
import de.dts.web2print.plugin.ordersoverview.components.event.OverviewEvent;
import de.dts.web2print.plugin.ordersoverview.locale.W2POrdersOverviewResourceBundle;
import flash.events.MouseEvent;
import mx.containers.VBox;
import mx.controls.Alert;
import mx.controls.Button;
import mx.controls.listClasses.IListItemRenderer;
import mx.core.IDataRenderer;
import mx.core.UIComponent;
import mx.events.FlexEvent;
public class ButtonItemRenderer extends UIComponent implements IDataRenderer, IListItemRenderer
{
[Embed(source="../../../../../../../../images/edit.png")]
private var generatePDFButtonIcon:Class
[Embed(source="../../../../../../../../images/downloadProcess.gif")]
private var downloadPDFButtonIcon:Class
public static var PDF_STATE_AVAILABLE : String = "available";
public static var PDF_STATE_NOT_AVAILABLE : String = "notAvailable";
public static var PDF_STATE_IN_PROGRESS : String = "inProgress";
private var _button:Button;
private var _data:Object;
public function ButtonItemRenderer()
{
super();
}
override protected function createChildren():void
{
super.createChildren();
button = new Button();
button.setActualSize(22, 22);
button.addEventListener(MouseEvent.CLICK, buttonClickHandler);
addChild(button);
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
button.move(width/2 - button.width/2, - button.height/2);
}
[Bindable("dataChange")]
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data = value;
invalidateProperties();
invalidateDisplayList();
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}
override protected function commitProperties():void
{
super.commitProperties();
if(data.pdfState == PDF_STATE_NOT_AVAILABLE)
{
toolTip = doLocalization(W2POrdersOverviewResourceBundle.ORDERED_DOCUMENTS_TIGGER_PDF_GENERATION);
button.visible = true;
button.setStyle("icon", generatePDFButtonIcon);
}
else if (data.pdfState == PDF_STATE_AVAILABLE)
{
toolTip = doLocalization(W2POrdersOverviewResourceBundle.ORDERED_DOCUMENTS_PDF_LINK_LABEL);
button.visible = true;
button.setStyle("icon", downloadPDFButtonIcon);
}
else
{
button.visible = false;
}
}
private function buttonClickHandler(event:MouseEvent):void
{
if(data.pdfState == PDF_STATE_NOT_AVAILABLE)
{
button.visible = false;
data.pdfState = PDF_STATE_IN_PROGRESS;
dispatchEvent(new OverviewEvent(OverviewEvent.TRIGGER_PDF_GENERATION, data));
}
else if (data.pdfState == PDF_STATE_AVAILABLE)
{
dispatchEvent(new OverviewEvent(OverviewEvent.DOWNLOAD_PDF, data));
}
}
public function get button():Button
{
return _button;
}
public function set button(buttonSource:Button):void
{
_button = buttonSource;
}
public function doLocalization(key:Array, parameters:Array = null):String
{
return Localizer.getLocalizedValue(W2POrdersOverviewResourceBundle.RESOURCE_NAME, key, W2POrdersOverviewResourceBundle.RESOURCE_NAME, W2POrdersOverviewResourceBundle.getInstance().pluginConfigurationIdentity, parameters);
}
}
}
Подставляется он в датаГридКолумн.
Когда ресайзим окно с датаГридом и нижния граница окна доходит до строки датаГрида, то при дальнейшем уменьшении высоты датаГрида, то итемРендерер проподает с экрана.
Т.е. если на экране помещается только полстроки из датаГрида, то итемРендерера не видно.
Но при этом, если датаГрид поскролить, то рендерер снова появится.
Что-то не понятно мне куда копать..то ли в рендерер, то ли в датаГрид.