Показать сообщение отдельно
Старый 31.12.2012, 13:04
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 3  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Файл который открывает диалог - находится прямо в эдиторе. Получается что результат открытия файла у меня в эдиторе. В итоге я открываю файл провожу с ним манипуляции всё ок.

Во-первых я лочу эдитор от закрытия если диалог сейчас открыт.
Код AS3:
	private function onItemEditEnd(event:AdvancedDataGridEvent):void
	{
		var data:NodeModel = event.itemRenderer ? event.itemRenderer.data as NodeModel : null;
 
		if (event.currentTarget.itemEditorInstance.wait)
                {
			event.preventDefault();
			if (event.reason == DataGridEventReason.OTHER)// этот ризон при потере фокуса приходит.
			{
				_editorInstance = itemEditorInstance;
				_editorPosition = editedItemPosition;
			}
                }
	}
 
	override public function destroyItemEditor():void
	{
		if (_editorInstance &&  _editorInstance.wait) 
		{
			return;
		}
		else 
		{
			if(itemEditorInstance) super.destroyItemEditor();
			_editorInstance = null;
		}
	}
Потом по получении фокуса гридом обратно - удаляю старый эдитор и добавляю новый с теми же данными.
Код AS3:
private function onFocusIn(event:FocusEvent):void
			{
				if (_editorPosition)
				{
					var pos:Object = CeaUtills.cloneObject(_editorPosition);
					if(_editorInstance) createItemEditor(pos.columnIndex, pos.rowIndex);
				}
			}
Это работает если я умещаюсь в первую страницу прокрутки (с первого по 2-й элемент) а уже на 21-м вылетает какая-то внутрення ошибка грида. так как он запакован во внешний компонент я не вижу что там и как. Говорит что где-то там он нулл получил. А какой нулл я не знаю.

Добавлено через 1 минуту
Это мой первый проект на флексе, я вообще пур-ас3 пишу обычно. Так что не исключено что тут полная шляпа. Буду рад любым комментариям.
репо на битбакете

Добавлено через 5 минут
Эта схема редактирует текущую ячейку нормально. Но при переходе на другую вылетает. При условии что текущая находится вне этих 20-и строк. Ошибка где-то внутри грида в editEnd().
__________________
Кто к нам с чем для чего - тот у нас того от того.