1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Mon Dec 23 00:14:29 2013 +0100
1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Mon Dec 23 11:50:24 2013 +0100
1.3 @@ -18,6 +18,7 @@
1.4 package info.globalcode.sql.dk.formatting;
1.5
1.6 import info.globalcode.sql.dk.ColorfulPrintWriter;
1.7 +import static info.globalcode.sql.dk.ColorfulPrintWriter.*;
1.8
1.9 /**
1.10 *
1.11 @@ -27,6 +28,7 @@
1.12
1.13 public static final String NAME = "tabular";
1.14 private ColorfulPrintWriter out;
1.15 + private boolean firstResult = true;
1.16
1.17 public TabularFormatter(FormatterContext formatterContext) {
1.18 super(formatterContext);
1.19 @@ -34,14 +36,37 @@
1.20 }
1.21
1.22 @Override
1.23 + public void writeStartResultSet() {
1.24 + super.writeStartResultSet();
1.25 + printResultSeparator();
1.26 + }
1.27 +
1.28 + @Override
1.29 + public void writeColumnsHeader(ColumnsHeader header) {
1.30 + super.writeColumnsHeader(header);
1.31 +
1.32 + for (ColumnDescriptor cd : header.getColumnDescriptors()) {
1.33 + out.print(TerminalStyle.Bright, cd.getLabel());
1.34 + out.print(" (");
1.35 + out.print(cd.getTypeName());
1.36 + out.print(")");
1.37 + if (!cd.isLastColumn()) {
1.38 + out.print(TerminalColor.Green, " | ");
1.39 + }
1.40 + }
1.41 + out.println();
1.42 + out.flush();
1.43 + }
1.44 +
1.45 + @Override
1.46 public void writeColumnValue(Object value) {
1.47 super.writeColumnValue(value);
1.48
1.49 if (!isCurrentColumnFirst()) {
1.50 - out.print(ColorfulPrintWriter.TerminalColor.Green, " | ");
1.51 + out.print(TerminalColor.Green, " | ");
1.52 }
1.53 -
1.54 - out.print(ColorfulPrintWriter.TerminalColor.Cyan, String.valueOf(value));
1.55 +
1.56 + out.print(TerminalColor.Cyan, String.valueOf(value));
1.57 }
1.58
1.59 @Override
1.60 @@ -50,4 +75,40 @@
1.61 out.println();
1.62 out.flush();
1.63 }
1.64 +
1.65 + @Override
1.66 + public void writeEndResultSet() {
1.67 + super.writeEndResultSet();
1.68 + out.print(TerminalColor.Yellow, "Record count: ");
1.69 + out.println(getCurrentRowCount());
1.70 + out.flush();
1.71 + }
1.72 +
1.73 + @Override
1.74 + public void writeStartUpdatesResult() {
1.75 + super.writeStartUpdatesResult();
1.76 + printResultSeparator();
1.77 + }
1.78 +
1.79 + @Override
1.80 + public void writeUpdatedRowsCount(int updatedRowsCount) {
1.81 + super.writeUpdatedRowsCount(updatedRowsCount);
1.82 + out.print(TerminalColor.Red, "Updated records: ");
1.83 + out.println(updatedRowsCount);
1.84 + out.flush();
1.85 + }
1.86 +
1.87 + @Override
1.88 + public void writeEndDatabase() {
1.89 + super.writeEndDatabase();
1.90 + out.flush();
1.91 + }
1.92 +
1.93 + private void printResultSeparator() {
1.94 + if (firstResult) {
1.95 + firstResult = false;
1.96 + } else {
1.97 + out.println();
1.98 + }
1.99 + }
1.100 }