X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderSearch.java;h=f0285d789b7859e6b008344a273af517e5b75a88;hb=e581bb8a2d391b5ce12b7a82134640d01d9c4843;hp=0046e89e4ad375671de88cae65f9d6eb85dc0fb8;hpb=e708fd5b468da243a88d6dc0cebd9083cbdb1fe7;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearch.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearch.java index 0046e89..f0285d7 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearch.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearch.java @@ -48,6 +48,7 @@ public class GuiReaderSearch extends JFrame { private int maxPage; private JPanel tagBars; + private List combos; private JComboBox comboSupportTypes; private JTabbedPane searchTabs; @@ -144,6 +145,8 @@ public class GuiReaderSearch extends JFrame { } private JPanel createByTagSearchPanel() { + combos = new ArrayList(); + JPanel byTag = new JPanel(); tagBars = new JPanel(); tagBars.setLayout(new BoxLayout(tagBars, BoxLayout.Y_AXIS)); @@ -260,6 +263,8 @@ public class GuiReaderSearch extends JFrame { final SearchableTag selected) { tags.add(0, null); + final int comboIndex = combos.size(); + final JComboBox combo = new JComboBox( tags.toArray(new SearchableTag[] {})); combo.setSelectedItem(selected); @@ -298,10 +303,30 @@ public class GuiReaderSearch extends JFrame { final SearchableTag tag = (SearchableTag) combo .getSelectedItem(); if (tag != null) { + while (comboIndex + 1 < combos.size()) { + JComboBox combo = combos.remove(comboIndex + 1); + tagBars.remove(combo); + } + addTagBar(tag, new Runnable() { @Override public void run() { - // TODO: stories if needed + // TODO: slow ui + SearchableTag tag = ((SearchableTag) combo + .getSelectedItem()); + if (tag != null && tag.isLeaf()) { + BasicSearchable searchable = BasicSearchable + .getSearchable(supportType); + List metas = new ArrayList(); + try { + metas = searchable.search(tag, 1); + search(metas, 1, + searchable.searchPages(tag), 0); + } catch (IOException e) { + error(e); + } + } + setWaitingScreen(false); } }); @@ -309,6 +334,7 @@ public class GuiReaderSearch extends JFrame { } }); + combos.add(combo); tagBars.add(combo); } @@ -339,7 +365,6 @@ public class GuiReaderSearch extends JFrame { children = tag.getChildren(); } else { children = null; - // TODO: stories } }