CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Friends
FWTableViewManager Class Reference

#include <Fireworks/Core/interface/FWTableViewManager.h>

Inheritance diagram for FWTableViewManager:
FWViewManagerBase FWConfigurable

Classes

struct  TableEntry
 
class  TableHandle
 

Public Types

typedef std::vector< const
FWEventItem * > 
Items
 
typedef std::vector< TableEntryTableEntries
 
typedef std::map< std::string,
TableEntries
TableSpecs
 

Public Member Functions

void addTo (FWConfiguration &) const
 
void addToImpl (FWConfiguration &) const
 
FWViewBasebuildView (TEveWindowSlot *iParent, const std::string &type)
 
void destroyItem (const FWEventItem *item)
 
 FWTableViewManager (FWGUIManager *)
 
const Itemsitems () const
 
virtual void newItem (const FWEventItem *)
 
void notifyViews ()
 
void removeAllItems (void)
 
void setFrom (const FWConfiguration &)
 
virtual FWTypeToRepresentations supportedTypesAndRepresentations () const
 
TableSpecs::iterator tableFormats (const edm::TypeWithDict &key)
 
TableSpecs::iterator tableFormats (const TClass &key)
 
virtual ~FWTableViewManager ()
 
- Public Member Functions inherited from FWViewManagerBase
void colorsChangedSlot ()
 
const fireworks::Contextcontext () const
 
virtual void eventBegin ()
 
virtual void eventEnd ()
 
void modelChangesComingSlot ()
 
void modelChangesDoneSlot ()
 
void setChangeManager (FWModelChangeManager *iCM)
 
void setColorManager (FWColorManager *iCM)
 
virtual void setContext (const fireworks::Context *x)
 
virtual ~FWViewManagerBase ()
 
- Public Member Functions inherited from FWConfigurable
 FWConfigurable ()
 
virtual ~FWConfigurable ()
 

Static Public Attributes

static const std::string kConfigColumns
 
static const std::string kConfigTypeNames = "typeNames"
 

Protected Types

typedef std::vector
< boost::shared_ptr
< FWTableView > > 
Views
 

Protected Member Functions

virtual void colorsChanged ()
 
void dataChanged ()
 
 FWTableViewManager ()
 
virtual void modelChangesComing ()
 
virtual void modelChangesDone ()
 
- Protected Member Functions inherited from FWViewManagerBase
FWModelChangeManagerchangeManager () const
 
FWColorManagercolorManager () const
 
void * createInstanceOf (const TClass *iBaseClass, const char *iNameOfClass)
 
 FWViewManagerBase ()
 

Protected Attributes

Items m_items
 
TableSpecs m_tableFormats
 
Views m_views
 

Private Member Functions

void beingDestroyed (const FWViewBase *)
 
 FWTableViewManager (const FWTableViewManager &)
 
const FWTableViewManageroperator= (const FWTableViewManager &)
 
TableHandle table (const char *collection)
 
TableSpecs::iterator tableFormatsImpl (const edm::TypeWithDict &key)
 

Friends

class FWTableView
 
class FWTableViewTableManager
 

Detailed Description

Description: Base class for a Manger for a specific type of View

Usage: <usage>

Definition at line 38 of file FWTableViewManager.h.

Member Typedef Documentation

typedef std::vector<const FWEventItem *> FWTableViewManager::Items

Container for the event items which have a table.

Definition at line 51 of file FWTableViewManager.h.

Container for the description of the columns of a given table.

Definition at line 53 of file FWTableViewManager.h.

typedef std::map<std::string, TableEntries> FWTableViewManager::TableSpecs

Type for the collection specific (i.e. those that do not use default) table definition.

Definition at line 56 of file FWTableViewManager.h.

typedef std::vector<boost::shared_ptr<FWTableView> > FWTableViewManager::Views
protected

Definition at line 91 of file FWTableViewManager.h.

Constructor & Destructor Documentation

