Initial commit (working)
[fanfix.git] / src / be / nikiroo / fanfix / output / InfoText.java
diff --git a/src/be/nikiroo/fanfix/output/InfoText.java b/src/be/nikiroo/fanfix/output/InfoText.java
new file mode 100644 (file)
index 0000000..6937685
--- /dev/null
@@ -0,0 +1,74 @@
+package be.nikiroo.fanfix.output;
+
+import java.io.IOException;
+
+import be.nikiroo.fanfix.Instance;
+import be.nikiroo.fanfix.bundles.StringId;
+import be.nikiroo.fanfix.data.Chapter;
+import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
+
+class InfoText extends Text {
+       // quote chars
+       private char openQuote = Instance.getTrans().getChar(
+                       StringId.OPEN_SINGLE_QUOTE);
+       private char closeQuote = Instance.getTrans().getChar(
+                       StringId.CLOSE_SINGLE_QUOTE);
+       private char openDoubleQuote = Instance.getTrans().getChar(
+                       StringId.OPEN_DOUBLE_QUOTE);
+       private char closeDoubleQuote = Instance.getTrans().getChar(
+                       StringId.CLOSE_DOUBLE_QUOTE);
+
+       @Override
+       protected String getDefaultExtension() {
+               return "";
+       }
+
+       @Override
+       protected void writeChapterHeader(Chapter chap) throws IOException {
+               writer.write("\n");
+
+               if (chap.getName() != null && !chap.getName().isEmpty()) {
+                       writer.write(Instance.getTrans().getString(StringId.CHAPTER_NAMED,
+                                       chap.getNumber(), chap.getName()));
+               } else {
+                       writer.write(Instance.getTrans().getString(
+                                       StringId.CHAPTER_UNNAMED, chap.getNumber()));
+               }
+
+               writer.write("\n\n");
+       }
+
+       @Override
+       protected void writeTextLine(ParagraphType type, String line)
+                       throws IOException {
+               switch (type) {
+               case NORMAL:
+               case QUOTE:
+                       StringBuilder builder = new StringBuilder();
+                       for (char car : line.toCharArray()) {
+                               if (car == '—') {
+                                       builder.append("---");
+                               } else if (car == '–') {
+                                       builder.append("--");
+                               } else if (car == openDoubleQuote) {
+                                       builder.append("\"");
+                               } else if (car == closeDoubleQuote) {
+                                       builder.append("\"");
+                               } else if (car == openQuote) {
+                                       builder.append("'");
+                               } else if (car == closeQuote) {
+                                       builder.append("'");
+                               } else {
+                                       builder.append(car);
+                               }
+                       }
+
+                       line = builder.toString();
+                       break;
+               default:
+                       break;
+               }
+
+               super.writeTextLine(type, line);
+       }
+}