- java.lang.Object
-
- picocli.CommandLine.Help.TextTable
-
- Enclosing class:
- CommandLine.Help
public static class CommandLine.Help.TextTable extends Object
Responsible for spacing out
CommandLine.Help.Ansi.Text
values according to theCommandLine.Help.Column
definitions the table was created with. Columns have a width, indentation, and an overflow policy that decides what to do if a value is longer than the column's width.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CommandLine.Help.TextTable.Cell
Helper class to index positions in aHelp.TextTable
.
-
Field Summary
Fields Modifier and Type Field Description protected List<CommandLine.Help.Ansi.Text>
columnValues
Thechar[]
slots of theTextTable
to copy text values into.int
indentWrappedLines
By default, indent wrapped lines by 2 spaces.
-
Constructor Summary
Constructors Modifier Constructor Description protected
TextTable(CommandLine.Help.Ansi ansi, CommandLine.Help.Column[] columns)
Deprecated.protected
TextTable(CommandLine.Help.ColorScheme colorScheme, CommandLine.Help.Column[] columns)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addEmptyRow()
Adds the requiredchar[]
slots for a new row to thecolumnValues
field.void
addRowValues(String... values)
Delegates toaddRowValues(CommandLine.Help.Ansi.Text...)
, after ensuring that multi-line values are layed out in the correct row and column.void
addRowValues(CommandLine.Help.Ansi.Text... values)
CommandLine.Help.Ansi.Text
cellAt(int row, int col)
Deprecated.usetextAt(int, int)
insteadCommandLine.Help.Column[]
columns()
The column definitions of this table.static CommandLine.Help.TextTable
forColumns(CommandLine.Help.Ansi ansi, CommandLine.Help.Column... columns)
Deprecated.static CommandLine.Help.TextTable
forColumns(CommandLine.Help.ColorScheme colorScheme, CommandLine.Help.Column... columns)
Constructs aTextTable
with the specified columns.static CommandLine.Help.TextTable
forColumnWidths(CommandLine.Help.Ansi ansi, int... columnWidths)
Deprecated.static CommandLine.Help.TextTable
forColumnWidths(CommandLine.Help.ColorScheme colorScheme, int... columnWidths)
Constructs a new TextTable with columns with the specified width, all SPANning multiple columns on overflow except the last column which WRAPS to the next row.static CommandLine.Help.TextTable
forDefaultColumns(CommandLine.Help.Ansi ansi, int usageHelpWidth)
Deprecated.static CommandLine.Help.TextTable
forDefaultColumns(CommandLine.Help.Ansi ansi, int longOptionsColumnWidth, int usageHelpWidth)
Deprecated.static CommandLine.Help.TextTable
forDefaultColumns(CommandLine.Help.ColorScheme colorScheme, int longOptionsColumnWidth, int usageHelpWidth)
Constructs a TextTable with five columns as follows: required option/parameter marker (width: 2, indent: 0, TRUNCATE on overflow) short option name (width: 2, indent: 0, TRUNCATE on overflow) comma separator (width: 1, indent: 0, TRUNCATE on overflow) long option name(s) (width: 24, indent: 1, SPAN multiple columns on overflow) description line(s) (width: 51, indent: 1, WRAP to next row on overflow)boolean
isAdjustLineBreaksForWideCJKCharacters()
CommandLine.Help.TextTable.Cell
putValue(int row, int col, CommandLine.Help.Ansi.Text value)
Writes the specified value into the cell at the specified row and column and returns the last row and column written to.int
rowCount()
Returns the current number of rows of thisTextTable
.CommandLine.Help.TextTable
setAdjustLineBreaksForWideCJKCharacters(boolean adjustLineBreaksForWideCJKCharacters)
CommandLine.Help.Ansi.Text
textAt(int row, int col)
Returns theText
slot at the specified row and column to write a text value into.String
toString()
StringBuilder
toString(StringBuilder text)
Copies the text representation that we built up from the options into the specified StringBuilder.
-
-
-
Field Detail
-
columnValues
protected final List<CommandLine.Help.Ansi.Text> columnValues
Thechar[]
slots of theTextTable
to copy text values into.
-
indentWrappedLines
public int indentWrappedLines
By default, indent wrapped lines by 2 spaces.
-
-
Constructor Detail
-
TextTable
@Deprecated protected TextTable(CommandLine.Help.Ansi ansi, CommandLine.Help.Column[] columns)
Deprecated.
-
TextTable
protected TextTable(CommandLine.Help.ColorScheme colorScheme, CommandLine.Help.Column[] columns)
-
-
Method Detail
-
forDefaultColumns
@Deprecated public static CommandLine.Help.TextTable forDefaultColumns(CommandLine.Help.Ansi ansi, int usageHelpWidth)
Deprecated.Constructs a TextTable with five columns as follows:- required option/parameter marker (width: 2, indent: 0, TRUNCATE on overflow)
- short option name (width: 2, indent: 0, TRUNCATE on overflow)
- comma separator (width: 1, indent: 0, TRUNCATE on overflow)
- long option name(s) (width: 24, indent: 1, SPAN multiple columns on overflow)
- description line(s) (width: 51, indent: 1, WRAP to next row on overflow)
- Parameters:
ansi
- whether to emit ANSI escape codes or notusageHelpWidth
- the total width of the columns combined
-
forDefaultColumns
@Deprecated public static CommandLine.Help.TextTable forDefaultColumns(CommandLine.Help.Ansi ansi, int longOptionsColumnWidth, int usageHelpWidth)
Deprecated.Constructs a TextTable with five columns as follows:- required option/parameter marker (width: 2, indent: 0, TRUNCATE on overflow)
- short option name (width: 2, indent: 0, TRUNCATE on overflow)
- comma separator (width: 1, indent: 0, TRUNCATE on overflow)
- long option name(s) (width: 24, indent: 1, SPAN multiple columns on overflow)
- description line(s) (width: 51, indent: 1, WRAP to next row on overflow)
- Parameters:
ansi
- whether to emit ANSI escape codes or notlongOptionsColumnWidth
- the width of the long options columnusageHelpWidth
- the total width of the columns combined
-
forDefaultColumns
public static CommandLine.Help.TextTable forDefaultColumns(CommandLine.Help.ColorScheme colorScheme, int longOptionsColumnWidth, int usageHelpWidth)
Constructs a TextTable with five columns as follows:- required option/parameter marker (width: 2, indent: 0, TRUNCATE on overflow)
- short option name (width: 2, indent: 0, TRUNCATE on overflow)
- comma separator (width: 1, indent: 0, TRUNCATE on overflow)
- long option name(s) (width: 24, indent: 1, SPAN multiple columns on overflow)
- description line(s) (width: 51, indent: 1, WRAP to next row on overflow)
- Parameters:
colorScheme
- the styles and ANSI mode to use for embedded markuplongOptionsColumnWidth
- the width of the long options columnusageHelpWidth
- the total width of the columns combined- Since:
- 4.2
-
forColumnWidths
@Deprecated public static CommandLine.Help.TextTable forColumnWidths(CommandLine.Help.Ansi ansi, int... columnWidths)
Deprecated.Constructs a new TextTable with columns with the specified width, all SPANning multiple columns on overflow except the last column which WRAPS to the next row.- Parameters:
ansi
- whether to emit ANSI escape codes or notcolumnWidths
- the width of each table column (all columns have zero indent)
-
forColumnWidths
public static CommandLine.Help.TextTable forColumnWidths(CommandLine.Help.ColorScheme colorScheme, int... columnWidths)
Constructs a new TextTable with columns with the specified width, all SPANning multiple columns on overflow except the last column which WRAPS to the next row.- Parameters:
colorScheme
- the styles and ANSI mode to use for embedded markupcolumnWidths
- the width of each table column (all columns have zero indent)- Since:
- 4.2
-
forColumns
@Deprecated public static CommandLine.Help.TextTable forColumns(CommandLine.Help.Ansi ansi, CommandLine.Help.Column... columns)
Deprecated.Constructs aTextTable
with the specified columns.- Parameters:
ansi
- whether to emit ANSI escape codes or notcolumns
- columns to construct this TextTable with
-
forColumns
public static CommandLine.Help.TextTable forColumns(CommandLine.Help.ColorScheme colorScheme, CommandLine.Help.Column... columns)
Constructs aTextTable
with the specified columns.- Parameters:
colorScheme
- the styles and ANSI mode to use for embedded markupcolumns
- columns to construct this TextTable with- Since:
- 4.2
-
isAdjustLineBreaksForWideCJKCharacters
public boolean isAdjustLineBreaksForWideCJKCharacters()
- Since:
- 4.0
- See Also:
CommandLine.Model.UsageMessageSpec.adjustLineBreaksForWideCJKCharacters()
-
setAdjustLineBreaksForWideCJKCharacters
public CommandLine.Help.TextTable setAdjustLineBreaksForWideCJKCharacters(boolean adjustLineBreaksForWideCJKCharacters)
- Since:
- 4.0
- See Also:
CommandLine.Model.UsageMessageSpec.adjustLineBreaksForWideCJKCharacters(boolean)
-
columns
public CommandLine.Help.Column[] columns()
The column definitions of this table.
-
textAt
public CommandLine.Help.Ansi.Text textAt(int row, int col)
Returns theText
slot at the specified row and column to write a text value into.- Parameters:
row
- the row of the cell whose Text to returncol
- the column of the cell whose Text to return- Returns:
- the Text object at the specified row and column
- Since:
- 2.0
-
cellAt
@Deprecated public CommandLine.Help.Ansi.Text cellAt(int row, int col)
Deprecated.usetextAt(int, int)
insteadReturns theText
slot at the specified row and column to write a text value into.- Parameters:
row
- the row of the cell whose Text to returncol
- the column of the cell whose Text to return- Returns:
- the Text object at the specified row and column
-
rowCount
public int rowCount()
Returns the current number of rows of thisTextTable
.- Returns:
- the current number of rows in this TextTable
-
addEmptyRow
public void addEmptyRow()
Adds the requiredchar[]
slots for a new row to thecolumnValues
field.
-
addRowValues
public void addRowValues(String... values)
Delegates toaddRowValues(CommandLine.Help.Ansi.Text...)
, after ensuring that multi-line values are layed out in the correct row and column.- Parameters:
values
- the text values to display in each column of the current row
-
addRowValues
public void addRowValues(CommandLine.Help.Ansi.Text... values)
Adds a new empty row, then callsputValue
for each of the specified values, adding more empty rows if the return value indicates that the value spanned multiple columns or was wrapped to multiple rows.- Parameters:
values
- the values to write into a new row in this TextTable- Throws:
IllegalArgumentException
- if the number of values exceeds the number of Columns in this table
-
putValue
public CommandLine.Help.TextTable.Cell putValue(int row, int col, CommandLine.Help.Ansi.Text value)
Writes the specified value into the cell at the specified row and column and returns the last row and column written to. Depending on the Column'sOverflow
policy, the value may span multiple columns or wrap to multiple rows when larger than the column width.- Parameters:
row
- the target row in the tablecol
- the target column in the table to write tovalue
- the value to write- Returns:
- a Cell indicating the position in the table that was last written to (since 2.0)
- Throws:
IllegalArgumentException
- if the specified row exceeds the table's row count- Since:
- 2.0 (previous versions returned a
java.awt.Point
object)
-
toString
public StringBuilder toString(StringBuilder text)
Copies the text representation that we built up from the options into the specified StringBuilder.- Parameters:
text
- the StringBuilder to write into- Returns:
- the specified StringBuilder object (to allow method chaining and a more fluid API)
-
-