X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReader.java;h=0cace9cd992b2fe317642316255a7dfcbf174b36;hb=bf2b37b0aca363d30d8086c440dd2cb23e6e0915;hp=6c3a35e5198827c603393f4c5c77d5bea9f3b6d9;hpb=f76de46507bf17695ce3c6e3a4b1b698d3182ebd;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java index 6c3a35e..0cace9c 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReader.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReader.java @@ -25,6 +25,8 @@ import be.nikiroo.fanfix.library.BasicLibrary; import be.nikiroo.fanfix.library.CacheLibrary; import be.nikiroo.fanfix.reader.BasicReader; import be.nikiroo.fanfix.reader.Reader; +import be.nikiroo.fanfix.searchable.BasicSearchable; +import be.nikiroo.fanfix.searchable.SearchableTag; import be.nikiroo.fanfix.supported.SupportType; import be.nikiroo.utils.Progress; import be.nikiroo.utils.Version; @@ -219,21 +221,63 @@ class GuiReader extends BasicReader { } } + @Override + public void search(boolean sync) throws IOException { + GuiReaderSearch search = new GuiReaderSearch(this); + if (sync) { + sync(search); + } else { + search.setVisible(true); + } + } + @Override public void search(SupportType searchOn, String keywords, int page, int item, boolean sync) { - // TODO + GuiReaderSearch search = new GuiReaderSearch(this); + search.search(searchOn, keywords, page, item); if (sync) { - throw new java.lang.IllegalStateException("Not implemented yet."); + sync(search); + } else { + search.setVisible(true); } } @Override - public void searchTag(SupportType searchOn, int page, int item, - boolean sync, Integer... tags) { - // TODO + public void searchTag(final SupportType searchOn, final int page, + final int item, final boolean sync, final Integer... tags) { + + final GuiReaderSearch search = new GuiReaderSearch(GuiReader.this); + final BasicSearchable searchable = BasicSearchable + .getSearchable(searchOn); + + Runnable action = new Runnable() { + @Override + public void run() { + SearchableTag tag = null; + try { + tag = searchable.getTag(tags); + if (tag != null) { + searchable.fillTag(tag); + } + } catch (IOException e) { + Instance.getTraceHandler().error(e); + } + + search.searchTag(searchOn, page, item, tag); + + if (sync) { + sync(search); + } else { + search.setVisible(true); + } + } + }; + if (sync) { - throw new java.lang.IllegalStateException("Not implemented yet."); + action.run(); + } else { + new Thread(action).start(); } }