X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix_swing%2Fgui%2Fbook%2FBookPopup.java;h=c99e2730c45917359cd8e01043772414d6a08035;hb=42797eff5b7bf96a93bcd79ffa2ce62d256ef35d;hp=0710549feb3112f1233261ed79f47e8cedd01681;hpb=59253323f07e6a67ef6c8e197fd1065a81c7069a;p=fanfix.git diff --git a/src/be/nikiroo/fanfix_swing/gui/book/BookPopup.java b/src/be/nikiroo/fanfix_swing/gui/book/BookPopup.java index 0710549..c99e273 100644 --- a/src/be/nikiroo/fanfix_swing/gui/book/BookPopup.java +++ b/src/be/nikiroo/fanfix_swing/gui/book/BookPopup.java @@ -47,6 +47,7 @@ public class BookPopup extends JPopupMenu { public void fireElementChanged(BookInfo book); + public void invalidateCache(); } /** @@ -68,12 +69,6 @@ public class BookPopup extends JPopupMenu { private Informer informer; - private Object object; - - private Object object2; - - private Object object3; - public BookPopup(BasicLibrary lib, Informer informer) { this.lib = lib; this.informer = informer; @@ -438,7 +433,6 @@ public class BookPopup extends JPopupMenu { lib.changeAuthor(luid, fChangeTo, null); } } - // TODO: ^-- this can create new sources/authors, update maybe required? return null; } @@ -446,11 +440,13 @@ public class BookPopup extends JPopupMenu { @Override protected void done() { try { - // Reload anyway - for (BookInfo book : selected) { - informer.fireElementChanged(book); - } + // this can create new sources/authors, so a simple fireElementChanged is not + // enough, we need to clear the whole cache (for BrowserPanel for instance) + informer.invalidateCache(); + + // TODO: also refresh the Sources/Authors(/Tags?) list + // Even if problems occurred, still invalidate the cache get(); } catch (Exception e) { UiHelper.error(BookPopup.this.getParent(), e.getLocalizedMessage(), "IOException", e); @@ -513,17 +509,17 @@ public class BookPopup extends JPopupMenu { luids.add(book.getMeta().getLuid()); break; case SOURCE: - for (MetaData meta : lib.getListBySource(book.getMainInfo())) { + for (MetaData meta : lib.getList().filter(book.getMainInfo(), null, null)) { luids.add(meta.getLuid()); } break; case AUTHOR: - for (MetaData meta : lib.getListByAuthor(book.getMainInfo())) { + for (MetaData meta : lib.getList().filter(null, book.getMainInfo(), null)) { luids.add(meta.getLuid()); } break; case TAG: - for (MetaData meta : lib.getList(null).filter(null, null, book.getMainInfo())) { + for (MetaData meta : lib.getList().filter(null, null, book.getMainInfo())) { luids.add(meta.getLuid()); } break;