gui: code cleanup for properties
[fanfix.git] / src / be / nikiroo / fanfix / reader / ui / GuiReaderPropertiesFrame.java
index 5a647de5a28d7080347626f4ea14588469154ea0..deddc3cd84dbbd10b0355853487247bf46ef7e61 100644 (file)
@@ -1,84 +1,38 @@
 package be.nikiroo.fanfix.reader.ui;
 
 import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Font;
-import java.util.List;
-import java.util.Map.Entry;
 
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.ImageIcon;
 import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextArea;
 
 import be.nikiroo.fanfix.data.MetaData;
-import be.nikiroo.fanfix.reader.BasicReader;
-import be.nikiroo.fanfix.reader.Reader;
-
+import be.nikiroo.fanfix.data.Story;
+import be.nikiroo.fanfix.library.BasicLibrary;
+
+/**
+ * A frame displaying properties and other information of a {@link Story}.
+ * 
+ * @author niki
+ */
 public class GuiReaderPropertiesFrame extends JFrame {
        private static final long serialVersionUID = 1L;
 
-       public GuiReaderPropertiesFrame(Reader reader, MetaData meta) {
-               // Borders
-               int top = 20;
-               int space = 10;
-
-               // Image
-               ImageIcon img = GuiReaderCoverImager.generateCoverIcon(
-                               reader.getLibrary(), meta);
-
-               // frame
+       /**
+        * Create a new {@link GuiReaderPropertiesFrame}.
+        * 
+        * @param ib
+        *            the library to use for the cover image
+        * @param meta
+        *            the meta to describe
+        */
+       public GuiReaderPropertiesFrame(BasicLibrary lib, MetaData meta) {
                setTitle(meta.getLuid() + ": " + meta.getTitle());
 
-               setSize(800, img.getIconHeight() + 2 * top);
-               setLayout(new BorderLayout());
-
-               // Main panel
-               JPanel mainPanel = new JPanel(new BorderLayout());
-               JPanel mainPanelKeys = new JPanel();
-               mainPanelKeys.setLayout(new BoxLayout(mainPanelKeys, BoxLayout.Y_AXIS));
-               JPanel mainPanelValues = new JPanel();
-               mainPanelValues.setLayout(new BoxLayout(mainPanelValues,
-                               BoxLayout.Y_AXIS));
-
-               mainPanel.add(mainPanelKeys, BorderLayout.WEST);
-               mainPanel.add(mainPanelValues, BorderLayout.CENTER);
+               GuiReaderPropertiesPane desc = new GuiReaderPropertiesPane(lib, meta);
+               setSize(800,
+                               (int) desc.getPreferredSize().getHeight() + 2
+                                               * desc.getBorderThickness());
 
-               List<Entry<String, String>> infos = BasicReader.getMetaDesc(meta);
-
-               Color trans = new Color(0, 0, 0, 1);
-               for (Entry<String, String> info : infos) {
-                       JTextArea key = new JTextArea(info.getKey());
-                       key.setFont(new Font(key.getFont().getFontName(), Font.BOLD, key
-                                       .getFont().getSize()));
-                       key.setEditable(false);
-                       key.setLineWrap(false);
-                       key.setBackground(trans);
-                       mainPanelKeys.add(key);
-
-                       JTextArea value = new JTextArea(info.getValue());
-                       value.setEditable(false);
-                       value.setLineWrap(false);
-                       value.setBackground(trans);
-                       mainPanelValues.add(value);
-               }
-
-               // Image
-               JLabel imgLabel = new JLabel(img);
-               imgLabel.setVerticalAlignment(JLabel.TOP);
-
-               // Borders
-               mainPanelKeys.setBorder(BorderFactory.createEmptyBorder(top, space, 0,
-                               0));
-               mainPanelValues.setBorder(BorderFactory.createEmptyBorder(top, space,
-                               0, 0));
-               imgLabel.setBorder(BorderFactory.createEmptyBorder(0, space, 0, 0));
-
-               // Add all
-               add(imgLabel, BorderLayout.WEST);
-               add(mainPanel, BorderLayout.CENTER);
+               setLayout(new BorderLayout());
+               add(desc, BorderLayout.NORTH);
        }
 }