X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2FLocalReaderBook.java;h=8e353d91472cb3b738490ca3c108a92a7de8bc55;hp=7fc8171c3c17cbe155f4653e2a1ef5470d3f8493;hb=b4dc6ab518ded2dd92e4cbb02ac615b1d57e8e6d;hpb=333f0e7b5e333e8f6222881ce35398f403fc4121 diff --git a/src/be/nikiroo/fanfix/reader/LocalReaderBook.java b/src/be/nikiroo/fanfix/reader/LocalReaderBook.java index 7fc8171..8e353d9 100644 --- a/src/be/nikiroo/fanfix/reader/LocalReaderBook.java +++ b/src/be/nikiroo/fanfix/reader/LocalReaderBook.java @@ -2,7 +2,10 @@ package be.nikiroo.fanfix.reader; import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.Polygon; +import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; @@ -46,10 +49,20 @@ class LocalReaderBook extends JPanel { public void action(LocalReaderBook book); } + private static final int COVER_WIDTH = 100; + private static final int COVER_HEIGHT = 150; + private static final int SPINE_WIDTH = 5; + private static final int SPINE_HEIGHT = 5; + private static final int HOFFSET = 20; + private static final Color SPINE_COLOR_BOTTOM = new Color(180, 180, 180); + private static final Color SPINE_COLOR_RIGHT = new Color(100, 100, 100); + private static final int TEXT_WIDTH = COVER_WIDTH + 40; + private static final int TEXT_HEIGHT = 50; + private static final String AUTHOR_COLOR = "#888888"; + private static final long serialVersionUID = 1L; private JLabel icon; - private JLabel title; - private JLabel author; + private JLabel tt; private boolean selected; private boolean hovered; private Date lastClick; @@ -58,23 +71,38 @@ class LocalReaderBook extends JPanel { public LocalReaderBook(MetaData meta) { if (meta.getCover() != null) { - BufferedImage resizedImage = new BufferedImage(100, 150, + BufferedImage resizedImage = new BufferedImage(SPINE_WIDTH + + COVER_WIDTH, SPINE_HEIGHT + COVER_HEIGHT + HOFFSET, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D g = resizedImage.createGraphics(); - g.drawImage(meta.getCover(), 0, 0, 100, 150, null); + g.setColor(Color.white); + g.fillRect(0, HOFFSET, COVER_WIDTH, COVER_HEIGHT); + g.drawImage(meta.getCover(), 0, HOFFSET, COVER_WIDTH, COVER_HEIGHT, + null); g.dispose(); icon = new JLabel(new ImageIcon(resizedImage)); } else { + // TODO: a big black "X" ? icon = new JLabel(" [ no cover ] "); } - title = new JLabel(meta.getTitle()); - author = new JLabel("by " + meta.getAuthor()); - - this.setLayout(new BorderLayout()); + String optAuthor = meta.getAuthor(); + if (optAuthor != null && !optAuthor.isEmpty()) { + optAuthor = "(" + optAuthor + ")"; + } + tt = new JLabel( + String.format( + "" + + "
" + + "%s" + "