X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReader.java;h=a02cc84f558892bfa4f055db720cda8db8c21097;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=1d782129276aaa0744ab414b40b0b09ebd9662de;hpb=7cc1e74322fcf0e1b53ea7042db852a119fa99a6;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java index 1d78212..a02cc84 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java @@ -63,7 +63,7 @@ class GuiReader extends BasicReader { nativeLookLoaded = true; } - cacheDir = Instance.getReaderDir(); + cacheDir = Instance.getInstance().getReaderDir(); cacheDir.mkdirs(); if (!cacheDir.exists()) { throw new IOException( @@ -79,7 +79,7 @@ class GuiReader extends BasicReader { if (lib instanceof CacheLibrary) { cacheLib = (CacheLibrary) lib; } else { - cacheLib = new CacheLibrary(cacheDir, lib); + cacheLib = new CacheLibrary(cacheDir, lib, Instance.getInstance().getUiConfig()); } } @@ -150,9 +150,9 @@ class GuiReader extends BasicReader { try { Desktop.getDesktop().browse(e.getURL().toURI()); } catch (IOException ee) { - Instance.getTraceHandler().error(ee); + Instance.getInstance().getTraceHandler().error(ee); } catch (URISyntaxException ee) { - Instance.getTraceHandler().error(ee); + Instance.getInstance().getTraceHandler().error(ee); } } }); @@ -184,7 +184,7 @@ class GuiReader extends BasicReader { GuiReader.this, typeFinal); sync(gui); } catch (Exception e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } finally { done[0] = true; } @@ -234,16 +234,7 @@ class GuiReader extends BasicReader { @Override public void search(SupportType searchOn, String keywords, int page, int item, boolean sync) { - final GuiReaderSearchFrame search = new GuiReaderSearchFrame( - GuiReader.this); - while (!search.isEnabled()) { - try { - Thread.sleep(10); - } catch (InterruptedException e) { - Instance.getTraceHandler().error(e); - } - } - + GuiReaderSearchFrame search = new GuiReaderSearchFrame(this); search.search(searchOn, keywords, page, item); if (sync) { sync(search); @@ -256,15 +247,7 @@ class GuiReader extends BasicReader { public void searchTag(final SupportType searchOn, final int page, final int item, final boolean sync, final Integer... tags) { - final GuiReaderSearchFrame search = new GuiReaderSearchFrame( - GuiReader.this); - while (!search.isEnabled()) { - try { - Thread.sleep(10); - } catch (InterruptedException e) { - Instance.getTraceHandler().error(e); - } - } + final GuiReaderSearchFrame search = new GuiReaderSearchFrame(this); final BasicSearchable searchable = BasicSearchable .getSearchable(searchOn); @@ -276,7 +259,7 @@ class GuiReader extends BasicReader { try { tag = searchable.getTag(tags); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } search.searchTag(searchOn, page, item, tag); @@ -310,7 +293,7 @@ class GuiReader extends BasicReader { try { cacheLib.clearFromCache(luid); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } } @@ -327,15 +310,13 @@ class GuiReader extends BasicReader { try { cacheLib.delete(luid); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } } /** * "Open" the given {@link Story}. It usually involves starting an external * program adapted to the given file type. - *

- * Asynchronous method. * * @param luid * the luid of the {@link Story} to open @@ -352,10 +333,10 @@ class GuiReader extends BasicReader { void read(String luid, boolean sync, Progress pg) throws IOException { MetaData meta = cacheLib.getInfo(luid); - boolean textInternal = Instance.getUiConfig().getBoolean( - UiConfig.NON_IMAGES_DOCUMENT_USE_INTERNAL_READER, true); - boolean imageInternal = Instance.getUiConfig().getBoolean( - UiConfig.IMAGES_DOCUMENT_USE_INTERNAL_READER, true); + boolean textInternal = Instance.getInstance().getUiConfig() + .getBoolean(UiConfig.NON_IMAGES_DOCUMENT_USE_INTERNAL_READER, true); + boolean imageInternal = Instance.getInstance().getUiConfig() + .getBoolean(UiConfig.IMAGES_DOCUMENT_USE_INTERNAL_READER, true); boolean useInternalViewer = true; if (meta.isImageDocument() && !imageInternal) { @@ -379,6 +360,24 @@ class GuiReader extends BasicReader { } } + + /** + * "Prefetch" the given {@link Story}. + *

+ * Synchronous method. + * + * @param luid + * the luid of the {@link Story} to prefetch + * @param pg + * the optional progress (we may need to prepare the + * {@link Story} for reading + * + * @throws IOException + * in case of I/O errors + */ + void prefetch(String luid, Progress pg) throws IOException { + cacheLib.getFile(luid, pg); + } /** * Change the source of the given {@link Story} (the source is the main * information used to group the stories together). @@ -396,7 +395,7 @@ class GuiReader extends BasicReader { try { cacheLib.changeSource(luid, newSource, null); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } } @@ -412,7 +411,7 @@ class GuiReader extends BasicReader { try { cacheLib.changeTitle(luid, newTitle, null); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } } @@ -430,7 +429,7 @@ class GuiReader extends BasicReader { try { cacheLib.changeAuthor(luid, newAuthor, null); } catch (IOException e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); } } @@ -443,7 +442,7 @@ class GuiReader extends BasicReader { * @return the translated result */ static String trans(StringIdGui id, Object... params) { - return Instance.getTransGui().getString(id, params); + return Instance.getInstance().getTransGui().getString(id, params); } /** @@ -485,7 +484,7 @@ class GuiReader extends BasicReader { EventQueue.invokeLater(run); } } catch (Exception e) { - Instance.getTraceHandler().error(e); + Instance.getInstance().getTraceHandler().error(e); done[0] = true; }