63 table_[
'F'] =
"FileInPath";
66 table_[
'g'] =
"ESInputTag";
67 table_[
'G'] =
"VESInputTag";
70 table_[
'm'] =
"VLuminosityBlockID";
71 table_[
'M'] =
"LuminosityBlockID";
72 table_[
'a'] =
"VLuminosityBlockRange";
73 table_[
'A'] =
"LuminosityBlockRange";
74 table_[
'r'] =
"VEventRange";
75 table_[
'R'] =
"EventRange";
77 for(CodeMap::const_iterator itCode =
table_.begin(), itCodeEnd =
table_.end();
96 hc->SetForeground(0xdddddd);
147 std::stringstream ss;
149 for (
size_t i = 0,
e = entry.
vpset().size();
i !=
e; ++
i)
152 ss << key <<
"[" <<
i <<
"]";
154 vdata.
label = ss.str();
174 typedef edm::ParameterSet::table::const_iterator TIterator;
175 for (TIterator
i = ps.
tbl().begin(),
e = ps.
tbl().end();
i !=
e; ++
i)
178 typedef edm::ParameterSet::psettable::const_iterator PSIterator;
182 typedef edm::ParameterSet::vpsettable::const_iterator VPSIterator;
190 std::stringstream ss;
192 data.
value = ss.str();
196 template <
typename T>
199 std::stringstream ss;
201 for (
size_t ii = 0, ie = v.size();
ii != ie; ++
ii)
212 data.
value = ss.str();
218 std::stringstream ss;
227 if (data.
label[0] ==
'@')
309 throw std::runtime_error(
"FWPSetTableManager::handleEntryGet, entry type 'p' not expected.");
318 throw std::runtime_error(
"FWPSetTableManager::handleEntry, entry type 'P not expected.");
330 std::vector<std::string> tags;
332 for (
size_t iti = 0, ite = tags.size(); iti != ite; ++iti)
345 std::vector<std::string> tags;
347 for (
size_t iti = 0, ite = tags.size(); iti != ite; ++iti)
360 std::vector<edm::EventID>
ids;
362 for (
size_t iri = 0, ire = ids.size(); iri != ire; ++iri )
376 std::vector<edm::LuminosityBlockID>
ids;
378 for (
size_t iri = 0, ire = ids.size(); iri != ire; ++iri )
392 std::vector<edm::LuminosityBlockRange>
ranges;
394 for (
size_t iri = 0, ire = ranges.size(); iri != ire; ++iri )
408 std::vector<edm::EventRange>
ranges;
410 for (
size_t iri = 0, ire = ranges.size(); iri != ire; ++iri )
445 pathEntry.
label = pathName;
448 pathEntry.
value =
"Path";
463 std::vector<std::string> pathModules;
466 for (
size_t mi = 0, me = pathModules.size(); mi != me; ++mi)
473 const edm::ParameterSet::table::const_iterator ti = pst.find(
"@module_edm_type");
475 moduleEntry.
value =
"Unknown module name";
477 moduleEntry.
value = ti->second.getString();
479 moduleEntry.
label = pathModules[mi];
483 moduleEntry.
path =
i;
489 moduleInfo.
passed =
false;
490 moduleInfo.
dirty =
false;
525 for (
size_t mi = 0, me =
m_modules.size(); mi != me; ++mi)
529 for (
size_t pui = 0, pue = pathUpdates.size(); pui != pue; ++pui)
613 m_editor->SetForegroundColor(gVirtualX->GetPixel(kRed));
625 return "Modules & their parameters";
630 std::vector<std::string> returnValue;
632 returnValue.push_back(
"Label");
633 returnValue.push_back(
"Value");
676 if (iColumn == 1 && iRow > 0 )
698 if (ww.size() > 1 && ww[1] > 0)
739 const static size_t maxSize = 512;
745 const static Pixel_t gray = 0x777777;
746 const static Pixel_t
red = gVirtualX->GetPixel(kRed-5);
747 const static Pixel_t
green = gVirtualX->GetPixel(kGreen-5);
768 gc->SetForeground(path.
passed ? green: red);
770 else if (data.
level == 1)
776 gc->SetForeground(module.
passed ? green : red);
793 gc->SetForeground(gray);
798 if (iCol == 1 && value.size() >=
maxSize)
801 fwLog(
fwlog::kWarning) <<
"label: " << label <<
" has too long value " << value << std::endl << std::endl;
803 value = value.substr(0, maxSize);
804 value +=
"[truncated]";
805 gc->SetForeground(gVirtualX->GetPixel(kMagenta));
817 bool isParent =
false;
824 size_t nextIdx = unsortedRow + 1;
825 isParent = (nextIdx <
m_entries.size() &&
m_entries[nextIdx].parent == (size_t)unsortedRow);
834 indent = data.
level * 10 ;
883 std::vector<int>
stack;
884 int previousLevel = 0;
889 if (data.
parent == (
size_t)-1)
905 if (data.
level > previousLevel)
906 stack.push_back(data.
parent);
908 for (
size_t pi = 0, pe = previousLevel - data.
level;
pi != pe; ++
pi)
914 for (
size_t pi = 0, pe = stack.size();
pi != pe; ++
pi)
922 previousLevel = data.
level;
951 if (data.
parent == ((
size_t) -1))
int selectedColumn() const
void modulesInPath(const std::string &iPathLabel, std::vector< std::string > &oLabelsToFill) const
add to oLabelsToFill in execution order the labels of all modules in path iPathLabel ...
std::vector< unsigned > getVUInt32() const
std::vector< double > getVDouble() const
void recalculateVisibility()
std::vector< std::string > m_availablePaths
std::vector< unsigned long long > getVUInt64() const
std::vector< LuminosityBlockID > getVLuminosityBlockID() const
static TypeTrans const sTypeTranslations
std::vector< PathInfo > m_paths
std::vector< std::string > CodeMap
virtual bool rowIsSelected(int row) const
~FWPSetTableManager() override
FWTextTreeCellRenderer m_renderer
unsigned getUInt32() const
std::vector< size_t > m_parentStack
std::vector< InputTag > getVInputTag() const
edm::ParameterSet * orig_pset
std::vector< int > & rowToIndex()
void setIsOpen(bool value)
void implSort(int, bool) override
Called by 'sort' method to actually handle the sorting of the rows. Arguments are the same as 'sort'...
std::vector< std::string > getTitles() const override
returns the title names for each column
void handlePSetEntry(edm::ParameterSetEntry &entry, const std::string &key)
void setExpanded(int row)
void createVectorString(FWPSetTableManager::PSetData &data, const T &v, bool quotes)
void dataChanged()
Classes which inherit from FWTableManagerBase must call this when their underlying data changes...
std::vector< ParameterSet > & vpsetForUpdate()
std::vector< ModuleInfo > m_modules
LuminosityBlockRange getLuminosityBlockRange() const
virtual std::vector< unsigned int > maxWidthForColumns() const
for each column in the table this returns the present maximum width for that column ...
std::vector< EventID > getVEventID() const
virtual const std::string title() const
unsigned long long getUInt64() const
std::map< std::string, size_t > m_pathIndex
std::vector< PSetData > & data()
void handleVPSetEntry(edm::VParameterSetEntry &entry, const std::string &key)
static const TGGC & getDefaultGC()
std::vector< int > m_row_to_index
std::vector< PSetData > m_entries
void setHighlightContext(const TGGC *context)
virtual void setCellEditor(TGTextEntry *editor)
int numberOfRows() const override
Number of rows in the table.
InputTag getInputTag() const
std::map< std::string, char > type2Code_
bool apply(FWPSetTableManager::PSetData &data, FWPSetTableManager::PSetData &parent)
void handleEntry(const edm::Entry &entry, const std::string &key)
static const TGGC & getDefaultHighlightGC()
std::vector< ParameterSet > const & vpset() const
returns the VPSet
std::vector< long long > getVInt64() const
void handlePSet(edm::ParameterSet *psp)
std::vector< unsigned int > maxWidthForColumns() const override
for each column in the table this returns the present maximum width for that column ...
std::vector< ESInputTag > getVESInputTag() const
void setGraphicsContext(const TGGC *iContext)
FWPSetCellEditor * m_editor
void setIsParent(bool value)
std::vector< EventRange > getVEventRange() const
FWTableCellRendererBase * cellRenderer(int iSortedRowNumber, int iCol) const override
int numberOfColumns() const override
Number of columns in the table.
virtual void setIndentation(int indentation=0)
void updateSchedule(const edm::ScheduleInfo *info)
int unsortedRowNumber(int unsorted) const override
when passed the index to the sorted order of the rows it returns the original row number from the und...
void createScalarString(PSetData &data, T v)
void setData(const std::string &, bool isSelected)
FileInPath getFileInPath() const
psettable const & psetTable() const
virtual void updateFilter(const char *filter)
const edm::ParameterSet * parametersForModule(const std::string &iLabel) const
std::vector< int > getVInt32() const
void setCellValueEditor(FWPSetCellEditor *editor)
std::map< std::string, Entry > table
LuminosityBlockID getLuminosityBlockID() const
ParameterSet & psetForUpdate()
vpsettable const & vpsetTable() const
EventRange getEventRange() const
void update(std::vector< PathUpdate > &pathUpdates)
void visualPropertiesChanged()
Classes which inherit from FWTableManagerBase must call this when how the data is shown (e...
std::vector< LuminosityBlockRange > getVLuminosityBlockRange() const
void setSelection(int row, int column, int mask)
ESInputTag getESInputTag() const
virtual unsigned int cellHeight() const
require all cells to be the same height
std::string relativePath() const
table const & tbl() const
std::vector< std::string > getVString() const
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
std::string getString() const
edm::ParameterSet * current_pset
virtual void showEditor(bool value)
EventID getEventID() const