5a647de5a28d7080347626f4ea14588469154ea0
[fanfix.git] / src / be / nikiroo / fanfix / reader / ui / GuiReaderPropertiesFrame.java
1 package be.nikiroo.fanfix.reader.ui;
2
3 import java.awt.BorderLayout;
4 import java.awt.Color;
5 import java.awt.Font;
6 import java.util.List;
7 import java.util.Map.Entry;
8
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;
16
17 import be.nikiroo.fanfix.data.MetaData;
18 import be.nikiroo.fanfix.reader.BasicReader;
19 import be.nikiroo.fanfix.reader.Reader;
20
21 public class GuiReaderPropertiesFrame extends JFrame {
22 private static final long serialVersionUID = 1L;
23
24 public GuiReaderPropertiesFrame(Reader reader, MetaData meta) {
25 // Borders
26 int top = 20;
27 int space = 10;
28
29 // Image
30 ImageIcon img = GuiReaderCoverImager.generateCoverIcon(
31 reader.getLibrary(), meta);
32
33 // frame
34 setTitle(meta.getLuid() + ": " + meta.getTitle());
35
36 setSize(800, img.getIconHeight() + 2 * top);
37 setLayout(new BorderLayout());
38
39 // Main panel
40 JPanel mainPanel = new JPanel(new BorderLayout());
41 JPanel mainPanelKeys = new JPanel();
42 mainPanelKeys.setLayout(new BoxLayout(mainPanelKeys, BoxLayout.Y_AXIS));
43 JPanel mainPanelValues = new JPanel();
44 mainPanelValues.setLayout(new BoxLayout(mainPanelValues,
45 BoxLayout.Y_AXIS));
46
47 mainPanel.add(mainPanelKeys, BorderLayout.WEST);
48 mainPanel.add(mainPanelValues, BorderLayout.CENTER);
49
50 List<Entry<String, String>> infos = BasicReader.getMetaDesc(meta);
51
52 Color trans = new Color(0, 0, 0, 1);
53 for (Entry<String, String> info : infos) {
54 JTextArea key = new JTextArea(info.getKey());
55 key.setFont(new Font(key.getFont().getFontName(), Font.BOLD, key
56 .getFont().getSize()));
57 key.setEditable(false);
58 key.setLineWrap(false);
59 key.setBackground(trans);
60 mainPanelKeys.add(key);
61
62 JTextArea value = new JTextArea(info.getValue());
63 value.setEditable(false);
64 value.setLineWrap(false);
65 value.setBackground(trans);
66 mainPanelValues.add(value);
67 }
68
69 // Image
70 JLabel imgLabel = new JLabel(img);
71 imgLabel.setVerticalAlignment(JLabel.TOP);
72
73 // Borders
74 mainPanelKeys.setBorder(BorderFactory.createEmptyBorder(top, space, 0,
75 0));
76 mainPanelValues.setBorder(BorderFactory.createEmptyBorder(top, space,
77 0, 0));
78 imgLabel.setBorder(BorderFactory.createEmptyBorder(0, space, 0, 0));
79
80 // Add all
81 add(imgLabel, BorderLayout.WEST);
82 add(mainPanel, BorderLayout.CENTER);
83 }
84 }