code cleanup
[fanfix.git] / src / be / nikiroo / fanfix / reader / ui / GuiReaderPropertiesFrame.java
CommitLineData
14bb95fa
NR
1package be.nikiroo.fanfix.reader.ui;
2
3import java.awt.BorderLayout;
4import java.awt.Color;
5import java.awt.Font;
a6c830bb 6import java.util.Map;
14bb95fa
NR
7
8import javax.swing.BorderFactory;
9import javax.swing.BoxLayout;
10import javax.swing.ImageIcon;
11import javax.swing.JFrame;
12import javax.swing.JLabel;
13import javax.swing.JPanel;
14import javax.swing.JTextArea;
15
16import be.nikiroo.fanfix.data.MetaData;
31e28683 17import be.nikiroo.fanfix.data.Story;
14bb95fa
NR
18import be.nikiroo.fanfix.reader.BasicReader;
19import be.nikiroo.fanfix.reader.Reader;
20
31e28683
NR
21/**
22 * A frame displaying properties and other information of a {@link Story}.
23 *
24 * @author niki
25 */
14bb95fa
NR
26public class GuiReaderPropertiesFrame extends JFrame {
27 private static final long serialVersionUID = 1L;
28
31e28683
NR
29 /**
30 * Create a new {@link GuiReaderPropertiesFrame}.
31 *
32 * @param reader
33 * the linked reader
34 * @param meta
35 * the meta to describe
36 */
79a99506
NR
37 public GuiReaderPropertiesFrame(Reader reader, GuiReaderBookInfo info) {
38 MetaData meta = info.getMeta();
39
14bb95fa
NR
40 // Borders
41 int top = 20;
42 int space = 10;
43
44 // Image
45 ImageIcon img = GuiReaderCoverImager.generateCoverIcon(
79a99506 46 reader.getLibrary(), info);
14bb95fa
NR
47
48 // frame
49 setTitle(meta.getLuid() + ": " + meta.getTitle());
50
51 setSize(800, img.getIconHeight() + 2 * top);
52 setLayout(new BorderLayout());
53
54 // Main panel
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,
60 BoxLayout.Y_AXIS));
61
62 mainPanel.add(mainPanelKeys, BorderLayout.WEST);
63 mainPanel.add(mainPanelValues, BorderLayout.CENTER);
64
a6c830bb 65 Map<String, String> desc = BasicReader.getMetaDesc(meta);
14bb95fa
NR
66
67 Color trans = new Color(0, 0, 0, 1);
a6c830bb
NR
68 for (String key : desc.keySet()) {
69 JTextArea jKey = new JTextArea(key);
70 jKey.setFont(new Font(jKey.getFont().getFontName(), Font.BOLD, jKey
14bb95fa 71 .getFont().getSize()));
a6c830bb
NR
72 jKey.setEditable(false);
73 jKey.setLineWrap(false);
74 jKey.setBackground(trans);
75 mainPanelKeys.add(jKey);
76
77 JTextArea jValue = new JTextArea(desc.get(key));
78 jValue.setEditable(false);
79 jValue.setLineWrap(false);
80 jValue.setBackground(trans);
81 mainPanelValues.add(jValue);
14bb95fa
NR
82 }
83
84 // Image
85 JLabel imgLabel = new JLabel(img);
86 imgLabel.setVerticalAlignment(JLabel.TOP);
87
88 // Borders
89 mainPanelKeys.setBorder(BorderFactory.createEmptyBorder(top, space, 0,
90 0));
91 mainPanelValues.setBorder(BorderFactory.createEmptyBorder(top, space,
92 0, 0));
93 imgLabel.setBorder(BorderFactory.createEmptyBorder(0, space, 0, 0));
94
95 // Add all
96 add(imgLabel, BorderLayout.WEST);
97 add(mainPanel, BorderLayout.CENTER);
98 }
99}