FWTableViewManager::FWTableViewManager ( FWGUIManager iGUIMgr)

Definition at line 46 of file FWTableViewManager.cc.

References FWTableViewManager::TableEntry::BOOL, buildView(), column, f, FWViewType::idToName(), FWTableViewManager::TableEntry::INT, FWViewType::kTable, FWGUIManager::registerViewBuilder(), and table().

48 {
50  f=boost::bind(&FWTableViewManager::buildView,
51  this, _1, _2);
53 
54  // ---------- for some object types, we have default table contents ----------
55  table("reco::GenParticle").
56  column("pT", 1, "pt").
57  column("eta", 3).
58  column("phi", 3).
59  column("status", TableEntry::INT).
60  column("pdgId", TableEntry::INT);
61 
62  table("reco::Muon").
63  column("q", TableEntry::INT, "charge").
64  column("pT", 1, "pt").
65  column("global", TableEntry::BOOL, "isGlobalMuon").
66  column("tracker", TableEntry::BOOL, "isTrackerMuon").
67  column("SA", TableEntry::BOOL, "isStandAloneMuon").
68  column("calo", TableEntry::BOOL, "isCaloMuon").
69  column("tr pt", 1, "track().pt()").
70  column("eta", 3).
71  column("phi", 3).
72  column("matches", TableEntry::INT, "numberOfMatches('SegmentArbitration')").
73  column("d0", 3, "track().d0()").
74  column("d0 / d0Err", 3, "track().d0() / track().d0Error()");
75 
76  table("reco::GsfElectron").
77  column("q", TableEntry::INT, "charge").
78  column("pT", 1, "pt").
79  column("eta", 3).
80  column("phi", 3).
81  column("E/p", 3, "eSuperClusterOverP").
82  column("H/E", 3, "hadronicOverEm").
83  column("fbrem", 3, "(trackMomentumAtVtx().R() - trackMomentumOut().R()) / trackMomentumAtVtx().R()").
84  column("dei", 3, "deltaEtaSuperClusterTrackAtVtx()").
85  column("dpi", 3, "deltaPhiSuperClusterTrackAtVtx()");
86 
87  table("reco::Photon").
88  column("pT", 1, "pt").
89  column("eta", 3).
90  column("phi", 3).
91  column("H/E", 3, "hadronicOverEm");
92 
93  table("reco::CaloJet").
94  column("pT", 1, "pt").
95  column("eta", 3).
96  column("phi", 3).
97  column("ECAL", 1, "p4().E() * emEnergyFraction()").
98  column("HCAL", 1, "p4().E() * energyFractionHadronic()").
99  column("emf", 3, "emEnergyFraction()");
100 
101  table("reco::Jet").
102  column("pT", 1, "pt").
103  column("eta", 3).
104  column("phi", 3);
105 
106  table("reco::MET").
107  column("et", 1).
108  column("phi", 3).
109  column("sumEt", 1).
110  column("mEtSig", 3);
111 
112  table("reco::Track").
113  column("q", TableEntry::INT, "charge").
114  column("pT", 1, "pt").
115  column("eta", 3).
116  column("phi", 3).
117  column("d0", 5).
118  column("d0Err", 5, "d0Error").
119  column("dz", 5).
120  column("dzErr", 5, "dzError").
121  column("vx", 5).
122  column("vy", 5).
123  column("vz", 5).
124  column("pixel hits", TableEntry::INT, "hitPattern().numberOfValidPixelHits()").
125  column("strip hits", TableEntry::INT, "hitPattern().numberOfValidStripHits()").
126  column("chi2", 3).
127  column("ndof", TableEntry::INT);
128 
129  table("DTRecSegment4D").
130  column("wheel", 0, "chamberId.wheel").
131  column("station", 0, "chamberId.station").
132  column("sector", 0, "chamberId.sector").
133  column("t0phi", 2, "phiSegment.t0").
134  column("t0theta", 2, "zSegment.t0").
135  column("hasPhi", -2, "hasPhi").
136  column("hasZed", -2, "hasZed").
137  column("chi2", 2, "chi2").
138  column("dof", 0, "degreesOfFreedom");
139 
140  table("DTRecHit1DPair").
141  column("wheel", 0, "wireId.wheel").
142  column("station", 0, "wireId.station").
143  column("sector", 0, "wireId.sector").
144  column("SL", 0, "wireId.superlayer").
145  column("layer", 0, "wireId.layer").
146  column("wire", 0, "wireId.wire").
147  column("digiTime", 2, "digiTime");
148 
149  table("CSCSegment").
150  column("endcap", 0, "cscDetId.endcap").
151  column("station", 0, "cscDetId.station").
152  column("ring", 0, "cscDetId.ring").
153  column("chamber", 0, "cscDetId.chamber");
154 
155  table("reco::Vertex").
156  column("x", 5).
157  column("xError", 5).
158  column("y", 5).
159  column("yError", 5).
160  column("z", 5).
161  column("zError", 5).
162  column("tracks", TableEntry::INT, "tracksSize").
163  column("chi2", 3).
164  column("ndof", 3);
165 
166  table("CaloTower").
167  column("emEt", 1).
168  column("hadEt", 1).
169  column("et", 1, "Et").
170  column("eta", 3).
171  column("phi", 3);
172 
173  table("CaloRecHit").
174  column("id", TableEntry::INT,"detid.rawId").
175  column("energy",3).
176  column("time",3).
177  column("flags",TableEntry::INT,"flags");
178 }
TableHandle table(const char *collection)
boost::function2< FWViewBase *, TEveWindowSlot *, const std::string & > ViewBuildFunctor
Definition: FWGUIManager.h:99
void registerViewBuilder(const std::string &iName, ViewBuildFunctor &iBuilder)
double f[11][100]
#define column(...)
Definition: DbCore.h:74
static const std::string & idToName(int)
Definition: FWViewType.cc:89
FWViewBase * buildView(TEveWindowSlot *iParent, const std::string &type)
FWTableViewManager::~FWTableViewManager ( )
virtual

