X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderFrame.java;h=820075426d812286bb0e9966b7ab7929641cc5dd;hb=c349fd480d7ab36ad423e965434a6f1f418d60a5;hp=9d536a25a3ded1118d5338c499d751c88e442652;hpb=8590da196b2eca1f6d69e157cf7b122f6d5c6ef7;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java index 9d536a2..8200754 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java @@ -84,7 +84,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { setSize(800, 600); setLayout(new BorderLayout()); - add(mainPanel); + add(mainPanel, BorderLayout.CENTER); } @Override @@ -117,6 +117,8 @@ class GuiReaderFrame extends JFrame implements FrameHelper { @Override public void createMenu(boolean libOk) { + invalidate(); + JMenuBar bar = new JMenuBar(); JMenu file = new JMenu("File"); @@ -408,7 +410,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { .getAbsolutePath() + type.getDefaultExtension(false); final Progress pg = new Progress(); - mainPanel.outOfUi(pg, new Runnable() { + mainPanel.outOfUi(pg, false, new Runnable() { @Override public void run() { try { @@ -463,7 +465,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { public void actionPerformed(ActionEvent e) { final GuiReaderBook selectedBook = mainPanel.getSelectedBook(); if (selectedBook != null) { - mainPanel.outOfUi(null, new Runnable() { + mainPanel.outOfUi(null, false, new Runnable() { @Override public void run() { reader.clearLocalReaderCache(selectedBook.getInfo() @@ -609,6 +611,16 @@ class GuiReaderFrame extends JFrame implements FrameHelper { public void actionPerformed(ActionEvent e) { final GuiReaderBook selectedBook = mainPanel.getSelectedBook(); if (selectedBook != null) { + boolean refreshRequired = false; + + if (what == ChangeAction.SOURCE) { + refreshRequired = mainPanel.getCurrentType(); + } else if (what == ChangeAction.TITLE) { + refreshRequired = false; + } else if (what == ChangeAction.AUTHOR) { + refreshRequired = !mainPanel.getCurrentType(); + } + String changeTo = type; if (type == null) { MetaData meta = selectedBook.getInfo().getMeta(); @@ -634,7 +646,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { } final String fChangeTo = changeTo; - mainPanel.outOfUi(null, new Runnable() { + mainPanel.outOfUi(null, refreshRequired, new Runnable() { @Override public void run() { String luid = selectedBook.getInfo().getMeta() @@ -647,6 +659,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { reader.changeAuthor(luid, fChangeTo); } + mainPanel.getSelectedBook().repaint(); mainPanel.unsetSelectedBook(); SwingUtilities.invokeLater(new Runnable() { @@ -705,15 +718,25 @@ class GuiReaderFrame extends JFrame implements FrameHelper { @Override public void actionPerformed(ActionEvent e) { final GuiReaderBook selectedBook = mainPanel.getSelectedBook(); - if (selectedBook != null) { - mainPanel.outOfUi(null, new Runnable() { - @Override - public void run() { - reader.delete(selectedBook.getInfo().getMeta() - .getLuid()); - mainPanel.unsetSelectedBook(); - } - }); + if (selectedBook != null + && selectedBook.getInfo().getMeta() != null) { + + final MetaData meta = selectedBook.getInfo().getMeta(); + int rep = JOptionPane.showConfirmDialog( + GuiReaderFrame.this, + String.format("Delete %s: %s", meta.getLuid(), + meta.getTitle()), "Delete story", + JOptionPane.OK_CANCEL_OPTION); + + if (rep == JOptionPane.OK_OPTION) { + mainPanel.outOfUi(null, true, new Runnable() { + @Override + public void run() { + reader.delete(meta.getLuid()); + mainPanel.unsetSelectedBook(); + } + }); + } } } }); @@ -733,11 +756,12 @@ class GuiReaderFrame extends JFrame implements FrameHelper { public void actionPerformed(ActionEvent e) { final GuiReaderBook selectedBook = mainPanel.getSelectedBook(); if (selectedBook != null) { - mainPanel.outOfUi(null, new Runnable() { + mainPanel.outOfUi(null, false, new Runnable() { @Override public void run() { - new GuiReaderPropertiesFrame(reader, selectedBook - .getInfo()).setVisible(true); + new GuiReaderPropertiesFrame(reader.getLibrary(), + selectedBook.getInfo().getMeta()) + .setVisible(true); } }); } @@ -748,7 +772,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { } /** - * Create the open menu item for a book or a source/type (no LUID). + * Create the open menu item for a book, a source/type or an author. * * @return the item */ @@ -761,8 +785,8 @@ class GuiReaderFrame extends JFrame implements FrameHelper { if (selectedBook != null) { if (selectedBook.getInfo().getMeta() == null) { mainPanel.removeBookPanes(); - mainPanel.addBookPane(selectedBook.getInfo().getMeta() - .getSource(), mainPanel.getCurrentType()); + mainPanel.addBookPane(selectedBook.getInfo() + .getMainInfo(), mainPanel.getCurrentType()); mainPanel.refreshBooks(); } else { mainPanel.openBook(selectedBook);