gui: do not always refresh the books after an action
[fanfix.git] / src / be / nikiroo / fanfix / reader / ui / GuiReaderFrame.java
index e2ead3988a477bac15128d2cd18b095517e638f4..97541026188404fd27420d5184f38c41a02e2f54 100644 (file)
@@ -84,7 +84,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper {
 
                setSize(800, 600);
                setLayout(new BorderLayout());
-               add(mainPanel);
+               add(mainPanel, BorderLayout.CENTER);
        }
 
        @Override
@@ -109,7 +109,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper {
        }
 
        @Override
-       public JPopupMenu createSourcePopup() {
+       public JPopupMenu createSourceAuthorPopup() {
                JPopupMenu popup = new JPopupMenu();
                popup.add(createMenuItemOpenBook());
                return popup;
@@ -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()
@@ -634,7 +636,7 @@ class GuiReaderFrame extends JFrame implements FrameHelper {
                                        }
 
                                        final String fChangeTo = changeTo;
-                                       mainPanel.outOfUi(null, new Runnable() {
+                                       mainPanel.outOfUi(null, true, new Runnable() {
                                                @Override
                                                public void run() {
                                                        String luid = selectedBook.getInfo().getMeta()
@@ -706,7 +708,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, true, new Runnable() {
                                                @Override
                                                public void run() {
                                                        reader.delete(selectedBook.getInfo().getMeta()
@@ -733,11 +735,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 +751,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
         */
@@ -759,10 +762,10 @@ class GuiReaderFrame extends JFrame implements FrameHelper {
                        public void actionPerformed(ActionEvent e) {
                                final GuiReaderBook selectedBook = mainPanel.getSelectedBook();
                                if (selectedBook != null) {
-                                       if (selectedBook.getInfo().getMeta().getLuid() == null) {
+                                       if (selectedBook.getInfo().getMeta() == null) {
                                                mainPanel.removeBookPanes();
-                                               mainPanel.addBookPane(selectedBook.getInfo().getMeta()
-                                                               .getSource(), true);
+                                               mainPanel.addBookPane(selectedBook.getInfo()
+                                                               .getMainInfo(), mainPanel.getCurrentType());
                                                mainPanel.refreshBooks();
                                        } else {
                                                mainPanel.openBook(selectedBook);