50 public void writeColumnsHeader(ColumnsHeader header) { |
51 public void writeColumnsHeader(ColumnsHeader header) { |
51 super.writeColumnsHeader(header); |
52 super.writeColumnsHeader(header); |
52 |
53 |
53 columnWidth = new int[header.getColumnCount()]; |
54 columnWidth = new int[header.getColumnCount()]; |
54 |
55 |
|
56 printTableIndent(); |
|
57 printTableBorder("╭"); |
55 for (ColumnDescriptor cd : header.getColumnDescriptors()) { |
58 for (ColumnDescriptor cd : header.getColumnDescriptors()) { |
|
59 setColumnWidth(cd.getColumnNumber(), cd.getLabel().length() + cd.getTypeName().length() + HEADER_TYPE_PREFIX.length() + HEADER_TYPE_SUFFIX.length()); |
|
60 if (!cd.isFirstColumn()) { |
|
61 printTableBorder("┬"); |
|
62 } |
|
63 printTableBorder(repeat('─', getColumnWidth(cd.getColumnNumber()) + 2)); |
|
64 } |
|
65 printTableBorder("╮"); |
|
66 out.println(); |
|
67 |
|
68 for (ColumnDescriptor cd : header.getColumnDescriptors()) { |
|
69 if (cd.isFirstColumn()) { |
|
70 printTableIndent(); |
|
71 printTableBorder("│ "); |
|
72 } else { |
|
73 printTableBorder(" │ "); |
|
74 } |
56 out.print(TerminalStyle.Bright, cd.getLabel()); |
75 out.print(TerminalStyle.Bright, cd.getLabel()); |
57 out.print(HEADER_TYPE_PREFIX); |
76 out.print(HEADER_TYPE_PREFIX); |
58 out.print(cd.getTypeName()); |
77 out.print(cd.getTypeName()); |
59 out.print(HEADER_TYPE_SUFFIX); |
78 out.print(HEADER_TYPE_SUFFIX); |
60 if (!cd.isLastColumn()) { |
79 if (cd.isLastColumn()) { |
61 out.print(TerminalColor.Green, " | "); |
80 printTableBorder(" │"); |
62 } |
81 } |
63 |
82 |
64 setColumnWidth(cd.getColumnNumber(), cd.getLabel().length() + cd.getTypeName().length() + HEADER_TYPE_PREFIX.length() + HEADER_TYPE_SUFFIX.length()); |
83 setColumnWidth(cd.getColumnNumber(), cd.getLabel().length() + cd.getTypeName().length() + HEADER_TYPE_PREFIX.length() + HEADER_TYPE_SUFFIX.length()); |
65 } |
84 } |
66 out.println(); |
85 out.println(); |
|
86 |
|
87 printTableIndent(); |
|
88 printTableBorder("├"); |
|
89 for (int i = 1; i <= header.getColumnCount(); i++) { |
|
90 if (i > 1) { |
|
91 printTableBorder("┼"); |
|
92 } |
|
93 printTableBorder(repeat('─', getColumnWidth(i) + 2)); |
|
94 } |
|
95 printTableBorder("┤"); |
|
96 out.println(); |
|
97 |
67 out.flush(); |
98 out.flush(); |
68 } |
99 } |
69 |
100 |
70 @Override |
101 @Override |
71 public void writeColumnValue(Object value) { |
102 public void writeColumnValue(Object value) { |
72 super.writeColumnValue(value); |
103 super.writeColumnValue(value); |
73 |
104 |
74 if (!isCurrentColumnFirst()) { |
105 if (isCurrentColumnFirst()) { |
75 out.print(TerminalColor.Green, " | "); |
106 printTableIndent(); |
|
107 printTableBorder("│ "); |
|
108 } else { |
|
109 printTableBorder(" │ "); |
76 } |
110 } |
77 |
111 |
78 out.print(TerminalColor.Cyan, toString(value)); |
112 out.print(TerminalColor.Cyan, toString(value)); |
|
113 |
|
114 if (isCurrentColumnLast()) { |
|
115 printTableBorder(" │"); |
|
116 } |
|
117 |
79 } |
118 } |
80 |
119 |
81 private int getColumnWidth(int columnNumber) { |
120 private int getColumnWidth(int columnNumber) { |
82 return columnWidth[columnNumber - 1]; |
121 return columnWidth[columnNumber - 1]; |
83 } |
122 } |
109 out.flush(); |
149 out.flush(); |
110 } |
150 } |
111 |
151 |
112 @Override |
152 @Override |
113 public void writeEndResultSet() { |
153 public void writeEndResultSet() { |
|
154 int columnCount = getCurrentColumnsHeader().getColumnCount(); |
114 super.writeEndResultSet(); |
155 super.writeEndResultSet(); |
|
156 |
|
157 printTableIndent(); |
|
158 printTableBorder("╰"); |
|
159 for (int i = 1; i <= columnCount; i++) { |
|
160 if (i > 1) { |
|
161 printTableBorder("┴"); |
|
162 } |
|
163 printTableBorder(repeat('─', getColumnWidth(i) + 2)); |
|
164 } |
|
165 printTableBorder("╯"); |
|
166 out.println(); |
|
167 |
|
168 |
115 out.print(TerminalColor.Yellow, "Record count: "); |
169 out.print(TerminalColor.Yellow, "Record count: "); |
116 out.println(getCurrentRowCount()); |
170 out.println(getCurrentRowCount()); |
|
171 out.bell(); |
117 out.flush(); |
172 out.flush(); |
118 } |
173 } |
119 |
174 |
120 @Override |
175 @Override |
121 public void writeStartUpdatesResult() { |
176 public void writeStartUpdatesResult() { |