summaryrefslogtreecommitdiffstats
path: root/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java
diff options
context:
space:
mode:
Diffstat (limited to 'openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java')
-rw-r--r--openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java
new file mode 100644
index 0000000..b49ede5
--- /dev/null
+++ b/openstack-console/src/main/java/com/woorea/openstack/console/utils/Table.java
@@ -0,0 +1,81 @@
+package com.woorea.openstack.console.utils;
+
+
+public class Table {
+
+ private StringBuilder sb = new StringBuilder();
+
+ private TableModel<?> model;
+
+ public Table(TableModel<?> model) {
+ this.model = model;
+ }
+
+ public StringBuilder render() {
+ header();
+ for(String[] row : model.getRows()) {
+ int i = 0;
+ for(String column : row) {
+ Column columnModel = model.getHeaders()[i];
+ sb.append("| ");
+ if(column != null) {
+ if(Column.ALIGN_RIGHT == columnModel.getAlign()) {
+ for(int j = 0; j < columnModel.getSize() - column.length(); j++) {
+ sb.append(" ");
+ }
+ }
+ sb.append(column.length() <= columnModel.getSize() ? column : column.substring(0, columnModel.getSize()));
+ if(Column.ALIGN_LEFT == columnModel.getAlign()) {
+ for(int j = 0; j < columnModel.getSize() - column.length(); j++) {
+ sb.append(" ");
+ }
+ }
+ } else {
+ for(int k = 0; k < columnModel.getSize(); k++) {
+ sb.append(" ");
+ }
+ }
+ sb.append(" ");
+ i++;
+ }
+ sb.append("|\n");
+ }
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+ return sb;
+ }
+
+ public void header() {
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+
+ for(Column c : model.getHeaders()) {
+ sb.append("| ");
+ sb.append(c.getName());
+ for(int i = 0; i < c.getSize() - c.getName().length(); i++) {
+ sb.append(" ");
+ }
+ sb.append(" ");
+ }
+ sb.append("|\n");
+
+ for(Column c : model.getHeaders()) {
+ sb.append("+");
+ for(int i = 0; i < c.getSize() + 2; i++) {
+ sb.append("-");
+ }
+ }
+ sb.append("+\n");
+ }
+
+}