Тема: [Cairngorm] проблема с cairngorm
Показать сообщение отдельно
Старый 12.03.2011, 18:00
chata вне форума Посмотреть профиль Отправить личное сообщение для chata Найти все сообщения от chata
  № 1  
Ответить с цитированием
chata
 
Аватар для chata

Регистрация: Nov 2009
Адрес: Минск, Беларусь
Сообщений: 89
Отправить сообщение для chata с помощью ICQ
По умолчанию проблема с cairngorm

Здраствуйте, помогите пожалуйста понять причину. Используется cairngorm2, так вот в одном из случает добавления почему то в Commands дергается несколько раз, а иногла и один execute, хотя вроде как только один dispatchEvent передаем.

Привожу примеры:
View
Код AS1/AS2:
private function saveObject():void{
				if (this.edit)
				{
					targetValueOb.data = inputName.text;
					targetValueEvent=new TargetValueEvent(TargetValueControl.EDIT_TARGET_VALUE, targetValueOb, ownerTarget);
				}
				else
				{
					targetValueOb.data = inputName.text;
					targetValueOb.targetId = ownerTarget.id;
					targetValueEvent=new TargetValueEvent(TargetValueControl.ADD_TARGET_VALUE, targetValueOb, ownerTarget);
				}
 
				CairngormEventDispatcher.getInstance().dispatchEvent(targetValueEvent);
				close();
			}
Command
Код AS1/AS2:
public class TargetValueCommand  extends SequenceCommand  implements Command, Responder
 
....
 
override public function execute(event:CairngormEvent):void
		{
			var delegate : TargetValueDelegate = new TargetValueDelegate(this);
 
			try
			{
				targetValueEvent = TargetValueEvent(event);
				//nextEvent = targetValueEvent.nextChainedEvent;
			}
			catch(err:Error)
			{
				targetValueEvent=null;
			}
 
			if(targetValueEvent!=null)
			{
				myRequest = event.type;
				switch(event.type)
				{
					case TargetValueControl.LOAD_TARGET_VALUE:
						delegate.loadTargetValue();
						break;
					case TargetValueControl.ADD_TARGET_VALUE:
						delegate.addTargetValue(targetValueEvent.targetValueOb);
						break;
					case TargetValueControl.EDIT_TARGET_VALUE:
						delegate.editTargetValue(targetValueEvent.targetValueOb);
						break;
					case TargetValueControl.REMOVE_TARGET_VALUE:
						delegate.removeTargetValue(targetValueEvent.targetValueOb)
				}
			}
		}
Спасибо.

Добавлено через 44 минуты
может это имеет значение, view в котором можем делать сохранение вызывается из таблицы при двойном клике на поле, так вот замечено что когда первый раз вызываем его то добавляет 1 элемент, когда второй то 2 элемента, когда третий - 3 и тд

Привожу пример создания view:
Код AS1/AS2:
private function targetValueCED(e:Event):void{
				var popUp:TargetValueView = TargetValueView(PopUpManager.createPopUp(this,TargetValueView,true));
				popUp.targetOb = targetDataGrid.selectedItem as TargetVO;
				popUp.x=this.width/2 - popUp.width/2 + 40;
				popUp.y=this.height/2 - popUp.height/2;
			}


Последний раз редактировалось chata; 12.03.2011 в 18:57.