Показать сообщение отдельно
Старый 04.03.2010, 01:50
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 65  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
А также все компоненты работают не с ListCollectionView, а с ICollectionView, конечно перепись много это не изменит, но всяческий мусор и мильон проверок на дурака можно убить.
Это каие-то абстрактные компоненты какого-то абстрактного флекса На самом деле все банально:
Код AS3:
super.dataProvider = wrappedCollection = (_dataDescriptor is ITreeDataDescriptor2) ?
ITreeDataDescriptor2(_dataDescriptor).getHierarchicalCollectionAdaptor(
  tmpCollection != null ? tmpCollection : _rootModel,
  itemToUID,
  _openItems) :
new HierarchicalCollectionView(
  tmpCollection != null ? tmpCollection : _rootModel,
_dataDescriptor,
  itemToUID,
  _openItems);
Эта красотиЩа в mx.controls.Tree например, а имплементить ITreeDataDescriptor2 - просто не реально потому что он не использует иерахрхические данные, он нужен только для того, чтобы представить иерархическую структуру в виде одноуровневой. Но на этом плач Ярославны не заканчивается... в ListBase есть одно приятное место, которое сейчас влом искать, где делается примерно следующее:
Код AS3:
var collection:ICollectionView = ICollectionView(whoKnowsWhat);
for (i; ...; ...) collection[i] = somethingElse;
После чего автора, конечно хочется, потому что дико бесит Но а пока - приходится от прокси наследоваться...
__________________
Hell is the possibility of sanity