Definition at line 180 of file FWTableViewManager.cc.

181 {
182 }
FWTableViewManager::FWTableViewManager ( )
protected
FWTableViewManager::FWTableViewManager ( const FWTableViewManager )
private

Member Function Documentation

void FWTableViewManager::addTo ( FWConfiguration iTo) const
virtual

Implements FWConfigurable.

Definition at line 453 of file FWTableViewManager.cc.

References addToImpl(), and m_views.

454 {
455  // if there are views, it's the job of the first view to store
456  // the configuration (this is to avoid ordering problems in the
457  // case of multiple views)
458  if (!m_views.empty())
459  return;
460  // if there are no views, then it's up to us to store the column
461  // formats. This is done in addToImpl, which can be called by
462  // FWTableView as well
463  addToImpl(iTo);
464 }
void addToImpl(FWConfiguration &) const
void FWTableViewManager::addToImpl ( FWConfiguration iTo) const

Definition at line 467 of file FWTableViewManager.cc.

References FWConfiguration::addKeyValue(), FWConfiguration::addValue(), python.tagInventory::entries, FWTableViewManager::TableEntry::expression, kConfigTypeNames, m_tableFormats, FWTableViewManager::TableEntry::name, FWTableViewManager::TableEntry::precision, AlCaHLTBitMon_QueryRunRegistry::string, and FWViewBase::typeName().

Referenced by FWTableView::addTo(), and addTo().

