void MSPropertyForm::render( std::ostream& o, const portfolio::Folium& folium ) { using adportable::utf; o << "<em>" << folium.fullpath() << "</em>"; o << "<table border=\"1\" cellpadding=\"4\">"; o << "<caption>File information</caption>"; o << "<tr>"; for ( auto att: folium.attributes() ) o << "<th>" << utf::to_utf8( att.first ) << "</th>"; o << "</tr> <tr>"; for ( auto att: folium.attributes() ) o << "<td>" << utf::to_utf8( att.second ) << "</th>"; o << "</tr>"; o << "</table>"; if ( folium.dataClass() == adcontrols::MassSpectrum::dataClass() ) { try { const adcontrols::MassSpectrumPtr ptr = boost::any_cast< adcontrols::MassSpectrumPtr >( folium.data() ); if ( ptr ) render( o, *ptr ); } catch( std::exception() ) { } } }
void SpectrogramWnd::handleSelectionChanged( Dataprocessor*, portfolio::Folium& folium ) { portfolio::Folder folder = folium.parentFolder(); if ( folder && folder.name() == L"Spectrograms" ) { adcontrols::MassSpectraPtr ptr; if ( portfolio::Folium::get< adcontrols::MassSpectraPtr >( ptr, folium ) ) { foliumId_ = folium.id(); fullpath_ = folium.fullpath(); data_ = ptr; plot_->setData( new detail::SpectrogramData( ptr ) ); } portfolio::Folio atts = folium.attachments(); portfolio::Folio::iterator it = portfolio::Folium::find< adcontrols::SpectrogramClustersPtr >( atts.begin(), atts.end() ); if ( it != atts.end() ) { adcontrols::SpectrogramClustersPtr clusters = boost::any_cast< adcontrols::SpectrogramClustersPtr >( *it ); plot_->setData( clusters.get() ); } } }