20 LArFormattingHelper::PrintFormatCharacter(static_cast<unsigned int>(style), stream);
27 LArFormattingHelper::PrintFormatCharacter(static_cast<unsigned int>(color), stream);
32 void LArFormattingHelper::ResetStyle(std::ostream &stream)
39 void LArFormattingHelper::ResetColor(std::ostream &stream)
41 LArFormattingHelper::SetColor(DEFAULT, stream);
48 LArFormattingHelper::ResetColor(stream);
49 LArFormattingHelper::ResetStyle(stream);
54 void LArFormattingHelper::PrintFormatCharacter(
const unsigned int code, std::ostream &stream)
56 if (!(stream << LArFormattingHelper::GetFormatCharacter(code)))
57 throw StatusCodeException(STATUS_CODE_INVALID_PARAMETER);
62 std::string LArFormattingHelper::GetFormatCharacter(
const unsigned int code)
64 const std::string startFormattingCode(
"\x1B[");
65 const std::string endFormattingCode(
"m");
66 return (startFormattingCode +
std::to_string(code) + endFormattingCode);
74 std::cout << std::endl << std::string(width,
'-') <<
"\r-" << title << std::endl;
80 void LArFormattingHelper::PrintRule(
const unsigned int width)
88 LArFormattingHelper::Table::Table(
const StringVector &columnTitles,
const unsigned int precision) :
89 m_columnTitles(columnTitles),
90 m_precision(precision)
114 throw StatusCodeException(STATUS_CODE_OUT_OF_RANGE);
124 throw StatusCodeException(STATUS_CODE_OUT_OF_RANGE);
126 const unsigned int currentElementIndex(
m_elements.size() - 1);
127 const unsigned int column(currentElementIndex %
m_widths.size());
147 for (
unsigned int i = 0, nColumns =
m_columnTitles.size(); i < nColumns; ++i)
155 for (
unsigned int i = 0, nColumns =
m_columnTitles.size(); i < nColumns; ++i)
170 std::cout <<
"LArFormattingHelper::Table::PrintTableElements - Error: Number of table elements added doesn't fill a whole row" << std::endl;
171 throw StatusCodeException(STATUS_CODE_OUT_OF_RANGE);
174 for (
unsigned int i = 0; i < nRows * nColumns; i++)
185 const unsigned int column(index %
m_widths.size());
188 std::cout <<
"|" << format << separator << std::setw(
m_widths[column]) << std::internal << value << separator << std::resetiosflags(std::ios::adjustfield);
192 std::cout <<
"|" << std::endl;
void PrintTableCell(const std::string &value, const std::string &format, const unsigned int index) const
Print a table cell.
bool IsSeparatorColumn(const unsigned int column) const
If the supplied column is a separator (vertical rule)
pandora::StringVector m_format
The formatting of each table element.
void PrintTableElements() const
Print the table elements.
Color
Style code enumeration.
static std::string GetFormatCharacter(const unsigned int code)
Get a formatting character.
void PrintHorizontalLine() const
Print a horizontal line.
std::stringstream m_stringstream
The stringstream to print objects to.
ntupleExperimental Reset()
const unsigned int m_precision
The number of significant figures to use when displaying number types.
pandora::StringVector m_elements
The vector of flattened table elements.
const pandora::StringVector m_columnTitles
The vector of columns titles in the table.
void CheckAndSetSeparatorColumn()
Check if the next table cell is in a separator column, if so add a blank element. ...
std::size_t color(std::string const &procname)
Style
Style code enumeration.
std::string value(boost::any const &)
std::string to_string(Flag_t< Storage > const flag)
Convert a flag into a stream (shows its index).
std::vector< unsigned int > m_widths
The widths of each column (in units of number of characters)
gROOT SetStyle("clearRetro")
void Print() const
Print the table.
static void ResetStyle(std::ostream &stream=std::cout)
Reset the style of the standard output stream.
void UpdateColumnWidth()
Update the width of the last column in which an element was added.
void PrintHeader(std::string someText)
void PrintColumnTitles() const
Print the column titles.