+ if ( pi->GetTypeInfo()->GetKind() == wxT_COLLECTION )
+ {
+ const wxTypeInfo * elementType = dynamic_cast< const wxCollectionTypeInfo* >( pi->GetTypeInfo() )->GetElementType() ;
+ while( prop )
+ {
+ wxASSERT_MSG(prop->GetName() == wxT("element") , wxT("A non empty collection must consist of 'element' nodes")) ;
+ wxXmlNode* elementContent = prop->GetChildren() ;
+ wxASSERT_MSG(elementContent, wxT("An element node cannot be empty")) ;
+ if ( elementType->IsObjectType() )
+ {
+ int valueId = ReadComponent( elementContent , callbacks ) ;
+ if ( callbacks )
+ {
+ if ( valueId != wxInvalidObjectID )
+ {
+ /*
+ callbacks->SetPropertyAsObject( objectID , classInfo , pi , valueId ) ;
+ */
+ if ( elementType->GetKind() == wxT_OBJECT && valueId != wxNullObjectID )
+ callbacks->DestroyObject( valueId , GetObjectClassInfo( valueId ) ) ;
+ }
+ }
+ }
+ else
+ {
+ wxxVariant elementValue = ReadValue( prop , pi->GetAccessor() ) ;
+ /*
+ if ( callbacks )
+ callbacks->SetProperty( objectID, classInfo ,pi , ) ;
+ */
+ }
+ prop = prop->GetNext() ;
+ }
+ }
+ else if ( pi->GetTypeInfo()->IsObjectType() )