468 {
469  FWConfiguration typeNames(1);
470  char prec[100];
471 
472  for (TableSpecs::const_iterator
473  iType = m_tableFormats.begin(),
474  iType_end = m_tableFormats.end();
475  iType != iType_end; ++iType)
476  {
477  const std::string &typeName = iType->first;
478  typeNames.addValue(typeName);
479  FWConfiguration columns(1);
480  const TableEntries &entries = iType->second;
481  for (size_t ei = 0, ee = entries.size(); ei != ee; ++ei)
482  {
483  const TableEntry &entry = entries[ei];
484  columns.addValue(entry.name);
485  columns.addValue(entry.expression);
486  columns.addValue((snprintf(prec, 100, "%d", entry.precision), prec));
487  }
488  iTo.addKeyValue(typeName, columns);
489  }
490  iTo.addKeyValue(kConfigTypeNames, typeNames);
491 }
std::vector< TableEntry > TableEntries
FWConfiguration & addKeyValue(const std::string &, const FWConfiguration &)
static const std::string kConfigTypeNames
void FWTableViewManager::beingDestroyed ( const FWViewBase iView)
private

Definition at line 346 of file FWTableViewManager.cc.

References m_views.

Referenced by buildView().

347 {
348  for(Views::iterator it = m_views.begin(), itEnd = m_views.end();
349  it != itEnd;
350  ++it)
351  {
352  if(it->get() == iView)
353  {
354  m_views.erase(it);
355  return;
356  }
357  }
358 }
class FWViewBase * FWTableViewManager::buildView ( TEveWindowSlot *  iParent,
const std::string &  type 
)

Definition at line 334 of file FWTableViewManager.cc.

References beingDestroyed(), FWViewManagerBase::colorManager(), FWTableView, and m_views.

Referenced by FWTableViewManager().

335 {
336  TEveManager::TRedrawDisabler disableRedraw(gEve);
337  boost::shared_ptr<FWTableView> view(new FWTableView(iParent, this));
338  view->setBackgroundColor(colorManager().background());
339  m_views.push_back(view);
340  view->beingDestroyed_.connect(boost::bind(&FWTableViewManager::beingDestroyed,
341  this, _1));
342  return view.get();
343 }
FWColorManager & colorManager() const
friend class FWTableView
void beingDestroyed(const FWViewBase *)
void FWTableViewManager::colorsChanged ( )
protectedvirtual

Notify all the views that colors have changed

Implements FWViewManagerBase.

Definition at line 430 of file FWTableViewManager.cc.

References FWViewManagerBase::colorManager(), alignCSCRings::e, i, and m_views.

431 {
432  for(size_t i = 0, e = m_views.size(); i != e; ++i)
433  m_views[i].get()->resetColors(colorManager());
434 }
int i
Definition: DBlmapReader.cc:9
FWColorManager & colorManager() const
void FWTableViewManager::dataChanged ( )
protected

Definition at line 437 of file FWTableViewManager.cc.

References alignCSCRings::e, i, and m_views.

Referenced by FWTableView::addColumn(), FWTableView::deleteColumn(), modelChangesDone(), and FWTableView::modifyColumn().

438 {
439  for(size_t i = 0, e = m_views.size(); i != e; ++i)
440  m_views[i].get()->dataChanged();
441 }
int i
Definition: DBlmapReader.cc:9
void FWTableViewManager::destroyItem ( const FWEventItem iItem)

Remove iItem from the list

iItem the item to be removed.

Definition at line 387 of file FWTableViewManager.cc.

References alignCSCRings::e, i, m_items, and notifyViews().

Referenced by newItem().

388 {
389  // remove the item from the list
390  // FIXME: why doesn't it use erase?? Boh...
391  for (size_t i = 0, e = m_items.size(); i != e; ++i)
392  {
393  if (m_items[i] != iItem)
394  continue;
395  m_items[i] = 0;
396  }
397 
398  notifyViews();
399 }
int i
Definition: DBlmapReader.cc:9
const Items& FWTableViewManager::items ( ) const
inline
void FWTableViewManager::modelChangesComing ( )
protectedvirtual

Called when models have changed and so the display must be updated.

Implements FWViewManagerBase.

Definition at line 413 of file FWTableViewManager.cc.

