1 package be
.nikiroo
.fanfix
.reader
.ui
;
3 import java
.awt
.BorderLayout
;
8 import javax
.swing
.BorderFactory
;
9 import javax
.swing
.BoxLayout
;
10 import javax
.swing
.ImageIcon
;
11 import javax
.swing
.JFrame
;
12 import javax
.swing
.JLabel
;
13 import javax
.swing
.JPanel
;
14 import javax
.swing
.JTextArea
;
16 import be
.nikiroo
.fanfix
.data
.MetaData
;
17 import be
.nikiroo
.fanfix
.data
.Story
;
18 import be
.nikiroo
.fanfix
.reader
.BasicReader
;
19 import be
.nikiroo
.fanfix
.reader
.Reader
;
22 * A frame displaying properties and other information of a {@link Story}.
26 public class GuiReaderPropertiesFrame
extends JFrame
{
27 private static final long serialVersionUID
= 1L;
30 * Create a new {@link GuiReaderPropertiesFrame}.
35 * the meta to describe
37 public GuiReaderPropertiesFrame(Reader reader
, GuiReaderBookInfo info
) {
38 MetaData meta
= info
.getMeta();
45 ImageIcon img
= GuiReaderCoverImager
.generateCoverIcon(
46 reader
.getLibrary(), info
);
49 setTitle(meta
.getLuid() + ": " + meta
.getTitle());
51 setSize(800, img
.getIconHeight() + 2 * top
);
52 setLayout(new BorderLayout());
55 JPanel mainPanel
= new JPanel(new BorderLayout());
56 JPanel mainPanelKeys
= new JPanel();
57 mainPanelKeys
.setLayout(new BoxLayout(mainPanelKeys
, BoxLayout
.Y_AXIS
));
58 JPanel mainPanelValues
= new JPanel();
59 mainPanelValues
.setLayout(new BoxLayout(mainPanelValues
,
62 mainPanel
.add(mainPanelKeys
, BorderLayout
.WEST
);
63 mainPanel
.add(mainPanelValues
, BorderLayout
.CENTER
);
65 Map
<String
, String
> desc
= BasicReader
.getMetaDesc(meta
);
67 Color trans
= new Color(0, 0, 0, 1);
68 for (String key
: desc
.keySet()) {
69 JTextArea jKey
= new JTextArea(key
);
70 jKey
.setFont(new Font(jKey
.getFont().getFontName(), Font
.BOLD
, jKey
71 .getFont().getSize()));
72 jKey
.setEditable(false);
73 jKey
.setLineWrap(false);
74 jKey
.setBackground(trans
);
75 mainPanelKeys
.add(jKey
);
77 JTextArea jValue
= new JTextArea(desc
.get(key
));
78 jValue
.setEditable(false);
79 jValue
.setLineWrap(false);
80 jValue
.setBackground(trans
);
81 mainPanelValues
.add(jValue
);
85 JLabel imgLabel
= new JLabel(img
);
86 imgLabel
.setVerticalAlignment(JLabel
.TOP
);
89 mainPanelKeys
.setBorder(BorderFactory
.createEmptyBorder(top
, space
, 0,
91 mainPanelValues
.setBorder(BorderFactory
.createEmptyBorder(top
, space
,
93 imgLabel
.setBorder(BorderFactory
.createEmptyBorder(0, space
, 0, 0));
96 add(imgLabel
, BorderLayout
.WEST
);
97 add(mainPanel
, BorderLayout
.CENTER
);