remove reader ui/tui
[fanfix.git] / src / be / nikiroo / fanfix / reader / ui / GuiReaderBookInfo.java
diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderBookInfo.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderBookInfo.java
deleted file mode 100644 (file)
index 3cef8cf..0000000
+++ /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...).
-        * <p>
-        * 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}.
-        * <p>
-        * 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.
-        * <p>
-        * The image is <b>NOT</b> resized in any way, this is the original version.
-        * <p>
-        * 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;
-       }
-}