X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderFrame.java;h=820075426d812286bb0e9966b7ab7929641cc5dd;hb=c349fd480d7ab36ad423e965434a6f1f418d60a5;hp=df8707c72331e5eeefb8f53012c8be4ea97a683d;hpb=32224dda790cb3d45884e06107da91a8c5a67529;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderFrame.java index df8707c..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 @@ -410,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 { @@ -465,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() @@ -611,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(); @@ -636,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() @@ -649,6 +659,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper { reader.changeAuthor(luid, fChangeTo); } + mainPanel.getSelectedBook().repaint(); mainPanel.unsetSelectedBook(); SwingUtilities.invokeLater(new Runnable() { @@ -707,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(); + } + }); + } } } }); @@ -735,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); } }); } @@ -763,8 +785,8 @@ class GuiReaderFrame extends JFrame implements FrameHelper { if (selectedBook != null) { if (selectedBook.getInfo().getMeta() == null) { mainPanel.removeBookPanes(); - mainPanel.addBookPane(selectedBook.getInfo().getMainInfo(), - mainPanel.getCurrentType()); + mainPanel.addBookPane(selectedBook.getInfo() + .getMainInfo(), mainPanel.getCurrentType()); mainPanel.refreshBooks(); } else { mainPanel.openBook(selectedBook);