void ProjectViewModel::GetValue(wxVariant& value, const wxDataViewItem& item, unsigned int column) const { Reflect::DocumentElement* node = static_cast< Reflect::DocumentElement* >( item.GetID() ); if ( node ) { ProjectFile* file = Reflect::ObjectCast<ProjectFile>( node ); if ( file ) { switch ( column ) { case 0: value = file->Path().Get().c_str(); break; case 1: break; } } else { ProjectFolder* folder = Reflect::ObjectCast<ProjectFolder>( node ); if ( folder ) { switch ( column ) { case 0: value = folder->Name().Get(); break; case 1: break; } } else { Project* project = Reflect::ObjectCast<Project>( node ); if ( project ) { switch ( column ) { case 0: value = project->Path().Get().c_str(); break; case 1: break; } } } } } }