414 {
415  gEve->DisableRedraw();
416 }
void FWTableViewManager::modelChangesDone ( )
protectedvirtual

Implements FWViewManagerBase.

Definition at line 419 of file FWTableViewManager.cc.

References dataChanged().

420 {
421  gEve->EnableRedraw();
422  // tell the views to update their item lists
423  // FIXME: doesn't this need to call updateItems as well
424  // and hence notifyViews would be more appropriate?? Boh...
425  dataChanged();
426 }
void FWTableViewManager::newItem ( const FWEventItem iItem)
virtual

Implements FWViewManagerBase.

Definition at line 361 of file FWTableViewManager.cc.

References destroyItem(), FWEventItem::goingToBeDestroyed_, m_items, and notifyViews().

362 {
363  m_items.push_back(iItem);
364  iItem->goingToBeDestroyed_.connect(boost::bind(&FWTableViewManager::destroyItem,
365  this, _1));
366  notifyViews();
367 }
FWItemChangeSignal goingToBeDestroyed_
Definition: FWEventItem.h:214
void destroyItem(const FWEventItem *item)
void FWTableViewManager::notifyViews ( void  )

Tell the views to update their item list.

Definition at line 371 of file FWTableViewManager.cc.

References FWTableView::dataChanged(), alignCSCRings::e, i, m_views, and FWTableView::updateItems().

Referenced by destroyItem(), newItem(), and removeAllItems().

372 {
373  for(size_t i = 0, e = m_views.size(); i != e; ++i)
374  {
375  FWTableView *view = m_views[i].get();
376  view->updateItems();
377  view->dataChanged();
378  }
379 }
int i
Definition: DBlmapReader.cc:9
void updateItems()
Definition: FWTableView.cc:546
void dataChanged()
Definition: FWTableView.cc:585
const FWTableViewManager& FWTableViewManager::operator= ( const FWTableViewManager )
private
void FWTableViewManager::removeAllItems ( void  )

Remove all items present in the view.

This should watch the FWEventItemsManager::goingToClearItems_ signal.

Definition at line 406 of file FWTableViewManager.cc.

References m_items, and notifyViews().

Referenced by CmsShowMainBase::setupViewManagers().

407 {
408  m_items.clear();
409  notifyViews();
410 }
void FWTableViewManager::setFrom ( const FWConfiguration iFrom)
virtual

Implements FWConfigurable.

Definition at line 494 of file FWTableViewManager.cc.

References assert(), FWTableViewManager::TableHandle::column(), fwLog, patZpeak::handle, kConfigTypeNames, fwlog::kWarning, mergeVDriftHistosByStation::name, AlCaHLTBitMon_QueryRunRegistry::string, FWConfiguration::stringValues(), table(), and FWConfiguration::valueForKey().

Referenced by FWTableView::setFrom().

495 {
496  try
497  {
498  const FWConfiguration *typeNames = iFrom.valueForKey(kConfigTypeNames);
499  if (typeNames == 0)
500  {
501  fwLog(fwlog::kWarning) << "no table column configuration stored, using defaults\n";
502  return;
503  }
504 
505  //NOTE: FWTableViewTableManagers hold pointers into m_tableFormats so if we
506  // clear it those pointers would be invalid
507  // instead we will just clear the lists and fill them with their new values
508  //m_tableFormats.clear();
510  iType = typeNames->stringValues()->begin(),
511  iTypeEnd = typeNames->stringValues()->end();
512  iType != iTypeEnd; ++iType)
513  {
514  //std::cout << "reading type " << *iType << std::endl;
515  const FWConfiguration *columns = iFrom.valueForKey(*iType);
516  assert(columns != 0);
517  TableHandle handle = table(iType->c_str());
519  it = columns->stringValues()->begin(),
520  itEnd = columns->stringValues()->end();
521  it != itEnd; ++it)
522  {
523  const std::string &name = *it++;
524  const std::string &expr = *it++;
525  int prec = atoi(it->c_str());
526  handle.column(name.c_str(), prec, expr.c_str());
527  }
528  }
529  }
530  catch (...)
531  {
532  // No info about types in the configuration; this is not an
533  // error, it merely means that the types are handled by the
534  // first FWTableView.
535  }
536 }
const StringValues * stringValues() const
TableHandle table(const char *collection)
assert(m_qm.get())
tuple handle
Definition: patZpeak.py:22
#define fwLog(_level_)
Definition: fwLog.h:50
const FWConfiguration * valueForKey(const std::string &iKey) const
StringValues::const_iterator StringValuesIt
static const std::string kConfigTypeNames
FWTypeToRepresentations FWTableViewManager::supportedTypesAndRepresentations ( ) const
virtual

