1 package be
.nikiroo
.fanfix
.reader
.ui
;
3 import java
.awt
.BorderLayout
;
7 import java
.util
.Map
.Entry
;
9 import javax
.swing
.BorderFactory
;
10 import javax
.swing
.BoxLayout
;
11 import javax
.swing
.ImageIcon
;
12 import javax
.swing
.JFrame
;
13 import javax
.swing
.JLabel
;
14 import javax
.swing
.JPanel
;
15 import javax
.swing
.JTextArea
;
17 import be
.nikiroo
.fanfix
.data
.MetaData
;
18 import be
.nikiroo
.fanfix
.data
.Story
;
19 import be
.nikiroo
.fanfix
.reader
.BasicReader
;
20 import be
.nikiroo
.fanfix
.reader
.Reader
;
23 * A frame displaying properties and other information of a {@link Story}.
27 public class GuiReaderPropertiesFrame
extends JFrame
{
28 private static final long serialVersionUID
= 1L;
31 * Create a new {@link GuiReaderPropertiesFrame}.
36 * the meta to describe
38 public GuiReaderPropertiesFrame(Reader reader
, GuiReaderBookInfo info
) {
39 MetaData meta
= info
.getMeta();
46 ImageIcon img
= GuiReaderCoverImager
.generateCoverIcon(
47 reader
.getLibrary(), info
);
50 setTitle(meta
.getLuid() + ": " + meta
.getTitle());
52 setSize(800, img
.getIconHeight() + 2 * top
);
53 setLayout(new BorderLayout());
56 JPanel mainPanel
= new JPanel(new BorderLayout());
57 JPanel mainPanelKeys
= new JPanel();
58 mainPanelKeys
.setLayout(new BoxLayout(mainPanelKeys
, BoxLayout
.Y_AXIS
));
59 JPanel mainPanelValues
= new JPanel();
60 mainPanelValues
.setLayout(new BoxLayout(mainPanelValues
,
63 mainPanel
.add(mainPanelKeys
, BorderLayout
.WEST
);
64 mainPanel
.add(mainPanelValues
, BorderLayout
.CENTER
);
66 List
<Entry
<String
, String
>> desc
= BasicReader
.getMetaDesc(meta
);
68 Color trans
= new Color(0, 0, 0, 1);
69 for (Entry
<String
, String
> descLine
: desc
) {
70 JTextArea key
= new JTextArea(descLine
.getKey());
71 key
.setFont(new Font(key
.getFont().getFontName(), Font
.BOLD
, key
72 .getFont().getSize()));
73 key
.setEditable(false);
74 key
.setLineWrap(false);
75 key
.setBackground(trans
);
76 mainPanelKeys
.add(key
);
78 JTextArea value
= new JTextArea(descLine
.getValue());
79 value
.setEditable(false);
80 value
.setLineWrap(false);
81 value
.setBackground(trans
);
82 mainPanelValues
.add(value
);
86 JLabel imgLabel
= new JLabel(img
);
87 imgLabel
.setVerticalAlignment(JLabel
.TOP
);
90 mainPanelKeys
.setBorder(BorderFactory
.createEmptyBorder(top
, space
, 0,
92 mainPanelValues
.setBorder(BorderFactory
.createEmptyBorder(top
, space
,
94 imgLabel
.setBorder(BorderFactory
.createEmptyBorder(0, space
, 0, 0));
97 add(imgLabel
, BorderLayout
.WEST
);
98 add(mainPanel
, BorderLayout
.CENTER
);