X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderBookInfo.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderBookInfo.java;h=0000000000000000000000000000000000000000;hb=d7367179b645781b4e0e4fc24893cb1e6725c14c;hp=3cef8cfddcd48232875e64be1ee5315abfac9616;hpb=1387a30ab59dbf4071f2c5e5e0e08ca98c75b726;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderBookInfo.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderBookInfo.java deleted file mode 100644 index 3cef8cf..0000000 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderBookInfo.java +++ /dev/null @@ -1,258 +0,0 @@ -package be.nikiroo.fanfix.reader.ui; - -import java.io.IOException; - -import be.nikiroo.fanfix.bundles.StringIdGui; -import be.nikiroo.fanfix.data.MetaData; -import be.nikiroo.fanfix.data.Story; -import be.nikiroo.fanfix.library.BasicLibrary; -import be.nikiroo.utils.Image; -import be.nikiroo.utils.StringUtils; - -/** - * Some meta information related to a "book" (which can either be a - * {@link Story}, a fake-story grouping some authors or a fake-story grouping - * some sources/types). - * - * @author niki - */ -public class GuiReaderBookInfo { - /** - * The type of {@link GuiReaderBook} (i.e., related to a story or to something else that - * can encompass stories). - * - * @author niki - */ - public enum Type { - /** A normal story, which can be "read". */ - STORY, - /** - * A special, empty story that represents a source/type common to one or - * more normal stories. - */ - SOURCE, - /** A special, empty story that represents an author. */ - AUTHOR - } - - private Type type; - private String id; - private String value; - private String count; - - private MetaData meta; - - /** - * For private use, see the "fromXXX" constructors instead for public use. - * - * @param type - * the type of book - * @param id - * the main id, which must uniquely identify this book and will - * be used as a unique ID later on - * @param value - * the main value to show (see - * {@link GuiReaderBookInfo#getMainInfo()}) - */ - private GuiReaderBookInfo(Type type, String id, String value) { - this.type = type; - this.id = id; - this.value = value; - } - - /** - * The type of {@link GuiReaderBookInfo}. - * - * @return the type - */ - public Type getType() { - return type; - } - - /** - * Get the main info to display for this book (a title, an author, a - * source/type name...). - *

- * Note that when {@link MetaData} about the book are present, the title - * inside is returned instead of the actual value (that way, we can update - * the {@link MetaData} and see the changes here). - * - * @return the main info, usually the title - */ - public String getMainInfo() { - if (meta != null) { - return meta.getTitle(); - } - - return value; - } - - /** - * Get the secondary info, of the given type. - * - * @param seeCount - * TRUE for word/image/story count, FALSE for author name - * - * @return the secondary info - */ - public String getSecondaryInfo(boolean seeCount) { - String author = meta == null ? null : meta.getAuthor(); - String secondaryInfo = seeCount ? count : author; - - if (secondaryInfo != null && !secondaryInfo.trim().isEmpty()) { - secondaryInfo = "(" + secondaryInfo + ")"; - } else { - secondaryInfo = ""; - } - - return secondaryInfo; - } - - /** - * A unique ID for this {@link GuiReaderBookInfo}. - * - * @return the unique ID - */ - public String getId() { - return id; - } - - /** - * The {@link MetaData} associated with this book, if this book is a - * {@link Story}. - *

- * Can be NULL for non-story books (authors or sources/types). - * - * @return the {@link MetaData} or NULL - */ - public MetaData getMeta() { - return meta; - } - - /** - * Get the base image to use to represent this book. - *

- * The image is NOT resized in any way, this is the original version. - *

- * It can be NULL if no image can be found for this book. - * - * @param lib - * the {@link BasicLibrary} to use to fetch the image - * - * @return the base image - * - * @throws IOException - * in case of I/O error - */ - public Image getBaseImage(BasicLibrary lib) throws IOException { - switch (type) { - case STORY: - if (meta.getCover() != null) { - return meta.getCover(); - } - - if (meta.getLuid() != null) { - return lib.getCover(meta.getLuid()); - } - - return null; - case SOURCE: - return lib.getSourceCover(value); - case AUTHOR: - return lib.getAuthorCover(value); - } - - return null; - } - - /** - * Create a new book describing the given {@link Story}. - * - * @param meta - * the {@link MetaData} representing the {@link Story} - * - * @return the book - */ - static public GuiReaderBookInfo fromMeta(MetaData meta) { - String uid = meta.getUuid(); - if (uid == null || uid.trim().isEmpty()) { - uid = meta.getLuid(); - } - if (uid == null || uid.trim().isEmpty()) { - uid = meta.getUrl(); - } - - GuiReaderBookInfo info = new GuiReaderBookInfo(Type.STORY, uid, - meta.getTitle()); - - info.meta = meta; - info.count = StringUtils.formatNumber(meta.getWords()); - if (!info.count.isEmpty()) { - info.count = GuiReader.trans( - meta.isImageDocument() ? StringIdGui.BOOK_COUNT_IMAGES - : StringIdGui.BOOK_COUNT_WORDS, info.count); - } - - return info; - } - - /** - * Create a new book describing the given source/type. - * - * @param lib - * the {@link BasicLibrary} to use to retrieve some more - * information about the source - * @param source - * the source name - * - * @return the book - */ - static public GuiReaderBookInfo fromSource(BasicLibrary lib, String source) { - GuiReaderBookInfo info = new GuiReaderBookInfo(Type.SOURCE, "source_" - + source, source); - - int size = 0; - try { - size = lib.getList().filter(source, null, null).size(); - } catch (IOException e) { - } - - info.count = StringUtils.formatNumber(size); - if (!info.count.isEmpty()) { - info.count = GuiReader.trans(StringIdGui.BOOK_COUNT_STORIES, - info.count); - } - - return info; - } - - /** - * Create a new book describing the given author. - * - * @param lib - * the {@link BasicLibrary} to use to retrieve some more - * information about the author - * @param author - * the author name - * - * @return the book - */ - static public GuiReaderBookInfo fromAuthor(BasicLibrary lib, String author) { - GuiReaderBookInfo info = new GuiReaderBookInfo(Type.AUTHOR, "author_" - + author, author); - - int size = 0; - try { - size = lib.getList().filter(null, author, null).size(); - } catch (IOException e) { - } - - info.count = StringUtils.formatNumber(size); - if (!info.count.isEmpty()) { - info.count = GuiReader.trans(StringIdGui.BOOK_COUNT_STORIES, - info.count); - } - - return info; - } -}