Implements FWViewManagerBase.

Definition at line 444 of file FWTableViewManager.cc.

445 {
446  FWTypeToRepresentations returnValue;
447  return returnValue;
448 }
FWTableViewManager::TableHandle FWTableViewManager::table ( const char *  name)
private

Define a new table for type name

name the typename of the object contained in the table.

Returns
the TableHandle for this table, which can be used to create columns via the ::columns() method. All subsequent calls for method column will be relative to this table.

If a table with the same name is already there, its entries are reset.

Definition at line 201 of file FWTableViewManager.cc.

References patZpeak::handle, and m_tableFormats.

Referenced by FWTableViewManager(), setFrom(), and tableFormats().

202 {
203  TableHandle handle(name, m_tableFormats);
204  return handle;
205 }
tuple handle
Definition: patZpeak.py:22
FWTableViewManager::TableSpecs::iterator FWTableViewManager::tableFormats ( const edm::TypeWithDict key)

Find the entries for a given type key, possibly recursively searching recursively in the class hierarchy for a base class that matches.

  • If the recursion succeeds return the specific table.
  • Otherwise, create a dummy table with most common properties.

key the edm::TypeWithDict of the collection for which we want to have the key definition.

FIXME: how about actually inspecting the type and show all the int and floats if no description is found??

Definition at line 263 of file FWTableViewManager.cc.

References FWTableViewManager::TableEntry::BOOL, FWTableViewManager::TableHandle::column(), edm::FunctionWithDict::finalReturnType(), edm::FunctionWithDict::functionParameterSize(), patZpeak::handle, FWTableViewManager::TableEntry::INT, edm::MemberWithDict::isConst(), edm::FunctionWithDict::isConst(), edm::MemberWithDict::isPublic(), edm::FunctionWithDict::isPublic(), visualization-live-secondInstance_cfg::m, m_tableFormats, edm::MemberWithDict::name(), edm::FunctionWithDict::name(), edm::TypeWithDict::name(), run_regression::ret, AlCaHLTBitMon_QueryRunRegistry::string, table(), tableFormatsImpl(), and edm::MemberWithDict::typeOf().

Referenced by FWTableView::selectCollection(), and tableFormats().

