Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.06.2009, 17:47
BregoXX вне форума Посмотреть профиль Отправить личное сообщение для BregoXX Найти все сообщения от BregoXX
  № 1  
Ответить с цитированием
BregoXX

Регистрация: May 2009
Сообщений: 40
По умолчанию Странное поведение itemRenderer`а

Такого плана итемРендерер
Код 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);
        }
	}
}
Подставляется он в датаГридКолумн.
Когда ресайзим окно с датаГридом и нижния граница окна доходит до строки датаГрида, то при дальнейшем уменьшении высоты датаГрида, то итемРендерер проподает с экрана.
Т.е. если на экране помещается только полстроки из датаГрида, то итемРендерера не видно.
Но при этом, если датаГрид поскролить, то рендерер снова появится.
Что-то не понятно мне куда копать..то ли в рендерер, то ли в датаГрид.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.