X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderFrame.java;h=8d3142c315679465525ae17efd9ea3b92e46f6f0;hb=df6e2d88153be63b85aa8c0dfd4dae47762b6f0e;hp=b8db8f747e420de4e89884aeb47be5a71105d10c;hpb=e87071039531d19e3b075365b7c7d7b80768b996;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java index b8db8f7..8d3142c 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java @@ -2,6 +2,7 @@ package be.nikiroo.fanfix.reader.ui; import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Font; import java.awt.Frame; import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; @@ -20,7 +21,9 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import javax.swing.BorderFactory; import javax.swing.BoxLayout; +import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; @@ -31,6 +34,7 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; +import javax.swing.JTextArea; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileFilter; @@ -308,6 +312,8 @@ class GuiReaderFrame extends JFrame { popup.add(createMenuItemRedownload()); popup.addSeparator(); popup.add(createMenuItemDelete()); + popup.addSeparator(); + popup.add(createMenuItemProperties()); popup.show(e.getComponent(), e.getX(), e.getY()); } @@ -653,7 +659,8 @@ class GuiReaderFrame extends JFrame { reader.clearLocalReaderCache(selectedBook.getMeta() .getLuid()); selectedBook.setCached(false); - GuiReaderBook.clearIcon(selectedBook.getMeta()); + GuiReaderCoverImager.clearIcon(selectedBook + .getMeta()); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -796,6 +803,110 @@ class GuiReaderFrame extends JFrame { return delete; } + /** + * Create the properties menu item. + * + * @return the item + */ + private JMenuItem createMenuItemProperties() { + JMenuItem delete = new JMenuItem("Properties", KeyEvent.VK_P); + delete.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (selectedBook != null) { + outOfUi(null, new Runnable() { + @Override + public void run() { + final MetaData meta = selectedBook.getMeta(); + new JFrame() { + private static final long serialVersionUID = 1L; + @SuppressWarnings("unused") + private Object init = init(); + + private Object init() { + // Borders + int top = 20; + int space = 10; + + // Image + ImageIcon img = GuiReaderCoverImager + .generateCoverIcon( + reader.getLibrary(), meta); + + // frame + 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); + + List> infos = BasicReader + .getMetaDesc(meta); + + Color trans = new Color(0, 0, 0, 1); + for (Entry 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); + + return null; + } + + }.setVisible(true); + } + }); + } + } + }); + + return delete; + } + /** * Create the open menu item for a book or a source (no LUID). * @@ -838,7 +949,7 @@ class GuiReaderFrame extends JFrame { selectedBook.getMeta().getLuid()); MetaData source = selectedBook.getMeta().clone(); source.setLuid(null); - GuiReaderBook.clearIcon(source); + GuiReaderCoverImager.clearIcon(source); } } });