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)
34 LArFormattingHelper::SetStyle(REGULAR, stream);
39 void LArFormattingHelper::ResetColor(std::ostream &
stream)
41 LArFormattingHelper::SetColor(DEFAULT, stream);
46 void LArFormattingHelper::Reset(std::ostream &
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);
66 return (startFormattingCode +
std::to_string(code) + endFormattingCode);
71 void LArFormattingHelper::PrintHeader(
const std::string &
title,
const unsigned int width)
73 LArFormattingHelper::SetStyle(BOLD);
75 LArFormattingHelper::Reset();
80 void LArFormattingHelper::PrintRule(
const unsigned int width)
82 LArFormattingHelper::PrintHeader(
"", width);
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);
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++)
189 << std::resetiosflags(std::ios::adjustfield);
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.
static bool format(QChar::Decomposition tag, QString &str, int index, int len)
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.
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.
CodeOutputInterface * code
static int max(int a, int b)
Q_EXPORT QTSManip setw(int w)
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::vector< unsigned int > m_widths
The widths of each column (in units of number of characters)
std::vector< string > StringVector
void Print() const
Print the table.
std::vector< std::string > column
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 PrintColumnTitles() const
Print the column titles.
std::string to_string(ModuleType const mt)
QTextStream & endl(QTextStream &s)