264 {
265  static const std::string isint("int");
266  static const std::string isbool("bool");
267  static const std::string isdouble("double");
268  static const std::string isfloat("float");
269 
270  std::string keyType = key.name();
271 
272  TableSpecs::iterator ret = m_tableFormats.find(keyType);
273 
274  if (ret != m_tableFormats.end())
275  return ret;
276 
277  ret = tableFormatsImpl(key); // recursive search for base classes
278 
279  if (ret != m_tableFormats.end())
280  return ret;
281 
282  TableHandle handle = table(keyType.c_str());
283  edm::TypeFunctionMembers functionMembers(key);
284  for (auto const& member : functionMembers)
285  {
286  edm::FunctionWithDict m(member);
287  if (m.functionParameterSize())
288  continue;
289  if (!m.isPublic())
290  continue;
291  if (!m.isConst())
292  continue;
293  if (m.finalReturnType().name() == isint)
294  handle.column(m.name().c_str(), TableEntry::INT);
295  else if (m.finalReturnType().name() == isbool)
296  handle.column(m.name().c_str(), TableEntry::BOOL);
297  else if (m.finalReturnType().name() == isdouble)
298  handle.column(m.name().c_str(), 5);
299  else if (m.finalReturnType().name() == isfloat)
300  handle.column(m.name().c_str(), 3);
301  }
302  edm::TypeDataMembers dataMembers(key);
303  for (auto const& member : dataMembers)
304  {
305  edm::MemberWithDict m(member);
306  if (!m.isPublic())
307  continue;
308  if (!m.isConst())
309  continue;
310  if (m.typeOf().name() == isint)
311  handle.column(m.name().c_str(), TableEntry::INT);
312  else if (m.typeOf().name() == isbool)
313  handle.column(m.name().c_str(), TableEntry::BOOL);
314  else if (m.typeOf().name() == isdouble)
315  handle.column(m.name().c_str(), 5);
316  else if (m.typeOf().name() == isfloat)
317  handle.column(m.name().c_str(), 3);
318  }
319  return m_tableFormats.find(keyType);
320 }
TableHandle table(const char *collection)
std::string name() const
TableSpecs::iterator tableFormatsImpl(const edm::TypeWithDict &key)
tuple handle
Definition: patZpeak.py:22
FWTableViewManager::TableSpecs::iterator FWTableViewManager::tableFormats ( const TClass &  key)

Helper function which uses TClass rather than edm::TypeWithDict.

Otherwise identical to FWTableViewManager::tableFormats(const TClass &key).

Definition at line 328 of file FWTableViewManager.cc.

References edm::TypeWithDict::byName(), and tableFormats().

329 {
330  return tableFormats(edm::TypeWithDict::byName(key.GetName()));
331 }
static TypeWithDict byName(std::string const &name)
Definition: TypeWithDict.cc:60
TableSpecs::iterator tableFormats(const edm::TypeWithDict &key)
FWTableViewManager::TableSpecs::iterator FWTableViewManager::tableFormatsImpl ( const edm::TypeWithDict key)
private

Helper function to do recursive lookup of specialized table description for a given type key.

Definition at line 231 of file FWTableViewManager.cc.

References newFWLiteAna::base, m_tableFormats, edm::TypeWithDict::name(), and run_regression::ret.

Referenced by tableFormats().

232 {
233  TableSpecs::iterator ret = m_tableFormats.find(key.name());
234  if (ret != m_tableFormats.end())
235  return ret;
236 
237  // if there is no exact match for the type, try the base classes
238  edm::TypeBases bases(key);
239  for (auto const& base : bases)
240  {
241  ret = tableFormatsImpl(edm::BaseWithDict(base).typeOf());
242  if (ret != m_tableFormats.end())
243  return ret;
244  }
245 
246  return m_tableFormats.end();
247 }
tuple base
Main Program
Definition: newFWLiteAna.py:92
std::string name() const
TableSpecs::iterator tableFormatsImpl(const edm::TypeWithDict &key)

Friends And Related Function Documentation

friend class FWTableView
friend

Definition at line 40 of file FWTableViewManager.h.

Referenced by buildView().

friend class FWTableViewTableManager
friend

Definition at line 41 of file FWTableViewManager.h.

Member Data Documentation

const std::string FWTableViewManager::kConfigColumns
static

Definition at line 80 of file FWTableViewManager.h.

const std::string FWTableViewManager::kConfigTypeNames = "typeNames"
static

Definition at line 79 of file FWTableViewManager.h.

Referenced by addToImpl(), and setFrom().

Items FWTableViewManager::m_items
protected

Definition at line 94 of file FWTableViewManager.h.

Referenced by destroyItem(), items(), newItem(), and removeAllItems().

TableSpecs FWTableViewManager::m_tableFormats
protected
Views FWTableViewManager::m_views
protected