t2

package t2

Type members

Classlikes

trait Table

Defines table.

Defines table.

How to Create Table

A Table can be created using a factory defined in companion object, or it can be built incrementally using a TableBuilder.

The two tables created in the example below are effectively the same.

// Create table with data supplied as Seq[Seq[String]]
val table1 = t2.Table(
 Seq(
   Seq("#", "Effective Date", "Currency Code", "Exchange Rate"),
   Seq("1", "2021-01-04", "USD", "0.690236"),
   Seq("2", "2021-01-05", "USD", "0.690627"),
   Seq("3", "2021-01-06", "USD", "0.689332")
 )
)

// Incrementally build table by adding value sequences
val table2 = t2.TableBuilder()
 .add("#", "Effective Date", "Currency Code", "Exchange Rate")
 .add("1", "2021-01-04", "USD", "0.690236")
 .add("2", "2021-01-05", "USD", "0.690627")
 .add("3", "2021-01-06", "USD", "0.689332")
 .build()

// Assert equality
assert(table1.rows == table2.rows)
See also:
Companion:
object
object Table

Provides Table factory.

Provides Table factory.

Companion:
class

Defines table builder.

Defines table builder.

Usage

Below is an example of how to create and use the default TableBuilder.

// Build table with first row as table header
val table = t2.TableBuilder()
 .add("#", "Effective Date", "Currency Code", "Exchange Rate")
 .add("1", "2021-01-04", "USD", "0.690236")
 .add("2", "2021-01-05", "USD", "0.690627")
 .add("3", "2021-01-06", "USD", "0.689332")
 .build()
See also:
Companion:
object

Provides TableBuilder factory.

Provides TableBuilder factory.

Companion:
class

Defines table writer.

Defines table writer.

Usage

Below is an example of how to create, configure, and use the default TableWriter.

// Build table with first row as table header
val table = t2.TableBuilder()
 .add("#", "Effective Date", "Currency Code", "Exchange Rate")
 .add("1", "2021-01-04", "USD", "0.690236")
 .add("2", "2021-01-05", "USD", "0.690627")
 .add("3", "2021-01-06", "USD", "0.689332")
 .build()

// Create table writer with supplied configuration
val writer = t2.TableWriter(
 "ansiColorEnabled" -> "true",
 "tableBorderColor" -> "cyan",
 "tableHeaderColor" -> "black,yellowBackground",
 "bodyRuleColor"    -> "yellow",
 "rowHeaderEnabled" -> "true",
 "rowHeaderColor"   -> "bold,cyan",
 "columnRightAlign" -> "0,3" // Right align first and last columns
)

// Write table to stdout
writer.write(System.out, table)

The table writer can be configured for changing such things as cell padding, character used for table borders, and more.

See also:
Companion:
object

Provides TableWriter factory.

Provides TableWriter factory.

Writer Configuration

The following keys can be supplied to configure writer.

KeyDefault Value
ansiColorEnabled"false"
defaultColor AnsiColor.RESET
leftMarginSize"0"
rightMarginSize"0"
tableBorderEnabled"true"
tableBorderColor defaultColor
tableBorderChar"="
tableHeaderEnabled"true"
tableHeaderColor defaultColor
tableFooterEnabled"false"
tableFooterColor defaultColor
bodyRuleEnabled"true"
bodyRuleColor defaultColor
bodyRuleChar"-"
rowHeaderEnabled"false"
rowHeaderColor defaultColor
columnRightAlign ""
cellColor defaultColor
cellPadSize"1"
cellSpaceSize"0"
cellSpaceColor ""
maxValueSize"20"
nullValue""
truncateEnabled"true"

† Defined as AnsiColor values (e.g., AnsiColor.BLACK).

‡ Defined as comma- or space-delimited list of column indexes.

ANSI colors can also be suppplied as a comma- or space-delimited list of any combination of following values:

  • reset
  • bold
  • underlined
  • blink
  • reversed
  • invisible
  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBackground
  • redBackground
  • greenBackground
  • yellowBackground
  • blueBackground
  • magentaBackground
  • cyanBackground
  • whiteBackground
Companion:
class