Bug fixes + rework of BasicSupport
[gofetch.git] / src / be / nikiroo / gofetch / output / Gopher.java
index 97b7b9b5b1f4f45476c71883655cfbf15025e51d..12a420cd84482b988cde4775c6b29f3962fe574b 100644 (file)
@@ -1,9 +1,10 @@
 package be.nikiroo.gofetch.output;
 
-import be.nikiroo.gofetch.StringJustifier;
 import be.nikiroo.gofetch.data.Comment;
 import be.nikiroo.gofetch.data.Story;
-import be.nikiroo.gofetch.support.BasicSupport.Type;
+import be.nikiroo.gofetch.support.Type;
+import be.nikiroo.utils.StringUtils;
+import be.nikiroo.utils.StringUtils.Alignment;
 
 public class Gopher extends Output {
        static private final int LINE_SIZE = 67;
@@ -67,10 +68,13 @@ public class Gopher extends Output {
                }
 
                appendLeft(builder, menu, comment.getTitle(), "** ", "   ", space);
-               appendLeft(builder, menu, "(" + comment.getAuthor() + ")", "   ",
-                               "   ", space);
 
-               builder.append((menu ? "i" : "") + "\r\n");
+               if (comment.getAuthor() != null
+                               && !comment.getAuthor().trim().isEmpty()) {
+                       appendLeft(builder, menu, "(" + comment.getAuthor() + ")", "   ",
+                                       "   ", space);
+                       builder.append((menu ? "i" : "") + "\r\n");
+               }
 
                for (String line : comment.getContentLines()) {
                        int depth = 0;
@@ -117,6 +121,7 @@ public class Gopher extends Output {
                        builder.append("\r\n");
 
                        appendJustified(builder, false, story.getFullContent(), "    ");
+                       builder.append("\r\n");
                } else {
                        builder.append('0').append(story.getTitle()) //
                                        .append('\t').append(story.getSelector()) //
@@ -126,11 +131,13 @@ public class Gopher extends Output {
                        appendJustified(builder, true, story.getDetails(), "  ");
                        builder.append("i\r\n");
 
-                       appendJustified(builder, true, story.getContent(), "    ");
+                       String content = story.getContent();
+                       if (!content.isEmpty()) {
+                               appendJustified(builder, true, content, "    ");
+                               builder.append("i\r\n");
+                       }
                }
 
-               builder.append(resume ? "i" : "").append("\r\n");
-
                return builder;
        }
 
@@ -140,12 +147,14 @@ public class Gopher extends Output {
                if (allCaps) {
                        text = text.toUpperCase();
                }
-               
+
                int size = LINE_SIZE - space.length();
-               for (String line : StringJustifier.center(text, size)) {
-                       builder.append(menu ? "i" : "")
-                               .append(space)
-                               .append(line).append("\r\n");
+               for (String line : StringUtils
+                               .justifyText(text, size, Alignment.CENTER)) {
+                       builder.append(menu ? "i" : "") //
+                                       .append(space) //
+                                       .append(line) //
+                                       .append("\r\n");
                }
        }
 
@@ -153,11 +162,12 @@ public class Gopher extends Output {
                        String text, String space) {
                for (String line : text.split("\n")) {
                        int size = LINE_SIZE - space.length();
-                       for (String subline : StringJustifier.full(line, size)) {
-                               builder.append(menu ? "i" : "")
-                                       .append(space)
-                                       .append(subline)
-                                       .append("\r\n");
+                       for (String subline : StringUtils.justifyText(line, size,
+                                       Alignment.JUSTIFY)) {
+                               builder.append(menu ? "i" : "") //
+                                               .append(space) //
+                                               .append(subline) //
+                                               .append("\r\n");
                        }
                }
        }
@@ -171,10 +181,13 @@ public class Gopher extends Output {
                        String text, String prependFirst, String prependOthers, String space) {
                String prepend = prependFirst;
                for (String line : text.split("\n")) {
-                       for (String subline : StringJustifier.left(line,
-                                       LINE_SIZE - space.length())) {
-                               builder.append(menu ? "i" : "").append(space).append(prepend)
-                                               .append(subline).append("\r\n");
+                       for (String subline : StringUtils.justifyText(line, LINE_SIZE
+                                       - space.length(), Alignment.LEFT)) {
+                               builder.append(menu ? "i" : "") //
+                                               .append(space) //
+                                               .append(prepend) //
+                                               .append(subline) //
+                                               .append("\r\n");
                                prepend = prependOthers;
                        }
                }