X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FBasicOutput.java;h=62a008c001b8b3697671079ab34b839fef74bf31;hp=30c2ac66642d2608391b8543af76a9366e679b9e;hb=HEAD;hpb=5083ef84efb7e001c0b5de235d3424e1b59c62f4 diff --git a/src/be/nikiroo/fanfix/output/BasicOutput.java b/src/be/nikiroo/fanfix/output/BasicOutput.java index 30c2ac6..62a008c 100644 --- a/src/be/nikiroo/fanfix/output/BasicOutput.java +++ b/src/be/nikiroo/fanfix/output/BasicOutput.java @@ -12,6 +12,7 @@ import be.nikiroo.fanfix.data.Paragraph; import be.nikiroo.fanfix.data.Paragraph.ParagraphType; import be.nikiroo.fanfix.data.Story; import be.nikiroo.utils.Progress; +import be.nikiroo.utils.Version; /** * This class is the base class used by the other output classes. It can be used @@ -62,13 +63,13 @@ public abstract class BasicOutput { StringId id = longDesc ? StringId.OUTPUT_DESC : StringId.OUTPUT_DESC_SHORT; - String desc = Instance.getTrans().getStringX(id, this.name()); + String desc = Instance.getInstance().getTrans().getStringX(id, this.name()); if (desc == null) { - desc = Instance.getTrans().getString(id, this); + desc = Instance.getInstance().getTrans().getString(id, this.toString()); } - if (desc == null) { + if (desc == null || desc.isEmpty()) { desc = this.toString(); } @@ -79,14 +80,15 @@ public abstract class BasicOutput { * The default extension to add to the output files. * * @param readerTarget - * the target to point to to read the {@link Story} (for - * instance, the main entry point if this {@link Story} is in - * a directory bundle) + * TRUE to point to the main {@link Story} entry point for a + * reader (for instance, the main entry point if this + * {@link Story} is in a directory bundle), FALSE to point to + * the main file even if it is a directory for instance * * @return the extension */ public String getDefaultExtension(boolean readerTarget) { - BasicOutput output = BasicOutput.getOutput(this, false); + BasicOutput output = BasicOutput.getOutput(this, false, false); if (output != null) { return output.getDefaultExtension(readerTarget); } @@ -149,7 +151,8 @@ public abstract class BasicOutput { } /** The creator name (this program, by me!) */ - static final String EPUB_CREATOR = "Fanfix (by Niki)"; + static protected final String EPUB_CREATOR = "Fanfix " + + Version.getCurrentVersion() + " (by Niki)"; /** The current best name for an image */ private String imageName; @@ -264,18 +267,18 @@ public abstract class BasicOutput { * * @param type * the new type - * @param writeInfo - * TRUE to enable the creation of a .info file * @param writeCover * TRUE to enable the creation of a cover if possible + * @param writeInfo + * TRUE to enable the creation of a .info file * * @return this */ - protected BasicOutput setType(OutputType type, boolean writeCover, - boolean writeInfo) { + protected BasicOutput setType(OutputType type, boolean writeInfo, + boolean writeCover) { this.type = type; - this.writeCover = writeCover; this.writeInfo = writeInfo; + this.writeCover = writeCover; return this; } @@ -284,9 +287,10 @@ public abstract class BasicOutput { * The default extension to add to the output files. * * @param readerTarget - * the target to point to to read the {@link Story} (for - * instance, the main entry point if this {@link Story} is in a - * directory bundle) + * TRUE to point to the main {@link Story} entry point for a + * reader (for instance, the main entry point if this + * {@link Story} is in a directory bundle), FALSE to point to the + * main file even if it is a directory for instance * * @return the extension */ @@ -295,27 +299,21 @@ public abstract class BasicOutput { return ""; } - @SuppressWarnings("unused") protected void writeStoryHeader(Story story) throws IOException { } - @SuppressWarnings("unused") protected void writeChapterHeader(Chapter chap) throws IOException { } - @SuppressWarnings("unused") protected void writeParagraphHeader(Paragraph para) throws IOException { } - @SuppressWarnings("unused") protected void writeStoryFooter(Story story) throws IOException { } - @SuppressWarnings("unused") protected void writeChapterFooter(Chapter chap) throws IOException { } - @SuppressWarnings("unused") protected void writeParagraphFooter(Paragraph para) throws IOException { } @@ -328,16 +326,16 @@ public abstract class BasicOutput { String chapterNameNum = String.format("%03d", 0); String paragraphNumber = String.format("%04d", 0); - imageName = paragraphNumber + "_" + chapterNameNum + ".png"; + imageName = paragraphNumber + "_" + chapterNameNum; if (story.getMeta() != null) { story.getMeta().setType("" + getType()); } - if (writeCover) { + if (isWriteCover()) { InfoCover.writeCover(targetDir, targetName, story.getMeta()); } - if (writeInfo) { + if (isWriteInfo()) { InfoCover.writeInfo(targetDir, targetName, story.getMeta()); } @@ -376,13 +374,13 @@ public abstract class BasicOutput { int num = 0; String paragraphNumber = String.format("%04d", num++); - imageName = chapterNameNum + "_" + paragraphNumber + ".png"; + imageName = chapterNameNum + "_" + paragraphNumber; writeChapterHeader(chap); int i = 1; for (Paragraph para : chap) { paragraphNumber = String.format("%04d", num++); - imageName = chapterNameNum + "_" + paragraphNumber + ".png"; + imageName = chapterNameNum + "_" + paragraphNumber; writeParagraph(para); if (chapPg != null) { chapPg.setProgress(i++); @@ -514,29 +512,33 @@ public abstract class BasicOutput { * * @param type * the type - * @param infoCover - * force the .info file and the cover to be saved next + * @param writeCover + * TRUE to enable the creation of a cover if possible to be saved + * next to the main target file + * @param writeInfo + * TRUE to enable the creation of a .info file to be saved next * to the main target file * * @return the {@link BasicOutput} */ - public static BasicOutput getOutput(OutputType type, boolean infoCover) { + public static BasicOutput getOutput(OutputType type, boolean writeInfo, + boolean writeCover) { if (type != null) { switch (type) { case EPUB: - return new Epub().setType(type, infoCover, infoCover); + return new Epub().setType(type, writeInfo, writeCover); case TEXT: - return new Text().setType(type, true, infoCover); + return new Text().setType(type, writeInfo, true); case INFO_TEXT: return new InfoText().setType(type, true, true); case SYSOUT: return new Sysout().setType(type, false, false); case CBZ: - return new Cbz().setType(type, infoCover, infoCover); + return new Cbz().setType(type, writeInfo, writeCover); case LATEX: - return new LaTeX().setType(type, infoCover, infoCover); + return new LaTeX().setType(type, writeInfo, writeCover); case HTML: - return new Html().setType(type, infoCover, infoCover); + return new Html().setType(type, writeInfo, writeCover); } }