1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Fri Jan 03 00:27:16 2014 +0100
1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Fri Jan 03 21:36:00 2014 +0100
1.3 @@ -36,7 +36,7 @@
1.4 public static final String PROPERTY_ASCII = "ascii";
1.5 public static final String PROPERTY_COLORFUL = "color";
1.6 public static final String PROPERTY_TRIM = "trim";
1.7 - private ColorfulPrintWriter out;
1.8 + protected ColorfulPrintWriter out;
1.9 private boolean firstResult = true;
1.10 private int[] columnWidth;
1.11 /**
1.12 @@ -139,6 +139,10 @@
1.13 @Override
1.14 public void writeColumnValue(Object value) {
1.15 super.writeColumnValue(value);
1.16 + writeColumnValueInternal(value);
1.17 + }
1.18 +
1.19 + protected void writeColumnValueInternal(Object value) {
1.20
1.21 if (isCurrentColumnFirst()) {
1.22 printTableIndent();
1.23 @@ -147,14 +151,8 @@
1.24 printTableBorder(" │ ");
1.25 }
1.26
1.27 - String[] valueParts = toString(value).split("\n");
1.28 - for (int i = 0; i < valueParts.length; i++) {
1.29 - String valuePart = valueParts[i];
1.30 - out.print(TerminalColor.Cyan, valuePart);
1.31 - if (i < valueParts.length - 1) {
1.32 - out.print(TerminalColor.Red, "↲");
1.33 - }
1.34 - }
1.35 + String valueString = toString(value);
1.36 + printValueWithNewLinesReplaced(valueString);
1.37
1.38 if (isCurrentColumnLast()) {
1.39 printTableBorder(" │");
1.40 @@ -162,7 +160,7 @@
1.41
1.42 }
1.43
1.44 - private int getColumnWidth(int columnNumber) {
1.45 + protected int getColumnWidth(int columnNumber) {
1.46 return columnWidth[columnNumber - 1];
1.47 }
1.48
1.49 @@ -196,6 +194,10 @@
1.50 @Override
1.51 public void writeEndRow() {
1.52 super.writeEndRow();
1.53 + writeEndRowInternal();
1.54 + }
1.55 +
1.56 + public void writeEndRowInternal() {
1.57 out.println();
1.58 out.flush();
1.59 }
1.60 @@ -253,7 +255,7 @@
1.61 }
1.62 }
1.63
1.64 - private void printTableBorder(String border) {
1.65 + protected void printTableBorder(String border) {
1.66 if (asciiNostalgia) {
1.67 border = border.replaceAll("─", "-");
1.68 border = border.replaceAll("│", "|");
1.69 @@ -263,7 +265,18 @@
1.70 out.print(TerminalColor.Green, border);
1.71 }
1.72
1.73 - private void printTableIndent() {
1.74 + protected void printTableIndent() {
1.75 out.print(" ");
1.76 }
1.77 +
1.78 + protected void printValueWithNewLinesReplaced(String valueString) {
1.79 + String[] valueParts = valueString.split("\n");
1.80 + for (int i = 0; i < valueParts.length; i++) {
1.81 + String valuePart = valueParts[i];
1.82 + out.print(TerminalColor.Cyan, valuePart);
1.83 + if (i < valueParts.length - 1) {
1.84 + out.print(TerminalColor.Red, "↲");
1.85 + }
1.86 + }
1.87 + }
1.88 }