![]() |
![]() |
#include <Fireworks/Core/interface/FWCollectionSummaryTableManager.h>
Public Member Functions | |
virtual void | buttonReleasedInRowHeader (Int_t row, Event_t *event, Int_t relX, Int_t relY) |
virtual FWTableCellRendererBase * | cellRenderer (int iSortedRowNumber, int iCol) const |
FWCollectionSummaryTableManager (FWEventItem *iCollection, const TGGC *iContext, const TGGC *iHighlightContext, FWCollectionSummaryWidget *) | |
virtual std::vector< std::string > | getTitles () const |
returns the title names for each column | |
virtual bool | hasRowHeaders () const |
Returns 'true' if this table has row headers. Defaults return value is false. | |
virtual int | numberOfColumns () const |
Number of columns in the table. | |
virtual int | numberOfRows () const |
Number of rows in the table. | |
virtual FWTableCellRendererBase * | rowHeader (int iSortedRowNumber) const |
Returns the renderer for the row header for the sorted row number iSortedRowNumber. | |
virtual int | unsortedRowNumber (int iSortedRowNumber) const |
when passed the index to the sorted order of the rows it returns the original row number from the underlying data | |
virtual | ~FWCollectionSummaryTableManager () |
Protected Member Functions | |
virtual void | implSort (int iCol, bool iSortOrder) |
Called by 'sort' method to actually handle the sorting of the rows. Arguments are the same as 'sort'. | |
Private Member Functions | |
void | dataChanged () |
Classes which inherit from FWTableManagerBase must call this when their underlying data changes. | |
FWCollectionSummaryTableManager (const FWCollectionSummaryTableManager &) | |
const FWCollectionSummaryTableManager & | operator= (const FWCollectionSummaryTableManager &) |
Private Attributes | |
FWTextTableCellRenderer | m_bodyRenderer |
FWEventItem * | m_collection |
FWCollectionSummaryModelCellRenderer | m_renderer |
std::vector< int > | m_sortedToUnsortedIndicies |
std::vector< boost::shared_ptr < FWItemValueGetter > > | m_valueGetters |
FWCollectionSummaryWidget * | m_widget |
Description: <one line="" class="" summary>="">
Usage: <usage>
Definition at line 36 of file FWCollectionSummaryTableManager.h.
FWCollectionSummaryTableManager::FWCollectionSummaryTableManager | ( | FWEventItem * | iCollection, |
const TGGC * | iContext, | ||
const TGGC * | iHighlightContext, | ||
FWCollectionSummaryWidget * | iWidget | ||
) |
Definition at line 36 of file FWCollectionSummaryTableManager.cc.
References FWEventItem::changed_, FWTableManagerBase::dataChanged(), dataChanged(), eta(), FWEventItem::itemChanged_, m_collection, m_valueGetters, FWEventItem::modelType(), phi, pos, and FWEventItem::purpose().
: m_collection(iItem), m_renderer(iContext,iHighlightContext), m_bodyRenderer(iContext, iHighlightContext, FWTextTableCellRenderer::kJustifyRight), m_widget(iWidget) { m_collection->changed_.connect(boost::bind(&FWTableManagerBase::dataChanged,this)); m_collection->itemChanged_.connect(boost::bind(&FWCollectionSummaryTableManager::dataChanged,this)); //try to find the default columns std::vector<std::pair<std::string,std::string> > s_names; ROOT::Reflex::Type type = ROOT::Reflex::Type::ByTypeInfo(*(m_collection->modelType()->GetTypeInfo())); if ( type.Name() == "CaloTower" ){ if ( m_collection->purpose() == "ECal" ){ s_names.push_back(std::pair<std::string,std::string>("emEt","GeV")); boost::shared_ptr<FWItemValueGetter> trans( new FWItemValueGetter(type,s_names)); if(trans->isValid()) m_valueGetters.push_back(trans); } else if ( m_collection->purpose() == "HCal" ){ s_names.push_back(std::pair<std::string,std::string>("hadEt","GeV")); boost::shared_ptr<FWItemValueGetter> hadEt( new FWItemValueGetter(type,s_names)); if(hadEt->isValid()) m_valueGetters.push_back(hadEt); } else if (m_collection->purpose() == "HCal Outer"){ s_names.push_back(std::pair<std::string,std::string>("outerEt","GeV")); boost::shared_ptr<FWItemValueGetter> outerEt( new FWItemValueGetter(type,s_names)); if(outerEt->isValid()) m_valueGetters.push_back(outerEt); } } else if (strstr(m_collection->purpose().c_str(), "Beam Spot") ){ s_names.push_back(std::pair<std::string,std::string>("x0","cm")); { boost::shared_ptr<FWItemValueGetter> pos( new FWItemValueGetter(type,s_names)); if(pos->isValid()) m_valueGetters.push_back(pos); } { s_names.begin()->first = "y0"; boost::shared_ptr<FWItemValueGetter> pos( new FWItemValueGetter(type,s_names)); if(pos->isValid()) m_valueGetters.push_back(pos); } { s_names.begin()->first = "z0"; boost::shared_ptr<FWItemValueGetter> pos( new FWItemValueGetter(type,s_names)); if(pos->isValid()) m_valueGetters.push_back(pos); } } else { s_names.push_back(std::pair<std::string,std::string>("pt","GeV")); s_names.push_back(std::pair<std::string,std::string>("et","GeV")); s_names.push_back(std::pair<std::string,std::string>("energy","GeV")); boost::shared_ptr<FWItemValueGetter> trans( new FWItemValueGetter(type,s_names)); if(trans->isValid()) m_valueGetters.push_back(trans); } s_names.clear(); s_names.push_back(std::pair<std::string,std::string>("eta","")); boost::shared_ptr<FWItemValueGetter> eta( new FWItemValueGetter(type,s_names)); if(eta->isValid()) { s_names.clear(); s_names.push_back(std::pair<std::string,std::string>("phi","")); boost::shared_ptr<FWItemValueGetter> phi( new FWItemValueGetter(type,s_names)); if(phi->isValid()) { m_valueGetters.push_back(eta); m_valueGetters.push_back(phi); } } dataChanged(); }
FWCollectionSummaryTableManager::~FWCollectionSummaryTableManager | ( | ) | [virtual] |
Definition at line 116 of file FWCollectionSummaryTableManager.cc.
{ }
FWCollectionSummaryTableManager::FWCollectionSummaryTableManager | ( | const FWCollectionSummaryTableManager & | ) | [private] |
void FWCollectionSummaryTableManager::buttonReleasedInRowHeader | ( | Int_t | row, |
Event_t * | event, | ||
Int_t | relX, | ||
Int_t | relY | ||
) | [virtual] |
Reimplemented from FWTableManagerBase.
Definition at line 168 of file FWCollectionSummaryTableManager.cc.
References FWCollectionSummaryModelCellRenderer::clickHit(), FWEventItem::ModelInfo::displayProperties(), FWDisplayProperties::isVisible(), FWCollectionSummaryWidget::itemColorClicked(), FWCollectionSummaryModelCellRenderer::kHitCheck, FWCollectionSummaryModelCellRenderer::kHitColor, FWCollectionSummaryModelCellRenderer::kMiss, m_collection, m_renderer, m_widget, FWEventItem::modelInfo(), FWEventItem::setDisplayProperties(), FWDisplayProperties::setIsVisible(), and unsortedRowNumber().
{ Int_t realRow = unsortedRowNumber(row); int hit = m_renderer.clickHit(relX,relY); if(hit == FWCollectionSummaryModelCellRenderer::kMiss) { return; } if(hit == FWCollectionSummaryModelCellRenderer::kHitColor) { m_widget->itemColorClicked(realRow,event->fXRoot, event->fYRoot+12-relY); return; } FWEventItem::ModelInfo mi = m_collection->modelInfo(realRow); FWDisplayProperties dp = mi.displayProperties(); if(hit == FWCollectionSummaryModelCellRenderer::kHitCheck) { dp.setIsVisible(!dp.isVisible()); } m_collection->setDisplayProperties(realRow,dp); }
FWTableCellRendererBase * FWCollectionSummaryTableManager::cellRenderer | ( | int | iSortedRowNumber, |
int | iCol | ||
) | const [virtual] |
Returns the particular renderer used to handle the requested cell. Arguments: iSortedRowNumber: the row number from the present sort (i.e. the cell number of the view) iCol: the column number of the cell. The returned value must be used immediately and not held onto since the same Renderer can be used for subsequent calls
Implements FWTableManagerBase.
Definition at line 220 of file FWCollectionSummaryTableManager.cc.
References getHLTprescales::index, m_bodyRenderer, m_collection, m_sortedToUnsortedIndicies, m_valueGetters, FWEventItem::modelData(), FWEventItem::modelInfo(), asciidump::s, FWTextTableCellRenderer::setData(), FWEventItem::size(), and v.
{ if(iCol >= static_cast<int>(m_valueGetters.size())) { return 0; } if(iSortedRowNumber >= static_cast<int>(m_collection->size())) { m_bodyRenderer.setData("",false); return &m_bodyRenderer; } int index = m_sortedToUnsortedIndicies[iSortedRowNumber]; std::stringstream s; s.setf(std::ios_base::fixed,std::ios_base::floatfield); s.precision(1); double v = m_valueGetters[iCol]->valueFor(m_collection->modelData(index)); s <<v; m_bodyRenderer.setData(s.str(), m_collection->modelInfo(index).isSelected()); return &m_bodyRenderer; }
void FWCollectionSummaryTableManager::dataChanged | ( | void | ) | [private] |
Classes which inherit from FWTableManagerBase must call this when their underlying data changes.
Reimplemented from FWTableManagerBase.
Definition at line 259 of file FWCollectionSummaryTableManager.cc.
References i, m_collection, m_sortedToUnsortedIndicies, and FWEventItem::size().
Referenced by FWCollectionSummaryTableManager().
{ m_sortedToUnsortedIndicies.clear(); m_sortedToUnsortedIndicies.reserve(m_collection->size()); for(int i=0; i< static_cast<int>(m_collection->size());++i) { m_sortedToUnsortedIndicies.push_back(i); } FWTableManagerBase::dataChanged(); }
std::vector< std::string > FWCollectionSummaryTableManager::getTitles | ( | ) | const [virtual] |
returns the title names for each column
Implements FWTableManagerBase.
Definition at line 202 of file FWCollectionSummaryTableManager.cc.
References m_valueGetters.
{ std::vector<std::string> titles; titles.reserve(m_valueGetters.size()); for(std::vector<boost::shared_ptr<FWItemValueGetter> >::const_iterator it = m_valueGetters.begin(), itEnd=m_valueGetters.end(); it != itEnd; ++it) { titles.push_back((*it)->valueName()); } return titles; }
bool FWCollectionSummaryTableManager::hasRowHeaders | ( | ) | const [virtual] |
Returns 'true' if this table has row headers. Defaults return value is false.
Reimplemented from FWTableManagerBase.
Definition at line 241 of file FWCollectionSummaryTableManager.cc.
{ return true; }
void FWCollectionSummaryTableManager::implSort | ( | int | iCol, |
bool | iSortOrder | ||
) | [protected, virtual] |
Called by 'sort' method to actually handle the sorting of the rows. Arguments are the same as 'sort'.
Implements FWTableManagerBase.
Definition at line 156 of file FWCollectionSummaryTableManager.cc.
References m_collection, m_sortedToUnsortedIndicies, m_valueGetters, and asciidump::s.
{ if(iSortOrder) { std::multimap<double,int, std::greater<double> > s; doSort(*m_collection, *(m_valueGetters[iCol]), s, m_sortedToUnsortedIndicies); } else { std::multimap<double,int, std::less<double> > s; doSort(*m_collection, *(m_valueGetters[iCol]), s, m_sortedToUnsortedIndicies); } }
int FWCollectionSummaryTableManager::numberOfColumns | ( | ) | const [virtual] |
Number of columns in the table.
Implements FWTableManagerBase.
Definition at line 197 of file FWCollectionSummaryTableManager.cc.
References m_valueGetters.
{ return m_valueGetters.size(); }
int FWCollectionSummaryTableManager::numberOfRows | ( | ) | const [virtual] |
Number of rows in the table.
Implements FWTableManagerBase.
Definition at line 191 of file FWCollectionSummaryTableManager.cc.
References m_collection, and FWEventItem::size().
{ return m_collection->size(); }
const FWCollectionSummaryTableManager& FWCollectionSummaryTableManager::operator= | ( | const FWCollectionSummaryTableManager & | ) | [private] |
FWTableCellRendererBase * FWCollectionSummaryTableManager::rowHeader | ( | int | iSortedRowNumber | ) | const [virtual] |
Returns the renderer for the row header for the sorted row number iSortedRowNumber.
Reimplemented from FWTableManagerBase.
Definition at line 247 of file FWCollectionSummaryTableManager.cc.
References getHLTprescales::index, m_collection, m_renderer, m_sortedToUnsortedIndicies, FWCollectionSummaryModelCellRenderer::setData(), and FWEventItem::size().
{ if(iSortedRowNumber >= static_cast<int>(m_collection->size())) { return 0; } int index = m_sortedToUnsortedIndicies[iSortedRowNumber]; m_renderer.setData(m_collection, index); return &m_renderer; }
int FWCollectionSummaryTableManager::unsortedRowNumber | ( | int | iSortedRowNumber | ) | const [virtual] |
when passed the index to the sorted order of the rows it returns the original row number from the underlying data
Implements FWTableManagerBase.
Definition at line 214 of file FWCollectionSummaryTableManager.cc.
References m_sortedToUnsortedIndicies.
Referenced by buttonReleasedInRowHeader().
{ return m_sortedToUnsortedIndicies[iSortedRowNumber]; }
FWTextTableCellRenderer FWCollectionSummaryTableManager::m_bodyRenderer [mutable, private] |
Definition at line 72 of file FWCollectionSummaryTableManager.h.
Referenced by cellRenderer().
Definition at line 67 of file FWCollectionSummaryTableManager.h.
Referenced by buttonReleasedInRowHeader(), cellRenderer(), dataChanged(), FWCollectionSummaryTableManager(), implSort(), numberOfRows(), and rowHeader().
FWCollectionSummaryModelCellRenderer FWCollectionSummaryTableManager::m_renderer [mutable, private] |
Definition at line 71 of file FWCollectionSummaryTableManager.h.
Referenced by buttonReleasedInRowHeader(), and rowHeader().
std::vector<int> FWCollectionSummaryTableManager::m_sortedToUnsortedIndicies [private] |
Definition at line 68 of file FWCollectionSummaryTableManager.h.
Referenced by cellRenderer(), dataChanged(), implSort(), rowHeader(), and unsortedRowNumber().
std::vector<boost::shared_ptr<FWItemValueGetter> > FWCollectionSummaryTableManager::m_valueGetters [private] |
Definition at line 69 of file FWCollectionSummaryTableManager.h.
Referenced by cellRenderer(), FWCollectionSummaryTableManager(), getTitles(), implSort(), and numberOfColumns().
Definition at line 73 of file FWCollectionSummaryTableManager.h.
Referenced by buttonReleasedInRowHeader().